

Classes | |
| class | Element |
Public Types | |
| enum | AutoSizeMode { Never, Once, Always } |
| enum | ManipulatorMode { TranslationRotation, LocalRotation, Resize, Place } |
Public Member Functions | |
| TranslationManipulatorNode (BaseNode *_parent=0, const std::string &_name="<TranslationTranslationManipulatorNode>") | |
| Default constructor. | |
| ~TranslationManipulatorNode () | |
| Destructor. | |
| ACG_CLASSNAME (TranslationManipulatorNode) | |
| class name | |
| virtual void | setIdentity () |
| void | set_draw_cylinder (bool _b) |
| set draw_cylinder_ | |
| bool | draw_manipulator () const |
| get drawCylinder | |
| void | set_direction (const Vec3d &_directionX, const Vec3d &_directionY) |
| Set direction in world coordinates. | |
| Vec3d | directionX () const |
| Get current direction of x-Axis in world coordinates. | |
| Vec3d | directionY () const |
| Get current direction of y-Axis in world coordinates. | |
| Vec3d | directionZ () const |
| Get current direction of z-Axis in world coordinates. | |
| void | set_size (double _size) |
| set cylindersize (height + radius) | |
| double | size () const |
| get cylindersize | |
| void | set_autosize (AutoSizeMode _mode) |
| set auto size mode | |
| AutoSizeMode | autosize () const |
| get autosize mode | |
| void | rotate (double _angle, Vec3d _axis) |
| void | draw (GLState &_state, unsigned int _drawMode) |
| draw the cylinder (if enabled) | |
| void | pick (GLState &_state, PickTarget _target) |
| leave node | |
| virtual void | mouseEvent (GLState &_state, QMouseEvent *_event) |
| get mouse events | |
| void | boundingBox (Vec3f &_bbMin, Vec3f &_bbMax) |
| bounding box of node | |
| void | setMode (ManipulatorMode _mode) |
| set current operation mode | |
| ManipulatorMode | getMode () const |
| get current mode | |
Private Types | |
| enum | StateUpdates { None, Over, Click } |
| enum | Elements { Origin = 0, XTop, YTop, ZTop, XAxis, YAxis, ZAxis, XRing, YRing, ZRing, NumElements } |
Private Member Functions | |
| void | update_manipulator_system (GLState &_state) |
| set the current state to follow manipulator transformation | |
| void | update_rotation (GLState &_state) |
| update the internal rotation matrix ( internal rotation may be changed without modifiing children of this node ) | |
| bool | hitSphere (GLState &_state, const Vec2i &_v2) |
| Determine whether the origin sphere has been hit. | |
| bool | hitOuterSphere (GLState &_state, const Vec2i &_v2) |
| Determine whether the outer sphere has been hit by the cursor. | |
| void | drawManipulator (GLState &_state, bool _active) |
| void | drawCircle (const float innerRadius, const float outerRadius) |
| Draws a circle with given radius. | |
| bool | mapToCylinder (GLState &_state, const Vec2i &_v2, double &axis_hit, StateUpdates _updateStates=None) |
| bool | mapToCylinderTop (GLState &_state, const Vec2i &_v2, double &axis_hit, StateUpdates _updateStates=None) |
| bool | mapToSphere (GLState &_state, const Vec2i &_v2, Vec3d &_v3, StateUpdates _updateStates=None) |
| void | updateTargetColors () |
| bool | updateCurrentColors (GLState &_state) |
| double | get_screen_length (GLState &_state, Vec3d &_point) const |
| void | updateSize (GLState &_state) |
Private Attributes | |
| bool | draw_manipulator_ |
| Vec3d | dirX_ |
| Vec3d | dirY_ |
| Vec3d | dirZ_ |
| GLUquadricObj * | axis_ |
| GLUquadricObj * | circle_ |
| GLUquadricObj * | sphere_ |
| double | manipulator_radius_ |
| double | manipulator_height_ |
| double | set_manipulator_radius_ |
| double | set_manipulator_height_ |
| int | manipulator_slices_ |
| int | manipulator_stacks_ |
| bool | any_axis_clicked_ |
| bool | any_top_clicked_ |
| bool | outer_ring_clicked_ |
| bool | any_axis_over_ |
| bool | any_top_over_ |
| bool | outer_ring_over_ |
| Element | element_ [NumElements] |
| float | resize_current_ |
| ManipulatorMode | mode_ |
| bool | ignoreTime_ |
| Vec2i | oldPoint2D_ |
| Vec3d | draggingOrigin3D_ |
| bool | dragging_ |
| Vec3d | currentScale_ |
| GLMatrixd | localTransformation_ |
| AutoSizeMode | auto_size_ |
| double | auto_size_length_ |
Definition at line 81 of file TranslationManipulatorNode.hh.
| bool ACG::SceneGraph::TranslationManipulatorNode::mapToCylinder | ( | GLState & | _state, | |
| const Vec2i & | _v1, | |||
| double & | _axis_hit, | |||
| StateUpdates | _updateStates = None | |||
| ) | [private] |
If ray from mouse pointer intersects with one of the three axes?
Definition at line 1382 of file TranslationManipulatorNode.cc.
References ACG::GLState::context_height(), directionX(), directionY(), directionZ(), ACG::GLState::pop_modelview_matrix(), ACG::GLState::push_modelview_matrix(), ACG::GLState::rotate(), ACG::GLState::set_updateGL(), update_manipulator_system(), and ACG::GLState::viewing_ray().
Referenced by mouseEvent().
| bool ACG::SceneGraph::TranslationManipulatorNode::mapToCylinderTop | ( | GLState & | _state, | |
| const Vec2i & | _v1, | |||
| double & | _axis_hit, | |||
| StateUpdates | _updateStates = None | |||
| ) | [private] |
If ray from mouse pointer intersects with one of the three tops?
Definition at line 1498 of file TranslationManipulatorNode.cc.
References ACG::GLState::context_height(), directionX(), directionY(), directionZ(), ACG::GLState::pop_modelview_matrix(), ACG::GLState::push_modelview_matrix(), ACG::GLState::rotate(), ACG::GLState::set_updateGL(), ACG::GLState::translate(), update_manipulator_system(), and ACG::GLState::viewing_ray().
Referenced by mouseEvent().
| bool ACG::SceneGraph::TranslationManipulatorNode::mapToSphere | ( | GLState & | _state, | |
| const Vec2i & | _v2, | |||
| Vec3d & | _v3, | |||
| StateUpdates | _updateStates = None | |||
| ) | [private] |
Determine whether one of the outer rings has been hit. Return true if intersection with either of the rings occurs. _v3 contains the point in world coordinates
Definition at line 1619 of file TranslationManipulatorNode.cc.
References ACG::GLState::context_height(), ACG::GLState::pop_modelview_matrix(), ACG::GLState::push_modelview_matrix(), ACG::GLState::rotate(), ACG::GLState::set_updateGL(), update_manipulator_system(), and ACG::GLState::viewing_ray().
Referenced by mouseEvent().
| void ACG::SceneGraph::TranslationManipulatorNode::pick | ( | GLState & | _state, | |
| PickTarget | _target | |||
| ) | [virtual] |
leave node
picking
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 1729 of file TranslationManipulatorNode.cc.
References drawCircle(), ACG::SceneGraph::PICK_ANYTHING, ACG::SceneGraph::PICK_FACE, ACG::GLState::pick_set_maximum(), ACG::GLState::pick_set_name(), ACG::GLState::pop_modelview_matrix(), ACG::GLState::push_modelview_matrix(), ACG::GLState::rotate(), ACG::GLState::translate(), and update_manipulator_system().
| void ACG::SceneGraph::TranslationManipulatorNode::setIdentity | ( | ) | [virtual] |
set the current transformation to the identity transformation, i.e. change the center() to the transfomed center and loadIdentity().
Reimplemented from ACG::SceneGraph::TransformNode.
Definition at line 197 of file TranslationManipulatorNode.cc.