From f5f9c6b81fcb3dfc83f3ea4fb3444ed9e60af81c Mon Sep 17 00:00:00 2001 From: frohlich Date: Sun, 1 Mar 2009 12:37:50 +0000 Subject: [PATCH] More data to attach to the user data field. Modified Files: simgear/scene/util/SGSceneUserData.hxx --- simgear/scene/util/SGSceneUserData.hxx | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/simgear/scene/util/SGSceneUserData.hxx b/simgear/scene/util/SGSceneUserData.hxx index 8234ef48..6acd5068 100644 --- a/simgear/scene/util/SGSceneUserData.hxx +++ b/simgear/scene/util/SGSceneUserData.hxx @@ -25,6 +25,7 @@ #include #include #include +#include #include "SGPickCallback.hxx" class SGSceneUserData : public osg::Referenced { @@ -38,8 +39,33 @@ public: SGPickCallback* getPickCallback(unsigned i) const; void setPickCallback(SGPickCallback* pickCallback); void addPickCallback(SGPickCallback* pickCallback); + + const simgear::BVHNode* getBVHNode() const + { return _bvhNode; } + simgear::BVHNode* getBVHNode() + { return _bvhNode; } + void setBVHNode(simgear::BVHNode* bvhNode) + { _bvhNode = bvhNode; } + + struct Velocity : public SGReferenced { + Velocity() : linear(SGVec3d::zeros()), angular(SGVec3d::zeros()) {} + SGVec3d linear; + SGVec3d angular; + }; + const Velocity* getVelocity() const + { return _velocity; } + Velocity* getOrCreateVelocity() + { if (!_velocity) _velocity = new Velocity; return _velocity; } + void setVelocity(Velocity* velocity) + { _velocity = velocity; } private: + // If this node has a collision tree attached, it is stored here + SGSharedPtr _bvhNode; + + // Velocity in the childs local coordinate system + SGSharedPtr _velocity; + /// Scene interaction callbacks std::vector > _pickCallbacks; }; -- 2.39.5