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 |
Returns available draw modes. More... | |
void | boundingBox (Vec3d &_bbMin, Vec3d &_bbMax) |
Returns the bounding box of this node. More... | |
void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode) |
Renders the nodes contents using the given render state and draw mode. More... | |
void | pick (GLState &_state, PickTarget _target) |
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) |
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 83 of file SkeletonNodeT.hh.
ACG::SceneGraph::SkeletonNodeT< SkeletonType >::SkeletonNodeT | ( | SkeletonType & | _skeleton, |
BaseNode * | _parent = 0 , |
||
std::string | _name = "<SkeletonNode>" |
||
) |
Constructor.
Definition at line 81 of file SkeletonNodeT.cc.
ACG::SceneGraph::SkeletonNodeT< SkeletonType >::~SkeletonNodeT | ( | ) |
Destructor.
Definition at line 104 of file SkeletonNodeT.cc.
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 726 of file SkeletonNodeT.cc.
|
private |
Helper function to create a renderobject for bones.
Definition at line 635 of file SkeletonNodeT.cc.
|
virtual |
Returns available draw modes.
Reimplemented from ACG::SceneGraph::ACG::SceneGraph::BaseNode.
Definition at line 159 of file SkeletonNodeT.cc.
|
virtual |
Returns the bounding box of this node.
Reimplemented from ACG::SceneGraph::ACG::SceneGraph::BaseNode.
Definition at line 135 of file SkeletonNodeT.cc.
void ACG::SceneGraph::SkeletonNodeT< SkeletonType >::draw | ( | GLState & | _state, |
const DrawModes::DrawMode & | _drawMode | ||
) |
Renders the nodes contents using the given render state and draw mode.
Definition at line 320 of file SkeletonNodeT.cc.
|
private |
Helper function to draw the bones.
Definition at line 607 of file SkeletonNodeT.cc.
|
private |
get a joint color suitable to the baseColor
get suitable color for the joint
Definition at line 497 of file SkeletonNodeT.cc.
void ACG::SceneGraph::SkeletonNodeT< SkeletonType >::getRenderObjects | ( | IRenderer * | _renderer, |
GLState & | _state, | ||
const DrawModes::DrawMode & | _drawMode, | ||
const Material * | _mat | ||
) |
Adds renderobjects to renderer for flexible shader pipeline.
Generates renderobjects instead of direct draw calls for better rendering management.
Definition at line 782 of file SkeletonNodeT.cc.
|
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 207 of file SkeletonNodeT.cc.
|
private |
Normalizes a coordinate frame defined by the given matrix.
Definition at line 182 of file SkeletonNodeT.cc.
void ACG::SceneGraph::SkeletonNodeT< SkeletonType >::pick | ( | GLState & | _state, |
PickTarget | _target | ||
) |
Renders the node in picking mode, restricted to the node components given by _target.
Definition at line 518 of file SkeletonNodeT.cc.
|
private |
Pick method for edges.
Definition at line 576 of file SkeletonNodeT.cc.
|
private |
Pick method for vertices.
Definition at line 552 of file SkeletonNodeT.cc.
|
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 268 of file SkeletonNodeT.cc.
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 714 of file SkeletonNodeT.cc.
void ACG::SceneGraph::SkeletonNodeT< SkeletonType >::showCoordFrames | ( | bool | _bVisible = true | ) |
Toggle visibility of coordinate frames for all joints.
Definition at line 738 of file SkeletonNodeT.cc.
SkeletonType & ACG::SceneGraph::SkeletonNodeT< SkeletonType >::skeleton | ( | ) |
Returns a pointer to the skeleton.
Definition at line 123 of file SkeletonNodeT.cc.
|
private |
Simulate glPointSize(12) with a sphere.
Compute the radius of a sphere simulating glPointSize after projection.
Definition at line 755 of file SkeletonNodeT.cc.