Show
Ignore:
Timestamp:
10/05/04 21:12:46 (10 years ago)
Author:
robert
Message:

Added s/getCullSettings to OsgCameraGroup?

Files:
1 modified

Legend:

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

    r3469 r3470  
    9191        _latitude(0.0), 
    9292        _longitude(0.0), 
    93         _height(1000.0) 
     93        _height(10000.0) 
    9494         {} 
    9595 
    9696    void updateParameters() 
    9797    { 
    98         _longitude += (2.0*osg::PI)/360.0; 
     98        _latitude -= ((2.0*osg::PI)/360.0)/100.0; 
    9999    } 
    100100 
     
    175175 
    176176 
    177 void addModel(osgProducer::Viewer* viewer,osg::Node* model) 
    178 { 
    179      
    180 } 
    181  
    182  
    183177int main(int argc, char **argv) 
    184178{ 
     
    198192    viewer.setUpViewer(osgProducer::Viewer::STANDARD_SETTINGS); 
    199193 
    200  
     194    viewer.getCullSettings().setComputeNearFarMode(osg::CullSettings::COMPUTE_NEAR_FAR_USING_PRIMITIVES); 
     195    viewer.getCullSettings().setNearFarRatio(0.0001f); 
    201196 
    202197    // get details on keyboard and mouse bindings used by the viewer. 
     
    220215    } 
    221216     
    222     osg::Node *root = createEarth(); 
    223  
     217    osg::ref_ptr<osg::Node> root = createEarth(); 
     218     
    224219    if (!root) return 0; 
    225     
     220 
    226221    // add a viewport to the viewer and attach the scene graph. 
    227     viewer.setSceneData(root); 
    228          
    229          
    230     FindNamedNodeVisitor fnnv("cessna"); 
    231     root->accept(fnnv); 
    232      
    233     if (!fnnv._foundNodes.empty()) 
    234     { 
    235         osgGA::NodeTrackerManipulator* tm = new osgGA::NodeTrackerManipulator; 
    236         tm->setTrackNode(fnnv._foundNodes[0].get()); 
    237          
    238         std::cout<<"Found "<<std::endl; 
    239          
    240         unsigned int num = viewer.addCameraManipulator(tm); 
    241         viewer.selectCameraManipulator(num); 
    242     } 
    243  
    244  
     222    viewer.setSceneData(root.get()); 
     223 
     224    osg::CoordinateSystemNode* csn = dynamic_cast<osg::CoordinateSystemNode*>(root.get()); 
     225    if (csn) 
     226    { 
     227        osg::Node* cessna = osgDB::readNodeFile("cessna.osg"); 
     228        if (cessna) 
     229        { 
     230            osg::MatrixTransform* mt = new osg::MatrixTransform; 
     231            mt->addChild(cessna); 
     232            mt->setUpdateCallback(new ModelPositionCallback); 
     233 
     234            csn->addChild(mt); 
     235 
     236            osgGA::NodeTrackerManipulator* tm = new osgGA::NodeTrackerManipulator; 
     237            tm->setTrackNode(cessna); 
     238 
     239            unsigned int num = viewer.addCameraManipulator(tm); 
     240            viewer.selectCameraManipulator(num); 
     241        } 
     242        else 
     243        { 
     244             std::cout<<"Failed to read cessna.osg"<<std::endl; 
     245        } 
     246    }     
     247 
     248         
    245249 
    246250    // create the windows and run the threads.