14 #ifndef OSGGA_CameraManipulator
15 #define OSGGA_CameraManipulator 1
18 #include <osg/Matrixd>
19 #include <osg/CoordinateSystemNode>
21 #include <osgUtil/SceneView>
23 #include <osgGA/Export>
24 #include <osgGA/GUIEventHandler>
25 #include <osgGA/GUIEventAdapter>
26 #include <osgGA/GUIActionAdapter>
30 #define NEW_HOME_POSITION
47 virtual const char*
className()
const {
return "CameraManipulator"; }
70 if (_coordinateFrameCallback.valid())
return _coordinateFrameCallback->getCoordinateFrame(position);
79 virtual void setByMatrix(
const osg::Matrixd& matrix) = 0;
82 virtual void setByInverseMatrix(
const osg::Matrixd& matrix) = 0;
123 setAutoComputeHomePosition(autoComputeHomePosition);
125 _homeCenter = center;
133 center = _homeCenter;
144 virtual void computeHomePosition(
const osg::Camera *camera =
NULL,
bool useBoundingBox =
false);
182 std::string getManipulatorName()
const;
osg::CoordinateFrame getCoordinateFrame(const osg::Vec3d &position) const
bool getAutoComputeHomePosition() const
unsigned int _intersectTraversalMask
virtual void setNode(osg::Node *)
virtual void updateCamera(osg::Camera &camera)
virtual const osg::Node * getNode() const
virtual void home(double)
osg::Vec3d getUpVector(const osg::CoordinateFrame &cf) const
virtual void finishAnimation()
virtual void setCoordinateFrameCallback(CoordinateFrameCallback *cb)
osg::ref_ptr< CoordinateFrameCallback > _coordinateFrameCallback
void setViewMatrix(const osg::Matrixf &matrix)
virtual float getFusionDistanceValue() const
virtual const char * className() const
virtual void setHomePosition(const osg::Vec3d &eye, const osg::Vec3d ¢er, const osg::Vec3d &up, bool autoComputeHomePosition=false)
virtual bool handle(osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv)
virtual void setAutoComputeHomePosition(bool flag)
void setIntersectTraversalMask(unsigned int mask)
CoordinateFrameCallback * getCoordinateFrameCallback()
osg::Vec3d getFrontVector(const osg::CoordinateFrame &cf) const
virtual osg::Node * getNode()
virtual ~CoordinateFrameCallback()
osg::Vec3d getSideVector(const osg::CoordinateFrame &cf) const
virtual bool handle(osgGA::Event *event, osg::Object *object, osg::NodeVisitor *nv)
unsigned int getIntersectTraversalMask() const
virtual void getHomePosition(osg::Vec3d &eye, osg::Vec3d ¢er, osg::Vec3d &up) const
const CoordinateFrameCallback * getCoordinateFrameCallback() const
virtual osgUtil::SceneView::FusionDistanceMode getFusionDistanceMode() const
bool _autoComputeHomePosition
virtual void home(const GUIEventAdapter &, GUIActionAdapter &)
virtual void init(const GUIEventAdapter &, GUIActionAdapter &)