]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/util/SGSceneUserData.hxx
Work around apparent OSG 3.2.0 normal binding bug.
[simgear.git] / simgear / scene / util / SGSceneUserData.hxx
index e47703b9e358f7417ebdb6e3681db8637b263635..c2a08352cafee73e02a9955a0fc5b979c5357f88 100644 (file)
 #define SG_SCENE_USERDATA_HXX
 
 #include <vector>
-#include <osg/Referenced>
 #include <osg/Node>
-#include <simgear/scene/bvh/BVHNode.hxx>
+#include <osg/Object>
+#include <simgear/bvh/BVHNode.hxx>
 #include "SGPickCallback.hxx"
 
-class SGSceneUserData : public osg::Referenced {
+class SGSceneUserData : public osg::Object {
 public:
+  META_Object(simgear, SGSceneUserData);
+  SGSceneUserData() {}
+  SGSceneUserData(const SGSceneUserData& rhs,
+                  const osg::CopyOp& copyOp = osg::CopyOp::SHALLOW_COPY)
+    : osg::Object(rhs,copyOp),
+      _bvhNode(rhs._bvhNode), _velocity(rhs._velocity),
+      _pickCallbacks(rhs._pickCallbacks)
+  {
+  }
   static SGSceneUserData* getSceneUserData(osg::Node* node);
   static const SGSceneUserData* getSceneUserData(const osg::Node* node);
   static SGSceneUserData* getOrCreateSceneUserData(osg::Node* node);
@@ -51,10 +60,12 @@ public:
     Velocity() :
         linear(SGVec3d::zeros()),
         angular(SGVec3d::zeros()),
+        referenceTime(0),
         id(simgear::BVHNode::getNewId())
     {}
     SGVec3d linear;
     SGVec3d angular;
+    double referenceTime;
     simgear::BVHNode::Id id;
   };
   const Velocity* getVelocity() const