| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- $#include "IK/IKSolver.h"
- class IKSolver : public Component
- {
- enum Algorithm
- {
- ONE_BONE = 0,
- TWO_BONE,
- FABRIK
- };
- enum Feature
- {
- JOINT_ROTATIONS = 0x01,
- TARGET_ROTATIONS = 0x02,
- UPDATE_ORIGINAL_POSE = 0x04,
- UPDATE_ACTIVE_POSE = 0x08,
- USE_ORIGINAL_POSE = 0x10,
- CONSTRAINTS = 0x20,
- AUTO_SOLVE = 0x40
- };
- void RebuildChainTrees();
- void RecalculateSegmentLengths();
- void CalculateJointRotations();
- void Solve();
- void ApplyOriginalPoseToScene();
- void ApplySceneToOriginalPose();
- void ApplyActivePoseToScene();
- void ApplySceneToActivePose();
- void ApplyOriginalPoseToActivePose();
- void DrawDebugGeometry(bool depthTest);
- tolua_property__get_set Algorithm algorithm;
- tolua_property__get_set unsigned maximumIterations;
- tolua_property__get_set float tolerance;
- tolua_property__get_set bool JOINT_ROTATIONS;
- tolua_property__get_set bool TARGET_ROTATIONS;
- tolua_property__get_set bool UPDATE_ORIGINAL_POSE;
- tolua_property__get_set bool UPDATE_ACTIVE_POSE;
- tolua_property__get_set bool USE_ORIGINAL_POSE;
- tolua_property__get_set bool CONSTRAINTS;
- tolua_property__get_set bool AUTO_SOLVE;
- };
|