Show
Ignore:
Timestamp:
08/31/05 17:04:27 (9 years ago)
Author:
robert
Message:

Added osgSim::OverlayNode? setup in osgsimulation, and added preliminary test
code to the osgSim::OverlayNode? to test osgsimulation/the architecture.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • OpenSceneGraph/trunk/examples/osgsimulation/osgsimulation.cpp

    r3996 r4487  
    3434#include <osgTerrain/DataSet> 
    3535 
     36#include <osgSim/OverlayNode> 
     37 
    3638#include <osgGA/NodeTrackerManipulator> 
    3739 
     
    290292    } 
    291293     
    292     osg::ref_ptr<osg::Node> root = createEarth(); 
     294    // read the scene from the list of file specified commandline args. 
     295    osg::ref_ptr<osg::Node> root = osgDB::readNodeFiles(arguments); 
     296 
     297    if (!root) root = createEarth(); 
    293298     
    294299    if (!root) return 0; 
     
    300305    if (csn) 
    301306    { 
     307 
     308        bool insertOverlayNode = true; 
     309        osg::ref_ptr<osgSim::OverlayNode> overlayNode; 
     310        if (insertOverlayNode) 
     311        { 
     312            overlayNode = new osgSim::OverlayNode; 
     313            for(unsigned int i=0; i<csn->getNumChildren(); ++i) 
     314            { 
     315                overlayNode->addChild( csn->getChild(i) ); 
     316            } 
     317 
     318            csn->removeChild(0, csn->getNumChildren()); 
     319            csn->addChild(overlayNode.get()); 
     320        } 
     321         
     322         
    302323        osg::Node* cessna = osgDB::readNodeFile("cessna.osg"); 
    303324        if (cessna) 
     
    319340 
    320341            csn->addChild(mt); 
     342             
     343            // if we are using an overaly node, use the cessna subgraph as the overlay subgraph 
     344            if (overlayNode.valid()) 
     345            { 
     346                overlayNode->setOverlaySubgraph(mt); 
     347            } 
    321348 
    322349            osgGA::NodeTrackerManipulator* tm = new osgGA::NodeTrackerManipulator; 
     
    332359             std::cout<<"Failed to read cessna.osg"<<std::endl; 
    333360        } 
     361         
    334362    }     
    335363