]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/bvh/BVHDebugCollectVisitor.hxx
Merge branch 'next' of git.gitorious.org:fg/simgear into next
[simgear.git] / simgear / scene / bvh / BVHDebugCollectVisitor.hxx
index 11bbd9f18d6b94c9ceb5abcfabf80c97b3b15d7e..ecbe476ccee96b918f5b29e393be4a3ff44ec753 100644 (file)
@@ -55,8 +55,9 @@ class BVHStaticNode;
 
 class BVHDebugCollectVisitor : public BVHVisitor {
 public:
-    BVHDebugCollectVisitor(unsigned level = ~0u) :
+    BVHDebugCollectVisitor(const double& time, unsigned level = ~0u) :
         _group(new osg::Group),
+        _time(time),
         _level(level),
         _currentLevel(0)
     {
@@ -100,8 +101,7 @@ public:
         addNodeSphere(node);
         osg::ref_ptr<osg::Group> oldGroup = _group;
         osg::ref_ptr<osg::MatrixTransform> transform = new osg::MatrixTransform;
-        transform->setMatrix(osg::Matrix(node.getToWorldReferenceTransform().data()));
-        double tt = node.getReferenceTime() - node.getEndTime();
+        transform->setMatrix(osg::Matrix(node.getToWorldTransform(_time).data()));
         _group = transform;
         ++_currentLevel;
         node.traverse(*this);
@@ -148,9 +148,9 @@ private:
         osg::Geometry* geometry = new osg::Geometry;
         
         osg::Vec3Array* vertices = new osg::Vec3Array;
-        vertices->push_back(triangle.getVertex(0).osg());
-        vertices->push_back(triangle.getVertex(1).osg());
-        vertices->push_back(triangle.getVertex(2).osg());
+        vertices->push_back(toOsg(triangle.getVertex(0)));
+        vertices->push_back(toOsg(triangle.getVertex(1)));
+        vertices->push_back(toOsg(triangle.getVertex(2)));
         
         osg::Vec4Array* colors = new osg::Vec4Array;
         colors->push_back(color);
@@ -172,7 +172,7 @@ private:
             return;
         SGSphered sphere = node.getBoundingSphere();
         osg::Sphere* shape = new osg::Sphere;
-        shape->setCenter(SGVec3f(sphere.getCenter()).osg());
+        shape->setCenter(toOsg(sphere.getCenter()));
         shape->setRadius(sphere.getRadius());
         addShape(shape, osg::Vec4(0.5f, 0.5f, 0.5f, 0.1f));
     }
@@ -184,8 +184,8 @@ private:
         BVHBoundingBoxVisitor bbv;
         node.accept(bbv, data);
         osg::Box* shape = new osg::Box;
-        shape->setCenter(bbv.getBox().getCenter().osg());
-        shape->setHalfLengths((0.5*bbv.getBox().getSize()).osg());
+        shape->setCenter(toOsg(bbv.getBox().getCenter()));
+        shape->setHalfLengths(toOsg((0.5*bbv.getBox().getSize())));
         addShape(shape, osg::Vec4(0.5f, 0, 0, 0.1f));
     }
     
@@ -200,6 +200,7 @@ private:
     }
     
     osg::ref_ptr<osg::Group> _group;
+    const double _time;
     const unsigned _level;
     unsigned _currentLevel;
 };