From 82ed445a31e0c7e33b8afc9393b7838931613453 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 1 Jul 2008 13:56:02 +0000 Subject: [PATCH] Added Vec3Array arrange pointer to avoid dynamic cast --- examples/osgkdtree/osgkdtree.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/examples/osgkdtree/osgkdtree.cpp b/examples/osgkdtree/osgkdtree.cpp index d3715fab5..34c6e8ff5 100644 --- a/examples/osgkdtree/osgkdtree.cpp +++ b/examples/osgkdtree/osgkdtree.cpp @@ -115,14 +115,16 @@ class KDTree : public osg::Shape } - osg::observer_ptr _geometry; + osg::observer_ptr _geometry; - osg::BoundingBox _bb; + osg::BoundingBox _bb; - AxisStack _axisStack; - KDNodeList _kdNodes; - KDLeafList _kdLeaves; - Indices _vertexIndices; + AxisStack _axisStack; + KDNodeList _kdNodes; + KDLeafList _kdLeaves; + + osg::ref_ptr _vertices; + Indices _vertexIndices; }; class KDTreeTraverser @@ -248,7 +250,7 @@ KDTree* KDTreeBuilder::createKDTree(osg::Geometry* geometry) osg::ref_ptr kdTree = new KDTree; kdTree->_geometry = geometry; kdTree->_bb = kdTree->_geometry->getBound(); - + kdTree->_vertices = vertices; unsigned int estimatedSize = (unsigned int)(float(vertices->size())/float(_targetNumVerticesPerLeaf)*1.5); @@ -372,7 +374,7 @@ int KDTreeBuilder::divide(KDTree& kdTree, osg::BoundingBox& bb, int nodeIndex, u { KDLeaf& leaf = kdTree.getLeaf(nodeIndex); - osg::Vec3Array* vertices = dynamic_cast(kdTree._geometry->getVertexArray()); + osg::Vec3Array* vertices = kdTree._vertices.get(); //osg::notify(osg::NOTICE)<<" divide leaf->_vertexIndices.size()="<_vertexIndices.size()<