Show
Ignore:
Timestamp:
07/12/08 13:19:25 (6 years ago)
Author:
robert
Message:

Cleaned up osgkdtree example

Files:
1 modified

Legend:

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

    r8535 r8569  
    4040#include <osgViewer/Viewer> 
    4141 
    42 #include "fixeddivision.h" 
    43 #include "variabledivision.h" 
     42#include <osg/KdTree> 
    4443 
    45 #include <osg/KdTree> 
     44#include <iostream> 
    4645 
    4746int main(int argc, char **argv) 
     
    5251    int maxNumLevels = 16; 
    5352    int targetNumIndicesPerLeaf = 16; 
    54     bool processTriangles = true; 
    5553 
    5654    while (arguments.read("--max", maxNumLevels)) {} 
    5755    while (arguments.read("--leaf", targetNumIndicesPerLeaf)) {} 
    58     while (arguments.read("--points")) processTriangles = false; 
    59     while (arguments.read("--triangles")) processTriangles = true; 
    6056     
    6157    osgDB::Registry::instance()->setBuildKdTreesHint(osgDB::ReaderWriter::Options::BUILD_KDTREES); 
     
    6965    } 
    7066 
    71  
    72     osgUtil::UpdateVisitor updateVisitor; 
    73     updateVisitor.setFrameStamp(new osg::FrameStamp); 
    74     scene->accept(updateVisitor); 
    75     scene->getBound(); 
    76  
    77     if (arguments.read("--fd")) 
    78     { 
    79         fixeddivision::KDTreeBuilder builder; 
    80  
    81         builder._maxNumLevels = maxNumLevels; 
    82         builder._targetNumIndicesPerLeaf = targetNumIndicesPerLeaf; 
    83         builder._processTriangles = processTriangles; 
    84  
    85  
    86         osg::Timer_t start = osg::Timer::instance()->tick(); 
    87  
    88  
    89         scene->accept(builder); 
    90  
    91         osg::Timer_t end = osg::Timer::instance()->tick(); 
    92         double time = osg::Timer::instance()->delta_s(start,end); 
    93         osg::notify(osg::NOTICE)<<"Time to build "<<time*1000.0<<"ms "<<builder._numVerticesProcessed<<std::endl; 
    94         osg::notify(osg::NOTICE)<<"build speed "<<(double(builder._numVerticesProcessed)/time)/1000000.0<<"M vertices per second"<<std::endl; 
    95     } 
    96     else if (arguments.read("--vd")) 
    97     { 
    98         variabledivision::KDTreeBuilder builder; 
    99  
    100         builder._maxNumLevels = maxNumLevels; 
    101         builder._targetNumTrianglesPerLeaf = targetNumIndicesPerLeaf; 
    102         builder._processTriangles = processTriangles; 
    103  
    104  
    105         osg::Timer_t start = osg::Timer::instance()->tick(); 
    106  
    107  
    108         scene->accept(builder); 
    109  
    110         osg::Timer_t end = osg::Timer::instance()->tick(); 
    111         double time = osg::Timer::instance()->delta_s(start,end); 
    112         osg::notify(osg::NOTICE)<<"Time to build "<<time*1000.0<<"ms "<<builder._numVerticesProcessed<<std::endl; 
    113         osg::notify(osg::NOTICE)<<"build speed "<<(double(builder._numVerticesProcessed)/time)/1000000.0<<"M vertices per second"<<std::endl; 
    114     }     
    115     else 
    116     { 
    117         osgViewer::Viewer viewer; 
    118         viewer.setSceneData(scene.get()); 
    119         return viewer.run(); 
    120     }     
    121      
    122     return 0; 
     67    osgViewer::Viewer viewer; 
     68    viewer.setSceneData(scene.get()); 
     69    return viewer.run(); 
    12370}