Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSukhitha Prabhath Jayathilake <pr.jayathilake@gmail.com>2011-08-18 23:16:36 +0400
committerSukhitha Prabhath Jayathilake <pr.jayathilake@gmail.com>2011-08-18 23:16:36 +0400
commit2ee74be88cb045d403bc5145647da4262f131077 (patch)
tree11a29ffe144d930c89cad8f65c59f5fbc0cad7c5 /source/blender/collada
parent475e0b8c0288e6f55d89d19489534884335744c4 (diff)
Blender tip profile for bones with 2 or more children.
Diffstat (limited to 'source/blender/collada')
-rw-r--r--source/blender/collada/ArmatureExporter.cpp5
-rw-r--r--source/blender/collada/ArmatureImporter.cpp8
2 files changed, 6 insertions, 7 deletions
diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp
index 1c81c0b6e76..753d57b5af8 100644
--- a/source/blender/collada/ArmatureExporter.cpp
+++ b/source/blender/collada/ArmatureExporter.cpp
@@ -177,7 +177,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm)
node.setNodeName(node_name);
node.setNodeSid(node_sid);
- if ( bone->childbase.first == NULL )
+ if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2)
add_blender_leaf_bone( bone, ob_arm , node );
else{
node.start();
@@ -202,6 +202,9 @@ void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADA
node.addExtraTechniqueParameter("blender", "tip_y", bone->tail[1] );
node.addExtraTechniqueParameter("blender", "tip_z", bone->tail[2] );
+ for (Bone *child = (Bone*)bone->childbase.first; child; child = child->next) {
+ add_bone_node(child, ob_arm);
+ }
node.end();
}
diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp
index 81d785371df..381a6cc06a9 100644
--- a/source/blender/collada/ArmatureImporter.cpp
+++ b/source/blender/collada/ArmatureImporter.cpp
@@ -83,14 +83,11 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p
float parent_mat[][4], Object * ob_arm)
{
float mat[4][4];
- float obmat[4][4];
+ float obmat[4][4];
// object-space
get_node_mat(obmat, node, NULL, NULL);
- // get world-space
-
-
EditBone *bone = ED_armature_edit_bone_add((bArmature*)ob_arm->data, (char*)bc_get_joint_name(node));
totbone++;
@@ -151,7 +148,6 @@ void ArmatureImporter::create_unskinned_bone( COLLADAFW::Node *node, EditBone *p
// in second case it's not a leaf bone, but we handle it the same way
if (!children.getCount() || children.getCount() > 1) {
-
add_leaf_bone(mat, bone, node);
}
@@ -659,7 +655,7 @@ void ArmatureImporter::make_armatures(bContext *C)
}
//for bones without skins
- create_armature_bones();
+ //create_armature_bones();
}
#if 0