]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/util/SGSceneUserData.hxx
simgear/scene/sky/sky.cxx: Include sg_inlines.h with simgear/ prefix as all other...
[simgear.git] / simgear / scene / util / SGSceneUserData.hxx
index e47703b9e358f7417ebdb6e3681db8637b263635..1296e9c348f321719d7bcad89736c7b918c49a11 100644 (file)
 #define SG_SCENE_USERDATA_HXX
 
 #include <vector>
-#include <osg/Referenced>
 #include <osg/Node>
+#include <osg/Object>
 #include <simgear/scene/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)
+    : _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 +59,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