#include <vpdof.h>
Inheritance diagram for VPDof:
Public Member Functions | |
VPDof () | |
VPDof (const VPDof &dof) | |
VPDof (const VPPoint4D &vec, const VPPoint4D &pos, float min, float max) | |
VPDof & | operator= (const VPDof &dof) |
void | SetDescription (const std::string &desc) |
const std::string & | GetDescription () |
VPPoint4D | GetAxis () |
VPPoint4D | GetOrigin () |
VPBezier * | GetEvoluta () |
void | GetLim (VPTransform *ptrResult) |
VPTransform | GetLim () |
float | GetMin () |
float | GetMax () |
float | GetCurrentMin () |
float | GetCurrentMax () |
float | GetRest () |
VPJoint * | GetOwnerJoint () |
void | SetEvoluta (VPBezier *evol) |
void | SetLim (const VPTransform &t) |
void | SetAxis (VPVector3D v) |
void | SetMin (float min) |
void | SetMax (float max) |
void | SetOwnerJoint (VPJoint *ow) |
void | MoveTo (float pos) |
Sets DOF's current position. | |
float | GetCurrent () |
Gets DOF's current position. | |
void | Move (float variance) |
Changes DOF. | |
void | Transform (const VPTransform &t) |
Applies a transformation to the DOF. | |
void | SetRest (float rest) |
void | Set (const VPPoint4D &vec, const VPPoint4D &pos, float min, float max) |
Initializes a DOF previouly created with default constructor. | |
void | Rest () |
void | SetRangeModifier (VPModifier *m) |
VPModifier * | GetRangeModifier () |
void | ApplyTransformTo (VPTransform *ptrTrans) const |
Apply internal transform to some external transform. | |
Protected Member Functions | |
void | setAxis (VPVector3D ax) |
void | ComputeLIM () |
A DOF is an axis of rotation, that may move along a 3D curve (the evoluta). The rotation of a DOF has a limited range that may change according to external elements, this is controlled by the rangeModifier (VPModifier). There may exist a hierachy of DOFs, so that by changing one DOF, hierarchically lower DOFs are rotated. DOFs may not be shared among joints because they have a single pointer to the owner joint and because the joint destructor may destroy DOFs marked as autoDelete.
Definition at line 33 of file vpdof.h.
|
Definition at line 37 of file vpdof.cpp. References VPTransform::MakeIdentity(), NULL, and VPPoint4D::SetXYZW(). |
|
Definition at line 57 of file vpdof.cpp. References axis, confortMaxAngle, confortMinAngle, currentMaxAngle, currentMinAngle, currentPosition, description, evoluta, lim, maxAngle, minAngle, ownerJoint, position, rangeModifier, and restPosition. |
|
Definition at line 76 of file vpdof.cpp. References ComputeLIM(), and NULL. |
|
Apply internal transform to some external transform. Pre-multiply the internal transform to the argument. As VPTransform is a pre-multiplication matrix, the resulting transform has the effect of its previous value followed by the DOF's internal transform. This method is called by VPJoint when it is collection DOFs' transforms in order to compose its final transform.
|
|
Definition at line 334 of file vpdof.cpp. References VPBezier::GetPoint(), VPTransform::MakeRotation(), and VPPoint4D::SetW(). |
|
|
|
Gets DOF's current position.
|
|
Definition at line 249 of file vpdof.cpp. References VPModifier::GetMax(). |
|
Definition at line 239 of file vpdof.cpp. References VPModifier::GetMin(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 172 of file vpdof.cpp. References VPTransform::GetTranslation(). |
|
|
|
|
|
|
|
Changes DOF. Changes how much the DOF is "bent"
Definition at line 74 of file vpdof.h. References MoveTo(). Referenced by VPBiaxialJoint::Adduct(). |
|
Sets DOF's current position.
Definition at line 301 of file vpdof.cpp. References VPBezier::GetPoint(), VPJoint::MakeLim(), VPTransform::MakeRotation(), VPPoint4D::SetW(), and VPJoint::TransformDofs(). Referenced by Move(), Rest(), VPBiaxialJoint::SetAdductionTo(), VPPolyaxialJoint::SetAductionTo(), VPPolyaxialJoint::SetFlexionTo(), VPBiaxialJoint::SetFlexionTo(), and VPPolyaxialJoint::SetTwistTo(). |
|
Definition at line 127 of file vpdof.cpp. References axis, confortMaxAngle, confortMinAngle, currentMaxAngle, currentMinAngle, currentPosition, description, evoluta, lim, maxAngle, minAngle, ownerJoint, position, rangeModifier, and restPosition. |
|
Definition at line 393 of file vpdof.cpp. References MoveTo(). |
|
Initializes a DOF previouly created with default constructor. Newly created DOFs are set at zero rotation. Use GetCurrent to find initial positial.
Definition at line 147 of file vpdof.cpp. References ComputeLIM(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 383 of file vpdof.cpp. Referenced by VPJoint::AddDof(). |
|
|
|
|
|
Applies a transformation to the DOF. Not of interest to the application programmer. This method is called when a DOF needs to be updated because a hierarchically superior DOF has been changed. This is done by applying the transform to DOF's attributes. Definition at line 354 of file vpdof.cpp. References VPTransform::ApplyTo(), VPBezier::GetPoint(), VPTransform::MakeRotation(), VPPoint4D::Normalize(), VPPoint4D::SetW(), and VPCurve::Transform(). |