diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_armature.h')
-rw-r--r-- | source/blender/blenkernel/BKE_armature.h | 47 |
1 files changed, 18 insertions, 29 deletions
diff --git a/source/blender/blenkernel/BKE_armature.h b/source/blender/blenkernel/BKE_armature.h index 1f9725a4f41..3b924b56c47 100644 --- a/source/blender/blenkernel/BKE_armature.h +++ b/source/blender/blenkernel/BKE_armature.h @@ -38,6 +38,8 @@ struct Bone; struct Main; struct bArmature; struct bPose; +struct bPoseChannel; +struct bConstraint; struct Object; struct MDeformVert; struct Mesh; @@ -46,10 +48,12 @@ struct ListBase; typedef struct PoseChain { - struct PoseChain *next, *prev; - struct Bone *root; - struct Bone *target; + struct PoseChain *next, *prev; // hurms + struct bPoseChannel **pchanchain; + struct bConstraint *con; + struct Bone *root, *target; struct bPose *pose; + int totchannel; float goal[3]; float tolerance; int iterations; @@ -68,42 +72,27 @@ void unlink_armature(struct bArmature *arm); void free_armature(struct bArmature *arm); void make_local_armature(struct bArmature *arm); struct bArmature *copy_armature(struct bArmature *arm); -void apply_pose_armature (struct bArmature* arm, struct bPose* pose, int doit); + void calc_armature_deform (struct Object *ob, float *co, int index); -int verify_boneptr (struct bArmature *arm, struct Bone *tBone); + void init_armature_deform(struct Object *parent, struct Object *ob); struct bArmature* get_armature (struct Object* ob); struct Bone *get_named_bone (struct bArmature *arm, const char *name); -struct Bone *get_indexed_bone (struct bArmature *arm, int index); -void make_displists_by_armature (struct Object *ob); -void calc_bone_deform (struct Bone *bone, float weight, float *vec, float *co, float *contrib); +struct Bone *get_indexed_bone (struct Object *ob, int index); + float dist_to_bone (float vec[3], float b1[3], float b2[3]); -void where_is_armature_time (struct Object *ob, float ctime); -void where_is_armature (struct Object *ob); -void where_is_bone1_time (struct Object *ob, struct Bone *bone, float ctime); - -/* Handy bone matrix functions */ -void bone_to_mat4(struct Bone *bone, float mat[][4]); -void bone_to_mat3(struct Bone *bone, float mat[][3]); -void make_boneMatrixvr (float outmatrix[][4],float delta[3], float roll); -void make_boneMatrix (float outmatrix[][4], struct Bone *bone); -void get_bone_root_pos (struct Bone* bone, float vec[3], int posed); -void get_bone_tip_pos (struct Bone* bone, float vec[3], int posed); -float get_bone_length (struct Bone *bone); +void where_is_armature (struct bArmature *arm); +void where_is_armature_bone(struct Bone *bone, struct Bone *prevbone); +void armature_rebuild_pose(struct Object *ob, struct bArmature *arm); +void where_is_pose (struct Object *ob); + void get_objectspace_bone_matrix (struct Bone* bone, float M_accumulatedMatrix[][4], int root, int posed); -void precalc_bone_irestmat (struct Bone *bone); -void precalc_armature_posemats (struct bArmature *arm); -void precalc_bonelist_irestmats (struct ListBase* bonelist); -void apply_bonemat(struct Bone *bone); +void vec_roll_to_mat3(float *vec, float roll, float mat[][3]); -/* void make_armatureParentMatrices (struct bArmature *arm); */ -void precalc_bone_defmat (struct Bone *bone); -void rebuild_bone_parent_matrix (struct Bone *bone); /* Animation functions */ -void where_is_bone_time (struct Object *ob, struct Bone *bone, float ctime); -void where_is_bone (struct Object *ob, struct Bone *bone); + struct PoseChain *ik_chain_to_posechain (struct Object *ob, struct Bone *bone); void solve_posechain (PoseChain *chain); void free_posechain (PoseChain *chain); |