Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

Joint Class Reference

Abstract representaiton of a degree-of-freedom. More...

#include <joint.h>

Inheritance diagram for Joint::

NodeJoint PropertyJoint ParticleJoint List of all members.

Public Methods

virtual uint16 JointType (void)=0
 returns the type id of the joint. More...

virtual void Modify (JointPart part, float mVal)=0
 Assigns new value to abstract joint part. More...

virtual void Modify (JointPart part, string &mVal)=0
virtual void Modify (JointPart part, uint16 mVal)=0
virtual void Modify (JointPart part, VECTOR_TYPE mVal)=0
virtual void SetValue (float newValue)=0
 Scaled and assigns value to joint. More...


Public Attributes

string name
 name of the joint. More...


Protected Attributes

uint16 actionCode
 Action the joint will enact on the puppet. More...

VECTOR_TYPE supplementalData
 Additional transformatino data. More...


Detailed Description

Abstract representaiton of a degree-of-freedom.

A joint is a structure that maps a degree of freedom in a puppet to an input source that controls it. The base joint class will define some variables and functions, but is mostly virtual and should never be implemented in and of itself.


Member Function Documentation

uint16 Joint::JointType void    [pure virtual]
 

returns the type id of the joint.

Returns:
an integer denoting the joint type
All this function does is pass back the code indicating node type, so no funky querying of polymorphic types has to go on.

Reimplemented in NodeJoint, PropertyJoint, and ParticleJoint.

void Joint::Modify JointPart    part,
VECTOR_TYPE    mVal
[pure virtual]
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
part  a JointPart
mVal  a VECTOR_TYPE

Reimplemented in NodeJoint, and PropertyJoint.

void Joint::Modify JointPart    part,
uint16    mVal
[pure virtual]
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
part  a JointPart
mVal  a uint16

Reimplemented in NodeJoint, and PropertyJoint.

void Joint::Modify JointPart    part,
string &    mVal
[pure virtual]
 

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters:
part  a JointPart
mVal  a string

Reimplemented in NodeJoint, and PropertyJoint.

void Joint::Modify JointPart    part,
float    mVal
[pure virtual]
 

Assigns new value to abstract joint part.

Parameters:
part  a JointPart
mVal  a float
Modify takes in a part code and a new value, and modfies the indicates area of the joint in accordance with the new value. Use the JointPart enum to determine your choices ...any type submitted as mVal should be fine (b/c of the overloading)

Reimplemented in NodeJoint, and PropertyJoint.

void Joint::SetValue float    newValue [pure virtual]
 

Scaled and assigns value to joint.

Parameters:
newValue  a float
The meat of the joint (except for node-joints, in whom the skeleton-bending function is the most important), this takes a float between -100 and 100 and turns it into a proper value for the joint along the range defined by min/begin and max/end.

Reimplemented in NodeJoint, PropertyJoint, and ParticleJoint.


Member Data Documentation

uint16 Joint::actionCode [protected]
 

Action the joint will enact on the puppet.

Transformation type of the joint...whether this joint is going to rotate, stretch, twist a given node or target. *Note*: Some Joints don't use this...re-map to sub-class somewhere?

string Joint::name
 

name of the joint.

The name of the joint, in case this needs to be displayed in a GUI of some sort.

VECTOR_TYPE Joint::supplementalData [protected]
 

Additional transformatino data.

Most of the transformations a target can undergo require addition information to work correctly. For translations, this would be direction; for rotation, it's the axis about which to rotate.


The documentation for this class was generated from the following file:
Generated on Tue Oct 16 13:42:10 2001 for The Stage by doxygen1.2.11 written by Dimitri van Heesch, © 1997-2001