diff options
author | Gaia Clary <gaia.clary@machinimatrix.org> | 2016-09-23 13:56:04 +0300 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2016-09-24 02:06:32 +0300 |
commit | 4b891b40c218ef5f45706cbc4636a5333469dd1c (patch) | |
tree | 6a62b4f12e0fba5253184555b10826bd4ca6c6ae /source/blender/collada/ArmatureImporter.h | |
parent | 25b61662f5b4c9d04a43611927e7748a046f35db (diff) |
Fix: Collada Importer did not import the Blender Profile information correctly when multiple objects are bound to same armature. This caused Bone tails to be placed wrong.
Diffstat (limited to 'source/blender/collada/ArmatureImporter.h')
-rw-r--r-- | source/blender/collada/ArmatureImporter.h | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/source/blender/collada/ArmatureImporter.h b/source/blender/collada/ArmatureImporter.h index 524c524c9c9..17173f157e5 100644 --- a/source/blender/collada/ArmatureImporter.h +++ b/source/blender/collada/ArmatureImporter.h @@ -68,8 +68,7 @@ private: // std::map<int, JointData> joint_index_to_joint_info_map; // std::map<COLLADAFW::UniqueId, int> joint_id_to_joint_index_map; - - std::map<std::string, BoneExtended *> extended_bones; + BoneExtensionManager bone_extension_manager; // int bone_direction_row; // XXX not used float leaf_bone_length; int totbone; @@ -108,16 +107,15 @@ private: int create_bone(SkinInfo* skin, COLLADAFW::Node *node, EditBone *parent, int totchild, float parent_mat[4][4], bArmature *arm, std::vector<std::string> &layer_labels); - BoneExtended &add_bone_extended(EditBone *bone, COLLADAFW::Node * node, int sibcount, std::vector<std::string> &layer_labels); - void clear_extended_boneset(); + BoneExtended &add_bone_extended(EditBone *bone, COLLADAFW::Node * node, int sibcount, std::vector<std::string> &layer_labels, BoneExtensionMap &extended_bones); - void fix_leaf_bones(bArmature *armature, Bone *bone, bool fix_orientation); + void fix_leaf_bone_hierarchy(bArmature *armature, Bone *bone, bool fix_orientation); + void fix_leaf_bone(bArmature *armature, EditBone *ebone, BoneExtended *be, bool fix_orientation); void fix_parent_connect(bArmature *armature, Bone *bone); void connect_bone_chains(bArmature *armature, Bone *bone, const int max_chain_length); void set_pose( Object *ob_arm, COLLADAFW::Node *root_node, const char *parentname, float parent_mat[4][4]); - #if 0 void set_leaf_bone_shapes(Object *ob_arm); void set_euler_rotmode(); @@ -132,7 +130,7 @@ private: #endif Object *create_armature_bones(SkinInfo& skin); - Object *create_armature_bones(std::vector<Object *> &arm_objs); + void create_armature_bones(std::vector<Object *> &arm_objs); /** TagsMap typedef for uid_tags_map. */ typedef std::map<std::string, ExtraTags*> TagsMap; |