#include <iksolver.h>
Class Description
- See also:
- Class BaseInterfaceServer,
Class
ZeroPlaneMap, Class
LinkChain, Inverse
Kinematics
- Description:
- This class represents the base class that IK Solver plugins
should derive from.
The IK solver is a pure mathematical function and does not hold
state, but instead just solves a given, self-contained,
mathematical problem, e.g. the plugin solver does not have
influence on when IK is invoked and what an IK problem is (what is
the goal and what are the joints, etc.), but contributes to IK by
providing an answer on how to solve. Structurally, it is
independent of the SDK and, hence, can be built independently,
except for some theoretically independent math library. See the
Inverse Kinematics section for more detailed information.
Member Typedef Documentation
Member Enumeration Documentation
- Enumerator:
-
bLimitReached |
|
bLimitClamped |
|
bMaxIterationReached |
|
bGoalTooCloseToEE |
|
bInvalidArgument |
|
bInvalidInitialValue |
|
Constructor & Destructor Documentation
Member Function Documentation
virtual SClass_ID
SuperClassID |
( |
|
) |
[inline, virtual] |
- Default Implementation:
- { return IK_SOLVER_CLASS_ID; }
virtual Class_ID ClassID |
( |
|
) |
[pure virtual] |
virtual void GetClassName |
( |
MSTR & |
s |
) |
[inline, virtual] |
- Parameters:
- MSTR& s
The class name string.
- Default Implementation:
- { s = MSTR(_M("IKSolver")); }
virtual bool IsHistoryDependent |
( |
|
) |
const [pure virtual] |
- Returns:
- TRUE if the IK Solver is history dependent, otherwise
FALSE.
virtual bool DoesOneChainOnly |
( |
|
) |
const [pure virtual] |
- Returns:
- TRUE if the IK Solver does only one chain, otherwise
FALSE.
virtual bool IsInteractive |
( |
|
) |
const [pure virtual] |
- Returns:
- TRUE if the IK Solver is an interactive tool, otherwise
FALSE.
virtual bool UseSlidingJoint |
( |
|
) |
const [pure virtual] |
- Returns:
- TRUE if the sliding joint of the IK chain is used, otherwise
FALSE.
virtual bool UseSwivelAngle |
( |
|
) |
const [pure virtual] |
- Returns:
- TRUE if the swivel angle of the IK chain is used, otherwise
FALSE.
virtual bool IsAnalytic |
( |
|
) |
const [inline, virtual] |
- Returns:
- TRUE if the IK Solver is analytic, otherwise FALSE.
- Default Implementation:
- { return false; }
virtual bool DoesRootJointLimits |
( |
|
) |
const [inline, virtual] |
- Returns:
- TRUE if the IK Solver does root joint limits, otherwise
FALSE.
- Default Implementation:
- { return false;}
virtual bool DoesJointLimitsButRoot |
( |
|
) |
const [inline, virtual] |
- Returns:
- TRUE if the IK Solver does joint limits, otherwise FALSE.
- Default Implementation:
- { return false;}
virtual bool SolveEERotation |
( |
|
) |
const [pure virtual] |
- Returns:
- TRUE if the rotational part of the goal node will be used,
otherwise FALSE to indicate that only the position of the goal node
is taken as the IK goal while the rotation threshold will be
irrelevant.
- Parameters:
- const Point3&
a0
The end effector axis unit vector.
const Point3&
n0
The solver plane normal.
- Returns:
- A pointer to the ZeroPlaneMap.
- Default Implementation:
- { return NULL; }
virtual float GetPosThreshold |
( |
|
) |
const [pure virtual] |
virtual float GetRotThreshold |
( |
|
) |
const [pure virtual] |
virtual unsigned GetMaxIteration |
( |
|
) |
const [pure virtual] |
virtual void SetPosThreshold |
( |
float |
|
) |
[pure virtual] |
- Parameters:
- float
The position threshold value.
virtual void SetRotThreshold |
( |
float |
|
) |
[pure virtual] |
- Parameters:
- float
The rotation threshold value.
virtual void SetMaxIteration |
( |
unsigned |
|
) |
[pure virtual] |
- Parameters:
- unsigned
The maximum number of iterations.
- Parameters:
- IKSys::LinkChain&
A reference to the Link Chain.
- Returns:
- The ReturnCondition bit-set with one or more of the following
flags;
bLimitReached
The limit is reached.
bLimitClamped
The limit is clamped.
bMaxIterationReached
The maximum number of iterations is reached.
bGoalTooCloseToEE
The goal is too close to the end effector.
bInvalidArgument
An invalid argument is passed.
bInvalidInitialValue
An invalid initial value is passed.