15#ifndef OSGMANIPULATOR_DRAGGER
16#define OSGMANIPULATOR_DRAGGER 1
30class CompositeDragger;
32class TranslateInLineCommand;
33class TranslateInPlaneCommand;
36class ScaleUniformCommand;
124 _eyeDir = farPoint - nearPoint;
151 _MVPW.makeIdentity();
160 bool needToResetHitIter =
_hitList.empty();
Matrixd Matrix
Definition Matrix:27
Vec4f Vec4
Definition Vec4:21
std::vector< Node * > NodePath
A vector of Nodes pointers which is used to describe the path from a root node to a descendant.
Definition Node:47
The osgManipulator library is a NodeKit that extends the core scene graph to support 3D interactive m...
Definition AntiSquish:23
void OSGMANIPULATOR_EXPORT setDrawableToAlwaysCull(osg::Drawable &drawable)
Culls the drawable all the time.
void OSGMANIPULATOR_EXPORT setMaterialColor(const osg::Vec4 &color, osg::Node &node)
Convenience function for setting the material color on a node.
OSGMANIPULATOR_EXPORT void computeNodePathToRoot(osg::Node &node, osg::NodePath &np)
Computes the nodepath from the given node all the way up to the root.
Camera - is a subclass of Transform which represents encapsulates the settings of a Camera.
Definition Camera:45
osg::Matrixd & getProjectionMatrix()
Get the projection matrix.
Definition Camera:216
const Viewport * getViewport() const
Get the const viewport.
Definition Camera:156
osg::Matrixd & getViewMatrix()
Get the view matrix.
Definition Camera:250
Copy Op(erator) used to control whether shallow or deep copy is used during copy construction and clo...
Definition CopyOp:41
@ SHALLOW_COPY
Definition CopyOp:47
Pure virtual base class for drawable geometry.
Definition Drawable:89
void getLookAt(Vec3f &eye, Vec3f ¢er, Vec3f &up, value_type lookDistance=1.0f) const
Get to the position and orientation of a modelview matrix, using the same convention as gluLookAt.
MatrixTransform - is a subclass of Transform which has an osg::Matrix which represents a 4x4 transfor...
Definition MatrixTransform:26
Base class for all internal nodes in the scene graph.
Definition Node:72
unsigned int NodeMask
This is a set of bits (flags) that represent the Node.
Definition Node:363
Visitor for type safe operations on osg::Nodes.
Definition NodeVisitor:82
Smart pointer for observed objects, that automatically set pointers to them to null when they are del...
Definition observer_ptr:39
Smart pointer for handling referenced counted objects.
Definition ref_ptr:32
T * get() const
Definition ref_ptr:117
Stores a set of modes and attributes which represent a set of OpenGL state.
Definition StateSet:46
General purpose double pair, uses include representation of texture coordinates.
Definition Vec2d:29
General purpose double triple for use as vertices, vectors and normals.
Definition Vec3d:30
const osg::Matrix computeWindowMatrix() const
Compute the Window Matrix which takes projected coords into Window coordinates.
Definition Viewport:129
Definition GUIActionAdapter:62
Event class for storing Keyboard, mouse and window events.
Definition GUIEventAdapter:82
Base class for motion commands that are generated by draggers.
Definition Command:31
Command for translating in a line.
Definition Command:105
Command for translating in a plane.
Definition Command:142
Command for 1D scaling.
Definition Command:183
Command for 2D scaling.
Definition Command:228
Command for uniform 3D scaling.
Definition Command:273
Command for rotation in 3D.
Definition Command:309
DraggerCallback()
Definition Constraint:38
virtual bool receive(const MotionCommand &)
Receive motion commands.
virtual bool receive(const Scale2DCommand &command)
const osg::MatrixTransform * getTransform() const
Definition Dragger:69
HandleCommandMask
Definition Dragger:48
@ HANDLE_SCALED_UNIFORM
Definition Dragger:53
@ HANDLE_ROTATE_3D
Definition Dragger:54
@ HANDLE_SCALED_2D
Definition Dragger:52
@ HANDLE_SCALED_1D
Definition Dragger:51
@ HANDLE_ALL
Definition Dragger:55
@ HANDLE_TRANSLATE_IN_PLANE
Definition Dragger:50
@ HANDLE_TRANSLATE_IN_LINE
Definition Dragger:49
osg::Matrix _worldToLocal
Definition Dragger:79
virtual bool receive(const TranslateInPlaneCommand &command)
virtual bool receive(const Rotate3DCommand &command)
osg::observer_ptr< osg::MatrixTransform > _transform
Definition Dragger:75
virtual bool receive(const TranslateInLineCommand &command)
DraggerTransformCallback(osg::MatrixTransform *transform, int handleCommandMask=HANDLE_ALL)
virtual bool receive(const Scale1DCommand &command)
osg::MatrixTransform * getTransform()
Definition Dragger:68
virtual bool receive(const ScaleUniformCommand &command)
osg::Matrix _startMotionMatrix
Definition Dragger:76
osg::Matrix _localToWorld
Definition Dragger:78
unsigned int _handleCommandMask
Definition Dragger:73
void next()
Definition Dragger:108
void setCamera(osg::Camera *camera)
Definition Dragger:136
void setMousePosition(float pixel_x, float pixel_y)
Definition Dragger:165
osg::Matrix _MVPW
Definition Dragger:182
IntersectionList::const_iterator _hitIter
Definition Dragger:175
osg::Vec3d _eyeDir
Definition Dragger:180
osg::Vec3d _nearPoint
Definition Dragger:179
IntersectionList _hitList
Definition Dragger:174
std::list< NodePathIntersectionPair > IntersectionList
Definition Dragger:114
osg::Matrix _inverseMVPW
Definition Dragger:183
const osg::Vec3d & getEyeDir() const
Definition Dragger:127
void getNearFarPoints(osg::Vec3d &nearPoint, osg::Vec3d &farPoint) const
Definition Dragger:129
void addIntersection(const osg::NodePath &nodePath, const osg::Vec3d &intersectionPoint)
Definition Dragger:158
std::pair< osg::NodePath, osg::Vec3d > NodePathIntersectionPair
Definition Dragger:113
void setNearFarPoints(osg::Vec3d nearPoint, osg::Vec3d farPoint)
Definition Dragger:121
bool projectWindowXYIntoObject(const osg::Vec2d &windowCoord, osg::Vec3d &nearPoint, osg::Vec3d &farPoint) const
osg::Vec3d _farPoint
Definition Dragger:179
osg::Vec3d getLocalIntersectPoint() const
Definition Dragger:117
void reset()
Definition Dragger:98
PointerInfo(const PointerInfo &rhs)
Definition Dragger:89
bool contains(const osg::Node *node) const
bool completed() const
Definition Dragger:106
Constraints _constraints
Definition Dragger:307
const Constraints & getConstraints() const
Definition Dragger:245
osgManipulator::PointerInfo _pointer
Definition Dragger:302
bool _activationPermittedByKeyEvent
Definition Dragger:300
virtual void setupDefaultGeometry()
Setup default geometry for dragger.
Definition Dragger:263
unsigned int _activationModKeyMask
Definition Dragger:295
Dragger * getParentDragger()
Definition Dragger:207
virtual void setIntersectionMask(osg::Node::NodeMask intersectionMask)
Set/Get the traversal mask used by this dragger when looking for intersections during event handling.
Definition Dragger:275
bool _activationPermittedByModKeyMask
Definition Dragger:298
void removeTransformUpdating(MatrixTransform *transform)
osg::Node::NodeMask _intersectionMask
Definition Dragger:309
virtual const CompositeDragger * getComposite() const
Returns 0 if this Dragger is not a CompositeDragger.
Definition Dragger:211
virtual bool handle(const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
void setActivationMouseButtonMask(unsigned int mask)
Definition Dragger:223
bool getDraggerActive() const
Definition Dragger:269
bool inverted() const
Return true if the axis of the Locator are inverted requiring the faces of any cubes used from render...
void addTransformUpdating(MatrixTransform *transform, int handleCommandMask=DraggerTransformCallback::HANDLE_ALL)
int _activationKeyEvent
Definition Dragger:297
virtual void traverse(osg::NodeVisitor &nv)
Traverse downwards : calls children's accept method with NodeVisitor.
void removeConstraint(const osg::ref_ptr< T > &c)
Definition Dragger:242
DraggerCallbacks _draggerCallbacks
Definition Dragger:308
virtual bool receive(const MotionCommand &command)
bool _draggerActive
Definition Dragger:293
void addConstraint(Constraint *constraint)
unsigned int getActivationMouseButtonMask() const
Definition Dragger:224
void setHandleEvents(bool flag)
Dragger * _parentDragger
Definition Dragger:304
void addDraggerCallback(DraggerCallback *dc)
const DraggerCallbacks & getDraggerCallbacks() const
Definition Dragger:257
virtual void dispatch(MotionCommand &command)
unsigned int getActivationModKeyMask() const
Definition Dragger:221
void removeConstraint(Constraint *constraint)
void setActivationKeyEvent(int key)
Definition Dragger:226
int getActivationKeyEvent() const
Definition Dragger:227
void addConstraint(const osg::ref_ptr< T > &c)
Definition Dragger:239
osg::Node::NodeMask getIntersectionMask() const
Definition Dragger:276
virtual bool handle(const PointerInfo &, const osgGA::GUIEventAdapter &, osgGA::GUIActionAdapter &)
Definition Dragger:233
bool getHandleEvents() const
Definition Dragger:218
META_Node(osgManipulator, Dragger)
osg::ref_ptr< DraggerCallback > _selfUpdater
Definition Dragger:306
Dragger(const Dragger &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
DraggerCallbacks & getDraggerCallbacks()
Definition Dragger:256
void addDraggerCallback(const osg::ref_ptr< T > &dc)
Definition Dragger:251
const Dragger * getParentDragger() const
Definition Dragger:208
void setActivationModKeyMask(unsigned int mask)
Definition Dragger:220
std::vector< osg::ref_ptr< DraggerCallback > > DraggerCallbacks
Definition Dragger:248
Constraints & getConstraints()
Definition Dragger:244
unsigned int _activationMouseButtonMask
Definition Dragger:296
virtual CompositeDragger * getComposite()
Returns 0 if this Dragger is not a CompositeDragger.
Definition Dragger:214
void removeDraggerCallback(DraggerCallback *dc)
void removeDraggerCallback(const osg::ref_ptr< T > &dc)
Definition Dragger:254
std::vector< osg::ref_ptr< Constraint > > Constraints
Definition Dragger:236
void setDraggerActive(bool active)
Definition Dragger:268
virtual void setParentDragger(Dragger *parent)
Set/Get parent dragger.
Definition Dragger:205
bool _handleEvents
Definition Dragger:292
void applyAppropriateFrontFace(osg::StateSet *ss) const
apply the appropriate FrontFace setting to provided StateSet to ensure that the rendering of hull of ...
bool _activationPermittedByMouseButtonMask
Definition Dragger:299
CompositeDragger allows to create complex draggers that are composed of a hierarchy of Draggers.
Definition Dragger:319
bool containsDragger(const osg::ref_ptr< T > &dc) const
Definition Dragger:346
virtual ~CompositeDragger()
Definition Dragger:357
std::vector< osg::ref_ptr< Dragger > > DraggerList
Definition Dragger:324
bool containsDragger(const Dragger *dragger) const
virtual void setParentDragger(Dragger *parent)
Set/Get parent dragger.
META_Node(osgManipulator, CompositeDragger)
CompositeDragger(const CompositeDragger &rhs, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY)
virtual CompositeDragger * getComposite()
Returns 0 if this Dragger is not a CompositeDragger.
Definition Dragger:327
DraggerList _draggerList
Definition Dragger:359
virtual bool handle(const PointerInfo &pi, const osgGA::GUIEventAdapter &ea, osgGA::GUIActionAdapter &aa)
virtual bool addDragger(Dragger *dragger)
const Dragger * getDragger(unsigned int i) const
Definition Dragger:343
bool removeDragger(const osg::ref_ptr< T > &dc)
Definition Dragger:338
CompositeDragger()
Definition Dragger:354
Dragger * getDragger(unsigned int i)
Definition Dragger:342
virtual const CompositeDragger * getComposite() const
Returns 0 if this Dragger is not a CompositeDragger.
Definition Dragger:326
DraggerList::iterator findDragger(const Dragger *dragger)
virtual bool removeDragger(Dragger *dragger)
bool addDragger(const osg::ref_ptr< T > &dc)
Definition Dragger:335
virtual void setIntersectionMask(osg::Node::NodeMask intersectionMask)
Set/Get the traversal mask used by this dragger when looking for intersections during event handling.
unsigned int getNumDraggers() const
Definition Dragger:340
#define OSGMANIPULATOR_EXPORT
Definition Export:27