osgGA::NodeTrackerManipulator Class Reference
List of all members.
Public Types |
enum | TrackerMode { NODE_CENTER,
NODE_CENTER_AND_AZIM,
NODE_CENTER_AND_ROTATION
} |
enum | RotationMode { TRACKBALL,
ELEVATION_AZIM
} |
typedef std::vector
< osg::observer_ptr< osg::Node > > | ObserverNodePath |
Public Member Functions |
| NodeTrackerManipulator () |
virtual const char * | className () const |
void | setTrackNodePath (const osg::NodePath &nodePath) |
void | setTrackNodePath (const ObserverNodePath &nodePath) |
ObserverNodePath & | getTrackNodePath () |
void | setTrackNode (osg::Node *node) |
osg::Node * | getTrackNode () |
const osg::Node * | getTrackNode () const |
void | setTrackerMode (TrackerMode mode) |
TrackerMode | getTrackerMode () const |
void | setRotationMode (RotationMode mode) |
RotationMode | getRotationMode () const |
virtual void | setByMatrix (const osg::Matrixd &matrix) |
virtual void | setByInverseMatrix (const osg::Matrixd &matrix) |
virtual osg::Matrixd | getMatrix () const |
virtual osg::Matrixd | getInverseMatrix () const |
virtual
osgUtil::SceneView::FusionDistanceMode | getFusionDistanceMode () const |
virtual float | getFusionDistanceValue () const |
virtual void | setNode (osg::Node *) |
virtual const osg::Node * | getNode () const |
virtual osg::Node * | getNode () |
virtual void | computeHomePosition () |
virtual void | home (const GUIEventAdapter &ea, GUIActionAdapter &us) |
virtual void | init (const GUIEventAdapter &ea, GUIActionAdapter &us) |
virtual bool | handle (const GUIEventAdapter &ea, GUIActionAdapter &us) |
virtual void | getUsage (osg::ApplicationUsage &usage) const |
Protected Member Functions |
virtual | ~NodeTrackerManipulator () |
osg::NodePath | getNodePath () const |
bool | validateNodePath () const |
void | flushMouseEventStack () |
void | addMouseEvent (const GUIEventAdapter &ea) |
void | computeNodeWorldToLocal (osg::Matrixd &worldToLocal) const |
void | computeNodeLocalToWorld (osg::Matrixd &localToWorld) const |
void | computeNodeCenterAndRotation (osg::Vec3d ¢er, osg::Quat &rotation) const |
void | computePosition (const osg::Vec3d &eye, const osg::Vec3d &lv, const osg::Vec3d &up) |
bool | calcMovement () |
void | trackball (osg::Vec3 &axis, double &angle, double p1x, double p1y, double p2x, double p2y) |
double | tb_project_to_sphere (double r, double x, double y) |
bool | isMouseMoving () |
void | clampOrientation () |
Protected Attributes |
osg::ref_ptr< const
GUIEventAdapter > | _ga_t1 |
osg::ref_ptr< const
GUIEventAdapter > | _ga_t0 |
osg::ref_ptr< osg::Node > | _node |
ObserverNodePath | _trackNodePath |
TrackerMode | _trackerMode |
RotationMode | _rotationMode |
bool | _thrown |
osg::Quat | _nodeRotation |
osg::Quat | _rotation |
float | _distance |
Member Typedef Documentation
Member Enumeration Documentation
- Enumerator:
TRACKBALL |
Use a trackball style manipulation of the view direction w.r.t the tracked orientation.
|
ELEVATION_AZIM |
Allow the elevation and azimuth angles to be adjust w.r.t the tracked orientation.
|
- Enumerator:
NODE_CENTER |
Track the center of the node's bounding sphere, but not rotations of the node. For databases which have a CoordinateSystemNode, the orientation is kept relative the coordinate frame if the center of the node.
|
NODE_CENTER_AND_AZIM |
Track the center of the node's bounding sphere, and the azimuth rotation (about the z axis of the current coordinate frame). For databases which have a CoordinateSystemNode, the orientation is kept relative the coordinate frame if the center of the node.
|
NODE_CENTER_AND_ROTATION |
Tack the center of the node's bounding sphere, and the all rotations of the node.
|
Constructor & Destructor Documentation
osgGA::NodeTrackerManipulator::NodeTrackerManipulator |
( |
|
) |
|
virtual osgGA::NodeTrackerManipulator::~NodeTrackerManipulator |
( |
|
) |
[protected, virtual] |
Member Function Documentation
void osgGA::NodeTrackerManipulator::addMouseEvent |
( |
const GUIEventAdapter & |
ea |
) |
[protected] |
Add the current mouse GUIEvent to internal stack.
bool osgGA::NodeTrackerManipulator::calcMovement |
( |
|
) |
[protected] |
For the give mouse movement calculate the movement of the camera. Return true is camera has moved and a redraw is required.
void osgGA::NodeTrackerManipulator::clampOrientation |
( |
|
) |
[protected] |
virtual const char* osgGA::NodeTrackerManipulator::className |
( |
|
) |
const [inline, virtual] |
return the name of the object's class type. Must be defined by derived classes.
Reimplemented from osgGA::MatrixManipulator.
virtual void osgGA::NodeTrackerManipulator::computeHomePosition |
( |
|
) |
[virtual] |
void osgGA::NodeTrackerManipulator::computeNodeCenterAndRotation |
( |
osg::Vec3d & |
center, |
|
|
osg::Quat & |
rotation | |
|
) |
| | const [protected] |
void osgGA::NodeTrackerManipulator::computeNodeLocalToWorld |
( |
osg::Matrixd & |
localToWorld |
) |
const [protected] |
void osgGA::NodeTrackerManipulator::computeNodeWorldToLocal |
( |
osg::Matrixd & |
worldToLocal |
) |
const [protected] |
void osgGA::NodeTrackerManipulator::flushMouseEventStack |
( |
|
) |
[protected] |
Reset the internal GUIEvent stack.
virtual float osgGA::NodeTrackerManipulator::getFusionDistanceValue |
( |
|
) |
const [inline, virtual] |
Get the FusionDistanceValue. Used by SceneView for setting up stereo convergence.
Reimplemented from osgGA::MatrixManipulator.
virtual osg::Matrixd osgGA::NodeTrackerManipulator::getInverseMatrix |
( |
|
) |
const [virtual] |
get the position of the manipulator as a inverse matrix of the manipulator, typically used as a model view matrix.
Implements osgGA::MatrixManipulator.
virtual osg::Matrixd osgGA::NodeTrackerManipulator::getMatrix |
( |
|
) |
const [virtual] |
virtual osg::Node* osgGA::NodeTrackerManipulator::getNode |
( |
|
) |
[virtual] |
virtual const osg::Node* osgGA::NodeTrackerManipulator::getNode |
( |
|
) |
const [virtual] |
osg::NodePath osgGA::NodeTrackerManipulator::getNodePath |
( |
|
) |
const [protected] |
RotationMode osgGA::NodeTrackerManipulator::getRotationMode |
( |
|
) |
const [inline] |
TrackerMode osgGA::NodeTrackerManipulator::getTrackerMode |
( |
|
) |
const [inline] |
const osg::Node* osgGA::NodeTrackerManipulator::getTrackNode |
( |
|
) |
const [inline] |
osg::Node* osgGA::NodeTrackerManipulator::getTrackNode |
( |
|
) |
[inline] |
Move the camera to the default position. May be ignored by manipulators if home functionality is not appropriate.
Reimplemented from osgGA::MatrixManipulator.
bool osgGA::NodeTrackerManipulator::isMouseMoving |
( |
|
) |
[protected] |
Check the speed at which the mouse is moving. If speed is below a threshold then return false, otherwise return true.
virtual void osgGA::NodeTrackerManipulator::setByInverseMatrix |
( |
const osg::Matrixd & |
matrix |
) |
[inline, virtual] |
virtual void osgGA::NodeTrackerManipulator::setByMatrix |
( |
const osg::Matrixd & |
matrix |
) |
[virtual] |
virtual void osgGA::NodeTrackerManipulator::setNode |
( |
osg::Node * |
|
) |
[virtual] |
Attach a node to the manipulator. Automatically detaches previously attached node. setNode(NULL) detaches previously nodes. Is ignored by manipulators which do not require a reference model.
Reimplemented from osgGA::MatrixManipulator.
void osgGA::NodeTrackerManipulator::setRotationMode |
( |
RotationMode |
mode |
) |
|
void osgGA::NodeTrackerManipulator::setTrackerMode |
( |
TrackerMode |
mode |
) |
|
void osgGA::NodeTrackerManipulator::setTrackNode |
( |
osg::Node * |
node |
) |
|
void osgGA::NodeTrackerManipulator::setTrackNodePath |
( |
const ObserverNodePath & |
nodePath |
) |
[inline] |
void osgGA::NodeTrackerManipulator::setTrackNodePath |
( |
const osg::NodePath & |
nodePath |
) |
[inline] |
double osgGA::NodeTrackerManipulator::tb_project_to_sphere |
( |
double |
r, |
|
|
double |
x, |
|
|
double |
y | |
|
) |
| | [protected] |
void osgGA::NodeTrackerManipulator::trackball |
( |
osg::Vec3 & |
axis, |
|
|
double & |
angle, |
|
|
double |
p1x, |
|
|
double |
p1y, |
|
|
double |
p2x, |
|
|
double |
p2y | |
|
) |
| | [protected] |
bool osgGA::NodeTrackerManipulator::validateNodePath |
( |
|
) |
const [protected] |
Member Data Documentation
The documentation for this class was generated from the following file: