|
Developer Documentation
|
#include <AC>
Public Types | |
| typedef SkeletonType::Point | Point |
| typedef JointT< typename SkeletonType::Point > | Joint |
| typedef SkeletonType::Pose | Pose |
| typedef SkeletonType::Matrix | Matrix |
Public Types inherited from ACG::SceneGraph::ACG::SceneGraph::BaseNode | |
| enum | StatusMode { Active = 0x1, HideNode = 0x2, HideChildren = 0x4, HideSubtree = 0x8 } |
| Status modi. More... | |
| enum | TraverseMode { NodeFirst = 0x1, ChildrenFirst = 0x2, SecondPass = 0x4 } |
| Node traverse types. More... | |
| typedef std::vector< BaseNode * >::const_iterator | ConstChildIter |
| allows to iterate over children | |
| typedef std::vector< BaseNode * >::iterator | ChildIter |
| allows to iterate over children | |
| typedef std::vector< BaseNode * >::const_reverse_iterator | ConstChildRIter |
| allows to reverse iterate over children | |
| typedef std::vector< BaseNode * >::reverse_iterator | ChildRIter |
| allows to reverse iterate over children | |
| enum | PASSES { NOPASS = 0, ALLPASSES = 1 << 0, PASS_1 = 1 << 1, PASS_2 = 1 << 2, PASS_3 = 1 << 3, PASS_4 = 1 << 4, PASS_5 = 1 << 5, PASS_6 = 1 << 6, PASS_7 = 1 << 7, PASS_8 = 1 << 8 } |
| This enum should be used to enable rendering of a node in different. | |
| typedef unsigned int | MultipassBitMask |
| Multipass pass bit mask type. | |
Public Member Functions | |
| ACG_CLASSNAME (SkeletonNodeT) | |
| SkeletonNodeT (SkeletonType &_skeleton, BaseNode *_parent=0, std::string _name="<SkeletonNode>") | |
| Constructor. More... | |
| ~SkeletonNodeT () | |
| Destructor. More... | |
| SkeletonType & | skeleton () |
| Returns a pointer to the skeleton. More... | |
| DrawModes::DrawMode | availableDrawModes () const override |
| Returns available draw modes. More... | |
| void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax) override |
| Returns the bounding box of this node. More... | |
| void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode) override |
| Renders the nodes contents using the given render state and draw mode. More... | |
| void | pick (GLState &_state, PickTarget _target) override |
| Renders the node in picking mode, restricted to the node components given by _target. More... | |
| void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) override |
| Adds renderobjects to renderer for flexible shader pipeline. More... | |
| void | setActivePose (const AnimationHandle &_hAni) |
| Set the pose which should be rendered. More... | |
| AnimationHandle | activePose () |
| Get the pose that is used for rendering. More... | |
| void | showCoordFrames (bool _bVisible=true) |
| Toggle visibility of coordinate frames for all joints. More... | |
| bool | coordFramesVisible () |
| double | frameSize () |
| returns the size of the rendered coordinate system | |
Public Member Functions inherited from ACG::SceneGraph::ACG::SceneGraph::BaseNode | |
| BaseNode (BaseNode *_parent=0, std::string _name="<unknown>") | |
| Default constructor. | |
| BaseNode (BaseNode *_parent, BaseNode *_child, std::string _name="<unknown>") | |
| Put this node between _parent and _child. | |
| virtual | ~BaseNode () |
| Destructor. | |
| void | delete_subtree () |
| Delete the whole subtree of this node. More... | |
| virtual const std::string & | className () const =0 |
| Return class name (implemented by the ACG_CLASSNAME macro) | |
| virtual void | enter (GLState &, const DrawModes::DrawMode &) |
| virtual void | enter (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode) |
| virtual void | draw (GLState &, const DrawModes::DrawMode &) |
| Draw this node using the draw modes _drawMode. More... | |
| virtual void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) |
| Deferred draw call with shader based renderer. More... | |
| virtual void | leave (GLState &, const DrawModes::DrawMode &) |
| virtual void | leave (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode) |
| virtual void | enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) |
| virtual void | pick (GLState &, PickTarget) |
| virtual void | leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) |
| void | enablePicking (bool _enable) |
| bool | pickingEnabled () |
| virtual void | mouseEvent (GLState &, QMouseEvent *) |
| Handle mouse event (some interaction, e.g. modeling) | |
| void | setDirty (bool _dirty=true) |
| mark node for redrawn | |
| bool | isDirty () const |
| Check if node should be redrawn. | |
| ChildIter | childrenBegin () |
| Returns: begin-iterator of children. | |
| ConstChildIter | childrenBegin () const |
Same but cont. | |
| ChildIter | childrenEnd () |
| Returns: end-iterator of children. | |
| ConstChildIter | childrenEnd () const |
Same but const. | |
| ChildRIter | childrenRBegin () |
| Returns: reverse begin-iterator of children. | |
| ConstChildRIter | childrenRBegin () const |
| Same but const. | |
| ChildRIter | childrenREnd () |
| Returns: reverse end-iterator of children. | |
| ConstChildRIter | childrenREnd () const |
Same but const. | |
| void | push_back (BaseNode *_node) |
| Insert _node at the end of the list of children. | |
| void | remove (ChildIter _pos) |
| size_t | nChildren () const |
| number of children | |
| ChildIter | find (BaseNode *_node) |
| BaseNode * | find (const std::string &_name) |
| BaseNode * | parent () |
| Get the nodes parent node. | |
| const BaseNode * | parent () const |
| Get the nodes parent node. | |
| void | set_parent (BaseNode *_parent) |
| Set the parent of this node. More... | |
| StatusMode | status () const |
| Get node's status. | |
| void | set_status (StatusMode _s) |
| Set the status of this node. | |
| void | hide () |
| Hide Node: set status to HideNode. | |
| void | show () |
| Show node: set status to Active. | |
| bool | visible () |
| Is node visible (status == Active)? | |
| bool | hidden () |
| Is node not visible (status != Active)? | |
| std::string | name () const |
| Returns: name of node (needs not be unique) | |
| void | name (const std::string &_name) |
| rename a node | |
| unsigned int | id () const |
| DrawModes::DrawMode | drawMode () const |
| Return the own draw modes of this node. | |
| void | drawMode (DrawModes::DrawMode _drawMode) |
| unsigned int | traverseMode () const |
| Return how the node should be traversed. | |
| void | setTraverseMode (unsigned int _mode) |
| Set traverse mode for node. | |
| MultipassBitMask | multipassStatus () const |
| Get the current multipass settings for the nodes status functions. More... | |
| void | setMultipassStatus (const MultipassBitMask _passStatus) |
| Set multipass settings for the nodes status functions. More... | |
| void | multipassStatusSetActive (const unsigned int _i, bool _active) |
| Set multipass status to traverse in a specific pass. More... | |
| bool | multipassStatusActive (const unsigned int _i) const |
| Get multipass status to traverse in a specific pass. More... | |
| MultipassBitMask | multipassNode () const |
| Get the current multipass settings for the node. More... | |
| void | setMultipassNode (const MultipassBitMask _passNode) |
| Set multipass settings for the node. More... | |
| void | multipassNodeSetActive (const unsigned int _i, bool _active) |
| Set Node status to traverse in a specific pass. More... | |
| bool | multipassNodeActive (const unsigned int _i) const |
| Get Node status to traverse in a specific pass. More... | |
| void | setRenderObjectShaders (const std::string &_vertexShaderFile, const std::string &_geometryShaderFile, const std::string &_fragmentShaderFile, bool _relativePaths=true, DrawModes::DrawModePrimitive _primitiveType=DrawModes::PRIMITIVE_POLYGON) |
| Set custom shaders. More... | |
| void | setRenderObjectShaders (const std::string &_vertexShaderFile, const std::string &_tessControlShaderFile, const std::string &_tessEvalShaderFile, const std::string &_geometryShaderFile, const std::string &_fragmentShaderFile, bool _relativePaths=true, DrawModes::DrawModePrimitive _primitiveType=DrawModes::PRIMITIVE_POLYGON) |
| Set custom shaders. More... | |
| void | setRenderObjectUniformPool (const GLSL::UniformPool *_pool) |
| Set uniforms for shader based rendering. More... | |
| const GLSL::UniformPool * | getRenderObjectUniformPool () |
| Get uniforms for shader based rendering. More... | |
| void | setRenderObjectTexture (int _samplerSlot, GLuint _texId, GLenum _texType=GL_TEXTURE_2D) |
| Set textures for shader based rendering. More... | |
| void | setRenderObjectModifier (RenderObjectModifier *_modifier) |
| Set modifier for render objects. More... | |
| RenderObjectModifier * | getRenderObjectModifier () |
| Get render-object modifier. More... | |
| void | applyRenderObjectSettings (DrawModes::DrawModePrimitive _primitive, RenderObject *_obj) const |
| Set shaders, textures and uniforms as provided by user to a render-object. More... | |
Private Member Functions | |
| void | pick_vertices (GLState &_state) |
| Pick method for vertices. More... | |
| void | pick_edges (GLState &_state) |
| Pick method for edges. More... | |
| void | draw_bone (GLState &_state, DrawModes::DrawMode _drawMode, const Point &_parent, const Point &_axis) |
| Helper function to draw the bones. More... | |
| void | addBoneToRenderer (IRenderer *_renderer, RenderObject &_base, const Point &_parent, const Point &_axis) |
| Helper function to create a renderobject for bones. More... | |
| void | computeConeMatrices (const GLMatrixf &_modelView, const Point &_parent, const Point &_axis, GLMatrixf *_outCone0, GLMatrixf *_outCone1) |
| Helper function to compute modelview matrices for the two cones composing a bone. | |
| void | NormalizeCoordinateFrame (Matrix &_mat) |
| Normalizes a coordinate frame defined by the given matrix. More... | |
| void | getJointColor (const Vec4f &_baseColor, Vec4f &_result) |
| get a joint color suitable to the baseColor More... | |
| void | HSVtoRGB (const Vec4f &_HSV, Vec4f &_RGB) |
| Convert HSV color to RGB. More... | |
| void | RGBtoHSV (const Vec4f &_RGB, Vec4f &_HSV) |
| Convert RGB color to HSV. More... | |
| double | unprojectPointSize (double _pointSize, const Vec3d &_point, GLState &_state) |
| Simulate glPointSize(12) with a sphere. More... | |
Private Attributes | |
| bool | bCoordFramesVisible_ |
| Coordinate frames are visible if this is true, not visible if false. | |
| SkeletonType & | skeleton_ |
| The skeleton nodes skeleton. | |
| AnimationHandle | hAni_ |
| The active pose, this one is going to be rendered. | |
| double | fFrameSize_ |
| size for the coord-frame | |
| int | slices_ |
| int | stacks_ |
| ACG::GLSphere * | sphere_ |
| ACG::GLCone * | cone_ |
| ACG::GLCylinder * | cylinder_ |
| GeometryBuffer | pointInstanceData_ |
| per instance data of joint spheres | |
| VertexDeclaration | pointInstanceDecl_ |
| GeometryBuffer | boneInstanceData_ |
| per instance data of bones | |
| VertexDeclaration | boneInstanceDecl_ |
/.../SkeletonNodeT.hh>
Brief Description.
A more elaborate description follows.
Definition at line 77 of file SkeletonNodeT.hh.
| ACG::SceneGraph::SkeletonNodeT< SkeletonType >::SkeletonNodeT | ( | SkeletonType & | _skeleton, |
| BaseNode * | _parent = 0, |
||
| std::string | _name = "<SkeletonNode>" |
||
| ) |
Constructor.
Definition at line 75 of file SkeletonNodeT_impl.hh.
| ACG::SceneGraph::SkeletonNodeT< SkeletonType >::~SkeletonNodeT | ( | ) |
Destructor.
Definition at line 98 of file SkeletonNodeT_impl.hh.
| AnimationHandle ACG::SceneGraph::SkeletonNodeT< SkeletonType >::activePose | ( | ) |
Get the pose that is used for rendering.
Returns the active pose set with SkeletonNodeT::setActivePose.
Definition at line 720 of file SkeletonNodeT_impl.hh.
|
private |
Helper function to create a renderobject for bones.
Definition at line 629 of file SkeletonNodeT_impl.hh.
|
overridevirtual |
Returns available draw modes.
Reimplemented from ACG::SceneGraph::ACG::SceneGraph::BaseNode.
Definition at line 153 of file SkeletonNodeT_impl.hh.
|
overridevirtual |
Returns the bounding box of this node.
Reimplemented from ACG::SceneGraph::ACG::SceneGraph::BaseNode.
Definition at line 129 of file SkeletonNodeT_impl.hh.
|
override |
Renders the nodes contents using the given render state and draw mode.
Definition at line 314 of file SkeletonNodeT_impl.hh.
|
private |
Helper function to draw the bones.
Definition at line 601 of file SkeletonNodeT_impl.hh.
|
private |
get a joint color suitable to the baseColor
get suitable color for the joint
Definition at line 491 of file SkeletonNodeT_impl.hh.
|
override |
Adds renderobjects to renderer for flexible shader pipeline.
Generates renderobjects instead of direct draw calls for better rendering management.
Definition at line 776 of file SkeletonNodeT_impl.hh.
|
private |
Convert HSV color to RGB.
Converts the color from HSV color space to RGB.
H is in range [0, 360], S and V in [0, 1].
| [in] | _HSV | An array of 3 GLfloats, holding H, S and V |
| [out] | _RGB | An array of 3 GLfloats, holding R, G and B |
Definition at line 201 of file SkeletonNodeT_impl.hh.
|
private |
Normalizes a coordinate frame defined by the given matrix.
Definition at line 176 of file SkeletonNodeT_impl.hh.
|
override |
Renders the node in picking mode, restricted to the node components given by _target.
Definition at line 512 of file SkeletonNodeT_impl.hh.
|
private |
Pick method for edges.
Definition at line 570 of file SkeletonNodeT_impl.hh.
|
private |
Pick method for vertices.
Definition at line 546 of file SkeletonNodeT_impl.hh.
|
private |
Convert RGB color to HSV.
Converts a color from RGB color space to HSV.
Red, green and blue are in the range [0, 1].
| [out] | _RGB | An array of 3 GLfloats, holding R, G and B |
| [in] | _HSV | An array of 3 GLfloats, holding H, S and V |
Definition at line 262 of file SkeletonNodeT_impl.hh.
| void ACG::SceneGraph::SkeletonNodeT< SkeletonType >::setActivePose | ( | const AnimationHandle & | _hAni | ) |
Set the pose which should be rendered.
Selects the active pose.
The active pose is the pose that is drawn to the viewport. If the animation handle is invalid (-1), the default pose will be drawn.
| _hAni | A handle to an animation, or an invalid handle for the default pose. |
Definition at line 708 of file SkeletonNodeT_impl.hh.
| void ACG::SceneGraph::SkeletonNodeT< SkeletonType >::showCoordFrames | ( | bool | _bVisible = true | ) |
Toggle visibility of coordinate frames for all joints.
Definition at line 732 of file SkeletonNodeT_impl.hh.
| SkeletonType & ACG::SceneGraph::SkeletonNodeT< SkeletonType >::skeleton | ( | ) |
Returns a pointer to the skeleton.
Definition at line 117 of file SkeletonNodeT_impl.hh.
|
private |
Simulate glPointSize(12) with a sphere.
Compute the radius of a sphere simulating glPointSize after projection.
Definition at line 749 of file SkeletonNodeT_impl.hh.