From: frohlich Date: Sun, 1 Mar 2009 12:37:50 +0000 (+0000) Subject: More data to attach to the user data field. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=f5f9c6b81fcb3dfc83f3ea4fb3444ed9e60af81c;p=simgear.git More data to attach to the user data field. Modified Files: simgear/scene/util/SGSceneUserData.hxx --- 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; };