Sample is attached

Nick

http://www.linkedin.com/in/tnikolov
Sent from Devlet, Ankara, Turkey

On Tue, Dec 1, 2009 at 5:56 AM, J.P. Delport <[email protected]> wrote:

> Hi,
>
> can you make a small example that people can easily compile to show the
> problem? This way will get you most help.
>
> jp
>
> Trajce Nikolov wrote:
>
>> ok /// it works for CompositeViewer does not work for osgViewer::Viewer
>>
>> Nick
>>
>> http://www.linkedin.com/in/tnikolov
>> Sent from Devlet, Ankara, Turkey
>>
>> On Tue, Dec 1, 2009 at 5:42 AM, Trajce Nikolov 
>> <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>>    I just updated from svn. The source search gives mi 0 results
>>
>>    Nick
>>
>>
>>
>>    On Tue, Dec 1, 2009 at 5:36 AM, J.P. Delport <[email protected]
>>    <mailto:[email protected]>> wrote:
>>
>>        Hi,
>>
>>
>>        Trajce Nikolov wrote:
>>
>>            interesting. Robert has closed this thread with "fixed" but
>>            I am having the same problems. btw, where is
>>            USE_NEW_TEXTURE_POOL defined?
>>
>>
>>        what version of OSG are you using? The fix is in recent svn
>>        versions. Think it is in include/osg/Texture. Check the thread
>>        or search the include/src dirs.
>>
>>        cheers
>>        jp
>>
>>
>>            Nick
>>
>>            http://www.linkedin.com/in/tnikolov
>>            Sent from Devlet, Ankara, Turkey
>>
>>            On Tue, Dec 1, 2009 at 5:21 AM, J.P. Delport
>>            <[email protected] <mailto:[email protected]>
>>            <mailto:[email protected] <mailto:[email protected]>>>
>>
>>            wrote:
>>
>>               Hi,
>>
>>               read this:
>>
>> http://thread.gmane.org/gmane.comp.graphics.openscenegraph.user/51995/
>>
>>               jp
>>
>>               Trajce Nikolov wrote:
>>
>>                   Hi,
>>
>>                   please have a look at the following scenario. The
>>            viewer is
>>                   dynamically created, destroyed and created again. On
>>            the later,
>>                   no textures shows up. Any ideas?
>>
>>                   ..............        viewer->setSceneData(
>>            loadedModel.get() );
>>                      viewer->realize();
>>                   while (!viewer->done())
>>                   {
>>                   viewer->frame();
>>                   }
>>
>>                   viewer->setSceneData( 0 );
>>                   loadedModel = 0;
>>                   viewer = 0;
>>
>>
>>                   viewer = new osgViewer::Viewer(arguments);
>>                   setupViewer(viewer.get(),arguments);
>>
>>                   loadedModel = osgDB::readNodeFiles(arguments);
>>
>>                   viewer->setSceneData( loadedModel.get() );
>>                   viewer->realize();
>>                   while (!viewer->done())
>>                   {
>>                   viewer->frame();
>>                   }
>>                   .................
>>
>>                   Nick
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>>                   _______________________________________________
>>                   osg-users mailing list
>>                   [email protected]
>>            <mailto:[email protected]>
>>                   <mailto:[email protected]
>>            <mailto:[email protected]>>
>>
>>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>               --    This message is subject to the CSIR's copyright
>>            terms and
>>               conditions, e-mail legal notice, and implemented Open
>>            Document
>>               Format (ODF) standard. The full disclaimer details can be
>>            found at
>>               http://www.csir.co.za/disclaimer.html.
>>
>>               This message has been scanned for viruses and dangerous
>>            content by
>>               MailScanner, and is believed to be clean.  MailScanner
>> thanks
>>               Transtec Computers for their support.
>>
>>               _______________________________________________
>>               osg-users mailing list
>>               [email protected]
>>            <mailto:[email protected]>
>>               <mailto:[email protected]
>>            <mailto:[email protected]>>
>>
>>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>
>>
>>  ------------------------------------------------------------------------
>>
>>            _______________________________________________
>>            osg-users mailing list
>>            [email protected]
>>            <mailto:[email protected]>
>>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>        --        This message is subject to the CSIR's copyright terms and
>>        conditions, e-mail legal notice, and implemented Open Document
>>        Format (ODF) standard. The full disclaimer details can be found
>>        at http://www.csir.co.za/disclaimer.html.
>>
>>        This message has been scanned for viruses and dangerous content
>>        by MailScanner, and is believed to be clean.  MailScanner thanks
>>        Transtec Computers for their support.
>>
>>        _______________________________________________
>>        osg-users mailing list
>>        [email protected]
>>        <mailto:[email protected]>
>>
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> osg-users mailing list
>> [email protected]
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>
> --
> This message is subject to the CSIR's copyright terms and conditions,
> e-mail legal notice, and implemented Open Document Format (ODF) standard.
> The full disclaimer details can be found at
> http://www.csir.co.za/disclaimer.html.
>
> This message has been scanned for viruses and dangerous content by
> MailScanner, and is believed to be clean.  MailScanner thanks Transtec
> Computers for their support.
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2006 Robert Osfield 
 *
 * This application is open source and may be redistributed and/or modified   
 * freely and without restriction, both in commericial and non commericial 
applications,
 * as long as this copyright notice is maintained.
 * 
 * This application is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/

#include <osgDB/ReadFile>
#include <osgUtil/Optimizer>
#include <osg/CoordinateSystemNode>

#include <osg/Switch>
#include <osgText/Text>

#include <osgViewer/Viewer>
#include <osgViewer/CompositeViewer>
#include <osgViewer/ViewerEventHandlers>

#include <osgGA/TrackballManipulator>
#include <osgGA/FlightManipulator>
#include <osgGA/DriveManipulator>
#include <osgGA/KeySwitchMatrixManipulator>
#include <osgGA/StateSetManipulator>
#include <osgGA/AnimationPathManipulator>
#include <osgGA/TerrainManipulator>

#include <iostream>

void setupViewer(osgViewer::Viewer* viewer, osg::ArgumentParser& arguments)
{
        // set up the camera manipulators.
    {
        osg::ref_ptr<osgGA::KeySwitchMatrixManipulator> keyswitchManipulator = 
new osgGA::KeySwitchMatrixManipulator;

        keyswitchManipulator->addMatrixManipulator( '1', "Trackball", new 
osgGA::TrackballManipulator() );
        keyswitchManipulator->addMatrixManipulator( '2', "Flight", new 
osgGA::FlightManipulator() );
        keyswitchManipulator->addMatrixManipulator( '3', "Drive", new 
osgGA::DriveManipulator() );
        keyswitchManipulator->addMatrixManipulator( '4', "Terrain", new 
osgGA::TerrainManipulator() );

        viewer->setCameraManipulator( keyswitchManipulator.get() );
    }

        // add the state manipulator
    viewer->addEventHandler( new 
osgGA::StateSetManipulator(viewer->getCamera()->getOrCreateStateSet()) );
    
    // add the thread model handler
    viewer->addEventHandler(new osgViewer::ThreadingHandler);

    // add the window size toggle handler
    viewer->addEventHandler(new osgViewer::WindowSizeHandler);
        
    // add the stats handler
    viewer->addEventHandler(new osgViewer::StatsHandler);

    // add the help handler
    viewer->addEventHandler(new 
osgViewer::HelpHandler(arguments.getApplicationUsage()));

    // add the record camera path handler
    viewer->addEventHandler(new osgViewer::RecordCameraPathHandler);

    // add the LOD Scale handler
    viewer->addEventHandler(new osgViewer::LODScaleHandler);

    // add the screen capture handler
    viewer->addEventHandler(new osgViewer::ScreenCaptureHandler);
}

int main(int argc, char** argv)
{
    // use an ArgumentParser object to manage the program arguments.
    osg::ArgumentParser arguments(&argc,argv);

    
arguments.getApplicationUsage()->setApplicationName(arguments.getApplicationName());
    
arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+"
 is the standard OpenSceneGraph example which loads and visualises 3d models.");
    
arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+"
 [options] filename ...");
    arguments.getApplicationUsage()->addCommandLineOption("--image 
<filename>","Load an image and render it on a quad");
    arguments.getApplicationUsage()->addCommandLineOption("--dem 
<filename>","Load an image/DEM and render it on a HeightField");
    arguments.getApplicationUsage()->addCommandLineOption("--login <url> 
<username> <password>","Provide authentication information for http file 
access.");

        osg::ref_ptr<osgViewer::Viewer> viewer = new 
osgViewer::Viewer(arguments);

    unsigned int helpType = 0;
    if ((helpType = arguments.readHelpType()))
    {
        arguments.getApplicationUsage()->write(std::cout, helpType);
        return 1;
    }
    
    // report any errors if they have occurred when parsing the program 
arguments.
    if (arguments.errors())
    {
        arguments.writeErrorMessages(std::cout);
        return 1;
    }
    
    if (arguments.argc()<=1)
    {
        
arguments.getApplicationUsage()->write(std::cout,osg::ApplicationUsage::COMMAND_LINE_OPTION);
        return 1;
    }

    std::string url, username, password;
    while(arguments.read("--login",url, username, password))
    {
        if (!osgDB::Registry::instance()->getAuthenticationMap())
        {
            osgDB::Registry::instance()->setAuthenticationMap(new 
osgDB::AuthenticationMap);
            
osgDB::Registry::instance()->getAuthenticationMap()->addAuthenticationDetails(
                url,
                new osgDB::AuthenticationDetails(username, password)
            );
        }
    }


        setupViewer(viewer.get(),arguments);

    // load the data
    osg::ref_ptr<osg::Node> loadedModel = osgDB::readNodeFiles(arguments);
    if (!loadedModel) 
    {
        std::cout << arguments.getApplicationName() <<": No data loaded" << 
std::endl;
        return 1;
    }

    // any option left unread are converted into errors to write out later.
    arguments.reportRemainingOptionsAsUnrecognized();

    // report any errors if they have occurred when parsing the program 
arguments.
    if (arguments.errors())
    {
        arguments.writeErrorMessages(std::cout);
        return 1;
    }


    // optimize the scene graph, remove redundant nodes and state etc.
    osgUtil::Optimizer optimizer;
    optimizer.optimize(loadedModel.get());

        osgUtil::Optimizer::TextureVisitor tv(true, false, false, false, false, 
false);
        loadedModel->accept(tv);

    viewer->setSceneData( loadedModel.get() );
    viewer->realize();
        while (!viewer->done())
        {
                viewer->frame();
        }

        viewer->setSceneData( 0 );
        loadedModel = 0;
        viewer = 0;

        

        viewer = new osgViewer::Viewer(arguments);
        setupViewer(viewer.get(),arguments);

        loadedModel = osgDB::readNodeFiles(arguments);
        loadedModel->accept(tv);

        viewer->setSceneData( loadedModel.get() );
        viewer->realize();
        while (!viewer->done())
        {
                viewer->frame();
        }

    return 0;

}
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to