Blender V2.61 - r43446
|
#include <stdlib.h>
#include <string.h>
#include <vector>
#include "MEM_guardedalloc.h"
#include "BIK_api.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BKE_global.h"
#include "BKE_armature.h"
#include "BKE_action.h"
#include "BKE_utildefines.h"
#include "BKE_constraint.h"
#include "DNA_object_types.h"
#include "DNA_action_types.h"
#include "DNA_constraint_types.h"
#include "DNA_armature_types.h"
#include "DNA_scene_types.h"
#include "itasc_plugin.h"
Go to the source code of this file.
Classes | |
struct | IK_Data |
struct | IK_Target |
struct | IK_Channel |
struct | IK_Scene |
Defines | |
#define | ANIM_TIMESTEP 1.0 |
#define | ANIM_FEEDBACK 0.8 |
#define | ANIM_QMAX 0.52 |
Typedefs | |
typedef float | Vector3 [3] |
typedef float | Vector4 [4] |
typedef void(* | ErrorCallback )(const iTaSC::ConstraintValues *values, unsigned int nvalues, IK_Target *iktarget) |
Enumerations | |
enum | IK_SegmentFlag { IK_XDOF = 1, IK_YDOF = 2, IK_ZDOF = 4, IK_SWING = 8, IK_REVOLUTE = 16, IK_TRANSY = 32, IK_XDOF = 1, IK_YDOF = 2, IK_ZDOF = 4, IK_TRANS_XDOF = 8, IK_TRANS_YDOF = 16, IK_TRANS_ZDOF = 32 } |
enum | IK_SegmentAxis { IK_X = 0, IK_Y = 1, IK_Z = 2, IK_TRANS_X = 3, IK_TRANS_Y = 4, IK_TRANS_Z = 5, IK_X = 0, IK_Y = 1, IK_Z = 2, IK_TRANS_X = 3, IK_TRANS_Y = 4, IK_TRANS_Z = 5 } |
Functions | |
static int | initialize_chain (Object *ob, bPoseChannel *pchan_tip, bConstraint *con) |
static bool | is_cartesian_constraint (bConstraint *con) |
static bool | constraint_valid (bConstraint *con) |
int | initialize_scene (Object *ob, bPoseChannel *pchan_tip) |
static IK_Data * | get_ikdata (bPose *pose) |
static double | EulerAngleFromMatrix (const KDL::Rotation &R, int axis) |
static double | ComputeTwist (const KDL::Rotation &R) |
static void | RemoveEulerAngleFromMatrix (KDL::Rotation &R, double angle, int axis) |
static void | GetJointRotation (KDL::Rotation &boneRot, int type, double *rot) |
static bool | target_callback (const iTaSC::Timestamp ×tamp, const iTaSC::Frame ¤t, iTaSC::Frame &next, void *param) |
static bool | base_callback (const iTaSC::Timestamp ×tamp, const iTaSC::Frame ¤t, iTaSC::Frame &next, void *param) |
static bool | copypose_callback (const iTaSC::Timestamp ×tamp, iTaSC::ConstraintValues *const _values, unsigned int _nvalues, void *_param) |
static void | copypose_error (const iTaSC::ConstraintValues *values, unsigned int nvalues, IK_Target *iktarget) |
static bool | distance_callback (const iTaSC::Timestamp ×tamp, iTaSC::ConstraintValues *const _values, unsigned int _nvalues, void *_param) |
static void | distance_error (const iTaSC::ConstraintValues *values, unsigned int _nvalues, IK_Target *iktarget) |
static bool | joint_callback (const iTaSC::Timestamp ×tamp, iTaSC::ConstraintValues *const _values, unsigned int _nvalues, void *_param) |
static int | convert_channels (IK_Scene *ikscene, PoseTree *tree) |
static void | convert_pose (IK_Scene *ikscene) |
static void | rest_pose (IK_Scene *ikscene) |
static IK_Scene * | convert_tree (Scene *blscene, Object *ob, bPoseChannel *pchan) |
static void | create_scene (Scene *scene, Object *ob) |
static void | init_scene (Object *ob) |
static void | execute_scene (Scene *blscene, IK_Scene *ikscene, bItasc *ikparam, float ctime, float frtime) |
void | itasc_initialize_tree (struct Scene *scene, Object *ob, float ctime) |
void | itasc_execute_tree (struct Scene *scene, struct Object *ob, struct bPoseChannel *pchan, float ctime) |
void | itasc_release_tree (struct Scene *scene, struct Object *ob, float ctime) |
void | itasc_clear_data (struct bPose *pose) |
void | itasc_clear_cache (struct bPose *pose) |
void | itasc_update_param (struct bPose *pose) |
void | itasc_test_constraint (struct Object *ob, struct bConstraint *cons) |
Variables | |
bItasc | DefIKParam |
Definition in file itasc_plugin.cpp.
#define ANIM_FEEDBACK 0.8 |
Definition at line 77 of file itasc_plugin.cpp.
Referenced by copypose_callback(), and distance_callback().
#define ANIM_QMAX 0.52 |
Definition at line 78 of file itasc_plugin.cpp.
#define ANIM_TIMESTEP 1.0 |
Definition at line 76 of file itasc_plugin.cpp.
typedef void(* ErrorCallback)(const iTaSC::ConstraintValues *values, unsigned int nvalues, IK_Target *iktarget) |
Definition at line 92 of file itasc_plugin.cpp.
typedef float Vector3[3] |
Definition at line 89 of file itasc_plugin.cpp.
typedef float Vector4[4] |
Definition at line 90 of file itasc_plugin.cpp.
enum IK_SegmentAxis |
IK_X | |
IK_Y | |
IK_Z | |
IK_TRANS_X | |
IK_TRANS_Y | |
IK_TRANS_Z | |
IK_X | |
IK_Y | |
IK_Z | |
IK_TRANS_X | |
IK_TRANS_Y | |
IK_TRANS_Z |
Definition at line 230 of file itasc_plugin.cpp.
enum IK_SegmentFlag |
IK_XDOF | |
IK_YDOF | |
IK_ZDOF | |
IK_SWING | |
IK_REVOLUTE | |
IK_TRANSY | |
IK_XDOF | |
IK_YDOF | |
IK_ZDOF | |
IK_TRANS_XDOF | |
IK_TRANS_YDOF | |
IK_TRANS_ZDOF |
Definition at line 221 of file itasc_plugin.cpp.
static bool base_callback | ( | const iTaSC::Timestamp & | timestamp, |
const iTaSC::Frame & | current, | ||
iTaSC::Frame & | next, | ||
void * | param | ||
) | [static] |
Definition at line 582 of file itasc_plugin.cpp.
References IK_Scene::armature, IK_Scene::baseFrame, IK_Scene::blArmature, IK_Scene::blscene, IK_Scene::channels, CONSTRAINT_OBTYPE_OBJECT, copy_m4_m4(), copy_v3_v3(), KDL::cos(), bConstraint::data, IK_Target::ee, iTaSC::F_identity, get_constraint_target_matrix(), iTaSC::Object::getPose(), KDL::Joint::getType(), KDL::Frame::getValue(), KDL::Rotation::Inverse(), invert_m4_m4(), length(), KDL::Frame::M, mult_m4_m4m4(), Normalize(), Object::obmat, KDL::Frame::p, bPoseChannel::parent, IK_Channel::pchan, IK_Scene::polarConstraint, bKinematicConstraint::poleangle, bPoseChannel::pose_mat, bPoseChannel::pose_tail, KDL::Frame::setValue(), KDL::sin(), IK_Channel::tail, IK_Target::target, IK_Scene::targets, KDL::Joint::TransY, KDL::Rotation::UnitX(), KDL::Rotation::UnitY(), KDL::Rotation::UnitZ(), and iTaSC::Timestamp::update.
Referenced by convert_tree().
static double ComputeTwist | ( | const KDL::Rotation & | R | ) | [static] |
Definition at line 442 of file itasc_plugin.cpp.
References KDL::atan2(), and R.
Referenced by GetJointRotation().
static bool constraint_valid | ( | bConstraint * | con | ) | [static] |
Definition at line 381 of file itasc_plugin.cpp.
References CONSTRAINT_DISABLE, CONSTRAINT_IK_AUTO, data, bConstraint::data, bConstraint::flag, bKinematicConstraint::flag, if(), is_cartesian_constraint(), NULL, OB_ARMATURE, bKinematicConstraint::subtarget, bKinematicConstraint::tar, and Object::type.
Referenced by initialize_scene().
Definition at line 866 of file itasc_plugin.cpp.
References IK_Scene::blArmature, BONE_IK_NO_XDOF, BONE_IK_NO_XDOF_TEMP, BONE_IK_NO_YDOF, BONE_IK_NO_YDOF_TEMP, BONE_IK_NO_ZDOF, BONE_IK_NO_ZDOF_TEMP, BONE_IK_XLIMIT, BONE_IK_YLIMIT, BONE_IK_ZLIMIT, IK_Scene::channels, bConstraint::flag, IK_REVOLUTE, IK_SWING, IK_TRANSY, IK_XDOF, IK_YDOF, IK_ZDOF, bPoseChannel::ikflag, bPoseChannel::ikstretch, IK_Scene::jointArray, IK_Channel::jointType, bPoseChannel::limitmax, bPoseChannel::limitmin, IK_Channel::ndof, IK_Scene::numjoint, IK_Channel::owner, PoseTree::parent, IK_Channel::parent, PoseTree::pchan, IK_Channel::pchan, KDL::JntArray::resize(), and PoseTree::stretch.
Referenced by convert_tree().
static void convert_pose | ( | IK_Scene * | ikscene | ) | [static] |
Definition at line 980 of file itasc_plugin.cpp.
References Bone::arm_mat, IK_Scene::blArmature, bPoseChannel::bone, Bone::bone_mat, IK_Scene::channels, copy_m4_m4(), GetJointRotation(), IK_TRANSY, invert_m4_m4(), IK_Scene::jointArray, IK_Channel::jointType, len_v3(), len_v3v3(), mul_m4_m4m3(), mult_m4_m4m4(), IK_Channel::ndof, normalize_m4(), Object::obmat, bPoseChannel::parent, IK_Channel::pchan, bPoseChannel::pose_head, bPoseChannel::pose_mat, bPoseChannel::pose_tail, rot, KDL::Rotation::setValue(), and unit_m4().
Referenced by convert_tree(), and execute_scene().
static IK_Scene* convert_tree | ( | Scene * | blscene, |
Object * | ob, | ||
bPoseChannel * | pchan | ||
) | [static] |
Definition at line 1046 of file itasc_plugin.cpp.
References iTaSC::ACT_ALPHA, iTaSC::ACT_VALUE, Bone::arm_mat, Bone::arm_tail, assert, base_callback(), IK_Target::blenderConstraint, IK_Scene::blscene, IK_Target::blscene, bPoseChannel::bone, BONE_IK_ROTCTL, BONE_IK_XLIMIT, BONE_IK_YLIMIT, BONE_IK_ZLIMIT, IK_Target::channel, IK_Target::constraint, CONSTRAINT_IK_COPYPOSE, CONSTRAINT_IK_DISTANCE, CONSTRAINT_IK_NO_POS_X, CONSTRAINT_IK_NO_POS_Y, CONSTRAINT_IK_NO_POS_Z, CONSTRAINT_IK_NO_ROT_X, CONSTRAINT_IK_NO_ROT_Y, CONSTRAINT_IK_NO_ROT_Z, CONSTRAINT_IK_POS, CONSTRAINT_IK_ROT, CONSTRAINT_IK_TARGETAXIS, IK_Target::constraintName, IK_Target::controlType, convert_channels(), convert_pose(), copy_m4_m4(), copy_v3_v3(), copypose_callback(), copypose_error(), iTaSC::CopyPose::CTL_POSITION, iTaSC::CopyPose::CTL_POSITIONX, iTaSC::CopyPose::CTL_POSITIONY, iTaSC::CopyPose::CTL_POSITIONZ, iTaSC::CopyPose::CTL_ROTATION, iTaSC::CopyPose::CTL_ROTATIONX, iTaSC::CopyPose::CTL_ROTATIONY, iTaSC::CopyPose::CTL_ROTATIONZ, bConstraint::data, DefIKParam, distance_callback(), distance_error(), e_matrix, IK_Target::ee, IK_Target::eeBlend, IK_Target::eeRest, KDL::epsilon, IK_Target::errorCallback, iTaSC::F_identity, ListBase::first, bPose::flag, RenderData::frs_sec, RenderData::frs_sec_base, Object::id, iTaSC::Distance::ID_DISTANCE, iTaSC::CopyPose::ID_POSITION, iTaSC::CopyPose::ID_ROTATION, if(), IK_REVOLUTE, IK_SWING, IK_TRANSY, IK_XDOF, IK_YDOF, IK_ZDOF, bPoseChannel::ikflag, bPose::ikparam, bPoseChannel::ikstretch, bPoseChannel::iktree, invert_m4_m4(), is_cartesian_constraint(), ITASC_AUTO_STEP, ITASC_SIMULATION, ITASC_SOLVER_DLS, ITASC_SOLVER_SDLS, joint_callback(), len_v3(), length(), Bone::length, bPoseChannel::limitmax, bPoseChannel::limitmin, KDL::Frame::M, MIN2, mult_m4_m4m4(), Bone::name, ID::name, KDL::Joint::None, NULL, Object::obmat, IK_Target::owner, KDL::Frame::p, PoseTree::parent, bPoseChannel::parent, PoseTree::pchan, Object::pose, POSE_GAME_ENGINE, Scene::r, iTaSC::ConstraintSet::registerCallback(), rest_pose(), MakeCursor::root, IK_Target::rootChannel, rot, KDL::Joint::RotX, KDL::Joint::RotY, KDL::Joint::RotZ, iTaSC::MovingFrame::setCallback(), iTaSC::ConstraintSet::setControlParameter(), IK_Target::simulation, KDL::Joint::Sphere, bPoseChannel::stiffness, iTaSC::ConstraintSet::substep(), KDL::Joint::Swing, IK_Target::target, target_callback(), IK_Target::targetName, PoseTree::targets, PoseTree::totchannel, KDL::Joint::TransY, and unit_m4().
Referenced by create_scene().
static bool copypose_callback | ( | const iTaSC::Timestamp & | timestamp, |
iTaSC::ConstraintValues *const | _values, | ||
unsigned int | _nvalues, | ||
void * | _param | ||
) | [static] |
Definition at line 674 of file itasc_plugin.cpp.
References iTaSC::ACT_ALPHA, iTaSC::ACT_FEEDBACK, ANIM_FEEDBACK, IK_Target::blenderConstraint, CONSTRAINT_OFF, IK_Target::controlType, iTaSC::CopyPose::CTL_POSITION, iTaSC::CopyPose::CTL_ROTATION, bConstraint::data, DefIKParam, bConstraint::flag, bPose::ikparam, bKinematicConstraint::orientweight, IK_Target::owner, Object::pose, IK_Target::simulation, and bKinematicConstraint::weight.
Referenced by convert_tree().
static void copypose_error | ( | const iTaSC::ConstraintValues * | values, |
unsigned int | nvalues, | ||
IK_Target * | iktarget | ||
) | [static] |
Definition at line 715 of file itasc_plugin.cpp.
References IK_Target::blenderConstraint, IK_Target::controlType, iTaSC::CopyPose::CTL_POSITION, iTaSC::CopyPose::CTL_ROTATION, error(), i, bConstraint::lin_error, bConstraint::rot_error, KDL::sqr(), KDL::sqrt(), iTaSC::ConstraintValues::values, iTaSC::ConstraintSingleValue::y, and iTaSC::ConstraintSingleValue::yd.
Referenced by convert_tree().
Definition at line 1492 of file itasc_plugin.cpp.
References PoseTree::basis_change, BLI_freelistN(), BLI_remlink(), bPose::chanbase, convert_tree(), ListBase::first, IK_Data::first, get_ikdata(), if(), bPoseChannel::iktree, MEM_freeN(), bPoseChannel::next, IK_Scene::next, PoseTree::parent, PoseTree::pchan, Object::pose, and PoseTree::targets.
Referenced by itasc_initialize_tree().
static bool distance_callback | ( | const iTaSC::Timestamp & | timestamp, |
iTaSC::ConstraintValues *const | _values, | ||
unsigned int | _nvalues, | ||
void * | _param | ||
) | [static] |
Definition at line 737 of file itasc_plugin.cpp.
References iTaSC::ACT_ALPHA, iTaSC::ACT_FEEDBACK, iTaSC::ACT_VALUE, ANIM_FEEDBACK, IK_Target::blenderConstraint, CONSTRAINT_OFF, bConstraint::data, DefIKParam, bKinematicConstraint::dist, bConstraint::flag, bPose::ikparam, LIMITDIST_INSIDE, LIMITDIST_OUTSIDE, bKinematicConstraint::mode, IK_Target::owner, Object::pose, IK_Target::simulation, iTaSC::Timestamp::substep, and bKinematicConstraint::weight.
Referenced by convert_tree().
static void distance_error | ( | const iTaSC::ConstraintValues * | values, |
unsigned int | _nvalues, | ||
IK_Target * | iktarget | ||
) | [static] |
Definition at line 783 of file itasc_plugin.cpp.
References IK_Target::blenderConstraint, bConstraint::lin_error, and iTaSC::ConstraintValues::values.
Referenced by convert_tree().
static double EulerAngleFromMatrix | ( | const KDL::Rotation & | R, |
int | axis | ||
) | [static] |
Definition at line 427 of file itasc_plugin.cpp.
References KDL::atan2(), KDL::epsilon, R, and KDL::sqrt().
Referenced by GetJointRotation().
static void execute_scene | ( | Scene * | blscene, |
IK_Scene * | ikscene, | ||
bItasc * | ikparam, | ||
float | ctime, | ||
float | frtime | ||
) | [static] |
Definition at line 1533 of file itasc_plugin.cpp.
References IK_Scene::armature, IK_Scene::baseFrame, IK_Scene::blArmature, IK_Target::blenderConstraint, IK_Scene::cache, IK_Scene::channels, IK_Target::constraint, CONSTRAINT_OFF, convert_pose(), copy_v3_v3(), iTaSC::Solver::DLS_QMAX, IK_Target::errorCallback, bConstraint::flag, bPoseChannel::flag, bItasc::flag, IK_Channel::frame, iTaSC::ConstraintSet::getControlParameters(), iTaSC::Cache::getPreviousCacheItem(), KDL::Joint::getType(), KDL::Frame::getValue(), i, if(), ITASC_AUTO_STEP, ITASC_INITIAL_REITERATION, ITASC_REITERATION, ITASC_SIMULATION, IK_Scene::jointArray, IK_Channel::jointValid, length(), bItasc::maxvel, mul_v3_fl(), NULL, bItasc::numiter, bItasc::numstep, KDL::Frame::p, IK_Channel::parent, IK_Channel::pchan, POSE_CHAIN, POSE_DONE, bPoseChannel::pose_head, bPoseChannel::pose_mat, bPoseChannel::pose_tail, bItasc::precision, IK_Scene::scene, iTaSC::Solver::setParam(), IK_Scene::solver, sub_v3_v3v3(), IK_Channel::tail, IK_Scene::targets, KDL::Joint::TransY, iTaSC::Scene::update(), and where_is_pose_bone().
Referenced by itasc_execute_tree().
Definition at line 415 of file itasc_plugin.cpp.
References bPose::ikdata, bItasc::iksolver, init_pose_itasc(), and MEM_callocN().
Referenced by create_scene().
static void GetJointRotation | ( | KDL::Rotation & | boneRot, |
int | type, | ||
double * | rot | ||
) | [static] |
Definition at line 502 of file itasc_plugin.cpp.
References ComputeTwist(), EulerAngleFromMatrix(), KDL::Rotation::GetRot(), KDL::Rotation::GetXZRot(), IK_REVOLUTE, IK_SWING, IK_TRANSY, IK_XDOF, IK_YDOF, IK_ZDOF, and RemoveEulerAngleFromMatrix().
Referenced by convert_pose(), and joint_callback().
static void init_scene | ( | Object * | ob | ) | [static] |
Definition at line 1522 of file itasc_plugin.cpp.
References bPose::ikdata, NULL, Object::pose, and POSE_IKTREE.
Referenced by itasc_initialize_tree().
static int initialize_chain | ( | Object * | ob, |
bPoseChannel * | pchan_tip, | ||
bConstraint * | con | ||
) | [static] |
Definition at line 239 of file itasc_plugin.cpp.
References BLI_addtail(), PoseTarget::con, CONSTRAINT_IK_STRETCH, CONSTRAINT_IK_TIP, data, bConstraint::data, ListBase::first, bPoseChannel::flag, bKinematicConstraint::flag, bPoseChannel::iktree, PoseTree::iterations, bKinematicConstraint::iterations, MAX2, MEM_callocN(), MEM_freeN(), MIN2, NULL, PoseTree::parent, bPoseChannel::parent, PoseTree::pchan, POSE_CHAIN, POSE_IKTREE, bKinematicConstraint::rootbone, size(), PoseTree::stretch, PoseTree::targets, PoseTarget::tip, and PoseTree::totchannel.
Referenced by initialize_scene().
int initialize_scene | ( | Object * | ob, |
bPoseChannel * | pchan_tip | ||
) |
Definition at line 399 of file itasc_plugin.cpp.
References CONSTRAINT_TYPE_KINEMATIC, constraint_valid(), bPoseChannel::constraints, ListBase::first, initialize_chain(), bConstraint::next, and bConstraint::type.
Referenced by itasc_initialize_tree().
static bool is_cartesian_constraint | ( | bConstraint * | con | ) | [static] |
Definition at line 374 of file itasc_plugin.cpp.
Referenced by constraint_valid(), and convert_tree().
void itasc_clear_cache | ( | struct bPose * | pose | ) |
Definition at line 1760 of file itasc_plugin.cpp.
References IK_Data::first, bPose::ikdata, IK_Scene::next, and NULL.
void itasc_clear_data | ( | struct bPose * | pose | ) |
Definition at line 1747 of file itasc_plugin.cpp.
References IK_Data::first, bPose::ikdata, MEM_freeN(), IK_Scene::next, and NULL.
Referenced by itasc_initialize_tree().
void itasc_execute_tree | ( | struct Scene * | scene, |
struct Object * | ob, | ||
struct bPoseChannel * | pchan, | ||
float | ctime | ||
) |
Definition at line 1718 of file itasc_plugin.cpp.
References bPose::ctime, DefIKParam, execute_scene(), IK_Data::first, bPose::flag, RenderData::frs_sec, RenderData::frs_sec_base, bPose::ikdata, bPose::ikparam, IK_Scene::next, Object::pose, POSE_GAME_ENGINE, and Scene::r.
Definition at line 1693 of file itasc_plugin.cpp.
References bPose::chanbase, bPoseChannel::constflag, create_scene(), ListBase::first, bPose::flag, bPose::ikdata, init_scene(), initialize_scene(), itasc_clear_data(), itasc_update_param(), bPoseChannel::next, NULL, PCHAN_HAS_IK, Object::pose, and POSE_WAS_REBUILT.
Definition at line 1742 of file itasc_plugin.cpp.
void itasc_test_constraint | ( | struct Object * | ob, |
struct bConstraint * | cons | ||
) |
Definition at line 1798 of file itasc_plugin.cpp.
References CONSTRAINT_IK_COPYPOSE, CONSTRAINT_IK_DISTANCE, CONSTRAINT_TYPE_KINEMATIC, data, bConstraint::data, if(), NULL, bConstraint::type, and bKinematicConstraint::type.
void itasc_update_param | ( | struct bPose * | pose | ) |
Definition at line 1772 of file itasc_plugin.cpp.
References iTaSC::ACT_FEEDBACK, CONSTRAINT_ID_ALL, iTaSC::Solver::DLS_EPSILON, iTaSC::Solver::DLS_LAMBDA_MAX, iTaSC::Solver::DLS_QMAX, IK_Data::first, iTaSC::ID_JOINT, bPose::ikdata, bPose::ikparam, ITASC_SIMULATION, iTaSC::Scene::MAX_TIMESTEP, iTaSC::Scene::MIN_TIMESTEP, and IK_Scene::next.
Referenced by itasc_initialize_tree().
static bool joint_callback | ( | const iTaSC::Timestamp & | timestamp, |
iTaSC::ConstraintValues *const | _values, | ||
unsigned int | _nvalues, | ||
void * | _param | ||
) | [static] |
Definition at line 788 of file itasc_plugin.cpp.
References iTaSC::ConstraintValues::alpha, axis_angle_to_mat3(), eulO_to_mat3(), bItasc::feedback, iTaSC::ConstraintValues::feedback, GetJointRotation(), i, iTaSC::ConstraintValues::id, iTaSC::ID_JOINT_RX, iTaSC::ID_JOINT_RY, iTaSC::ID_JOINT_RZ, if(), IK_REVOLUTE, IK_SWING, IK_TRANSY, IK_XDOF, IK_YDOF, IK_ZDOF, bPose::ikparam, IK_Channel::jointType, IK_Channel::jointValid, IK_Channel::jointValue, normalize_qt(), IK_Channel::owner, IK_Channel::pchan, Object::pose, quat_to_mat3(), ROT_MODE_AXISANGLE, and iTaSC::ConstraintValues::values.
Referenced by convert_tree().
static void RemoveEulerAngleFromMatrix | ( | KDL::Rotation & | R, |
double | angle, | ||
int | axis | ||
) | [static] |
Definition at line 453 of file itasc_plugin.cpp.
References KDL::Rotation::RotX(), KDL::Rotation::RotY(), KDL::Rotation::RotZ(), and T.
Referenced by GetJointRotation().
static void rest_pose | ( | IK_Scene * | ikscene | ) | [static] |
Definition at line 1020 of file itasc_plugin.cpp.
References IK_Scene::blArmature, bPoseChannel::bone, IK_Scene::channels, IK_TRANSY, IK_Scene::jointArray, IK_Channel::jointType, len_v3(), Bone::length, IK_Channel::ndof, Object::obmat, IK_Channel::pchan, rot, and KDL::SetToZero().
static bool target_callback | ( | const iTaSC::Timestamp & | timestamp, |
const iTaSC::Frame & | current, | ||
iTaSC::Frame & | next, | ||
void * | param | ||
) | [static] |
Definition at line 547 of file itasc_plugin.cpp.
References blend_m4_m4m4(), IK_Target::blenderConstraint, IK_Target::blscene, CONSTRAINT_OBTYPE_OBJECT, copy_m4_m4(), copy_v3_v3(), IK_Target::eeBlend, IK_Target::eeRest, bConstraint::enforce, get_constraint_target_matrix(), mul_serie_m4(), mult_m4_m4m4(), NULL, Object::obmat, IK_Target::owner, bPoseChannel::parent, bPoseChannel::pose_mat, bPoseChannel::pose_tail, IK_Target::rootChannel, and KDL::Frame::setValue().
Referenced by convert_tree().
Definition at line 68 of file itasc_plugin.cpp.
Referenced by convert_tree(), copypose_callback(), distance_callback(), and itasc_execute_tree().