00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef SG_TRANSLATE_TRANSFORM_HXX
00023 #define SG_TRANSLATE_TRANSFORM_HXX
00024
00025 #include <osg/Transform>
00026 #include <simgear/math/SGMath.hxx>
00027
00028 class SGTranslateTransform : public osg::Transform {
00029 public:
00030 SGTranslateTransform();
00031 SGTranslateTransform(const SGTranslateTransform&,
00032 const osg::CopyOp& copyop = osg::CopyOp::SHALLOW_COPY);
00033
00034 META_Node(simgear, SGTranslateTransform);
00035
00036 void setAxis(const SGVec3d& axis)
00037 { _axis = axis; dirtyBound(); }
00038 const SGVec3d& getAxis() const
00039 { return _axis; }
00040
00041 void setValue(double value)
00042 { _value = value; dirtyBound(); }
00043 double getValue() const
00044 { return _value; }
00045
00046 virtual bool computeLocalToWorldMatrix(osg::Matrix& matrix,
00047 osg::NodeVisitor* nv) const;
00048 virtual bool computeWorldToLocalMatrix(osg::Matrix& matrix,
00049 osg::NodeVisitor* nv) const;
00050 virtual osg::BoundingSphere computeBound() const;
00051
00052 private:
00053 SGVec3d _axis;
00054 double _value;
00055 };
00056
00057 #endif