PixelLightAPI  .
Public Member Functions
PLMesh::JointHandler Class Reference

Joint handler class. More...

#include <JointHandler.h>

Inheritance diagram for PLMesh::JointHandler:
Inheritance graph
[legend]

List of all members.

Public Member Functions

PLMESH_API JointHandler ()
 Constructor.
virtual PLMESH_API ~JointHandler ()
 Destructor.
PLMESH_API bool IsUserControlled () const
 Returns whether or not this joint is user controlled.
PLMESH_API void SetUserControlled (bool bUserControlled=false)
 Sets whether or not this joint is user controlled.
PLMESH_API bool CalculateStates (const JointHandler *pJointHandler=nullptr)
 Calculates the current absolute translation and rotation states and the transform joint matrix.
PLMESH_API JointHandleroperator= (const JointHandler &cSource)
 Copy operator.
PLMESH_API bool operator== (const JointHandler &cJointHandler) const
 Compares two joint handlers.

Detailed Description

Joint handler class.


Constructor & Destructor Documentation

Constructor.

virtual PLMESH_API PLMesh::JointHandler::~JointHandler ( ) [virtual]

Destructor.


Member Function Documentation

PLMESH_API bool PLMesh::JointHandler::IsUserControlled ( ) const

Returns whether or not this joint is user controlled.

Returns:
'true' if this joint is user controlled, else 'false'
Remarks:
By default, joints are NOT user controlled which means their absolute translation and rotation is calculated automatically by the animation system by using their relative states. This way, multiple 'offline' (predefined :) animations can be mixed together to get a final animation where animations can only influence some parts of the skeleton. If a joint is marked as 'used controlled', the animations system does not calculate the absolute values by itself. In this case, this joints can be fully 'online' (dynamic) animated by using for instance physics objects in the case of ragdoll animations. Normally only a few joints are user controlled while others are still updated automatically relative to their parents.
PLMESH_API void PLMesh::JointHandler::SetUserControlled ( bool  bUserControlled = false)

Sets whether or not this joint is user controlled.

Parameters:
[in]bUserControlled'true' if this joint is user controlled, else 'false'
See also:
PLMESH_API bool PLMesh::JointHandler::CalculateStates ( const JointHandler pJointHandler = nullptr)

Calculates the current absolute translation and rotation states and the transform joint matrix.

Parameters:
[in]pJointHandlerParent joint of this joint, if a null pointer there's no parent joint
Returns:
'true' if all went fine, else 'false' (maybe the handler has no joint or the given parent joint is invalid)
PLMESH_API JointHandler& PLMesh::JointHandler::operator= ( const JointHandler cSource)

Copy operator.

Parameters:
[in]cSourceSource to copy from
Returns:
This joint state
PLMESH_API bool PLMesh::JointHandler::operator== ( const JointHandler cJointHandler) const

Compares two joint handlers.

Parameters:
[in]cJointHandlerJoint handler to compare with
Returns:
'true' if both joint handler are equal, else 'false'

The documentation for this class was generated from the following file:


PixelLight PixelLight 0.9.11-R1
Copyright (C) 2002-2012 by The PixelLight Team
Last modified Thu Feb 23 2012 14:09:36
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported