]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/util/SGSceneUserData.hxx
Remove using std:: from the metar header, remove HTTP support, add very basic unit...
[simgear.git] / simgear / scene / util / SGSceneUserData.hxx
index 6acd50685f9d3eac68d0ab219a8ff53eed83eb32..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);
@@ -48,9 +56,16 @@ public:
   { _bvhNode = bvhNode; }
 
   struct Velocity : public SGReferenced {
-    Velocity() : linear(SGVec3d::zeros()), angular(SGVec3d::zeros()) {}
+    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
   { return _velocity; }