diff options
author | Sukhitha Prabhath Jayathilake <pr.jayathilake@gmail.com> | 2011-08-20 20:48:53 +0400 |
---|---|---|
committer | Sukhitha Prabhath Jayathilake <pr.jayathilake@gmail.com> | 2011-08-20 20:48:53 +0400 |
commit | bcadb6b93986b230fb6e70489e7221b3f9972aec (patch) | |
tree | cc4febe2e531968c566738c60c4403d015c49b20 /source/blender/collada | |
parent | ac3d785caaf272304738ecc0799c1dc9c11c3c82 (diff) |
small fixes and refactoring.
Diffstat (limited to 'source/blender/collada')
-rw-r--r-- | source/blender/collada/AnimationImporter.cpp | 19 | ||||
-rw-r--r-- | source/blender/collada/ArmatureExporter.cpp | 11 | ||||
-rw-r--r-- | source/blender/collada/ArmatureImporter.cpp | 34 |
3 files changed, 36 insertions, 28 deletions
diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index a0202fdcb1b..ee04c270843 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -454,14 +454,14 @@ void AnimationImporter::find_frames( std::vector<float>* frames , std::vector<FC for (iter = curves->begin(); iter != curves->end(); iter++) { FCurve *fcu = *iter; - for (unsigned int k = 0; k < fcu->totvert; k++) { - //get frame value from bezTriple - float fra = fcu->bezt[k].vec[1][0]; - //if frame already not added add frame to frames - if (std::find(frames->begin(), frames->end(), fra) == frames->end()) - frames->push_back(fra); - - } + for (unsigned int k = 0; k < fcu->totvert; k++) { + //get frame value from bezTriple + float fra = fcu->bezt[k].vec[1][0]; + //if frame already not added add frame to frames + if (std::find(frames->begin(), frames->end(), fra) == frames->end()) + frames->push_back(fra); + + } } } @@ -1568,10 +1568,13 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float i++; j = 0; } + unused_curves.erase(std::remove(unused_curves.begin(), unused_curves.end(), *it), unused_curves.end()); } COLLADAFW::Matrix tm(matrix); dae_matrix_to_mat4(&tm, mat); + + std::vector<FCurve*>::iterator it; return true; } diff --git a/source/blender/collada/ArmatureExporter.cpp b/source/blender/collada/ArmatureExporter.cpp index 753d57b5af8..082105baaba 100644 --- a/source/blender/collada/ArmatureExporter.cpp +++ b/source/blender/collada/ArmatureExporter.cpp @@ -39,6 +39,7 @@ #include "BKE_action.h" #include "BKE_armature.h" +#include "ED_armature.h" #include "BLI_listbase.h" @@ -177,9 +178,9 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) node.setNodeName(node_name); node.setNodeSid(node_sid); - if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2) + /*if ( bone->childbase.first == NULL || BLI_countlist(&(bone->childbase))>=2) add_blender_leaf_bone( bone, ob_arm , node ); - else{ + else{*/ node.start(); add_bone_transform(ob_arm, bone, node); @@ -189,15 +190,15 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm) } node.end(); - } + //} } void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADASW::Node& node) { node.start(); - + add_bone_transform(ob_arm, bone, node); - + node.addExtraTechniqueParameter("blender", "tip_x", bone->tail[0] ); node.addExtraTechniqueParameter("blender", "tip_y", bone->tail[1] ); node.addExtraTechniqueParameter("blender", "tip_z", bone->tail[2] ); diff --git a/source/blender/collada/ArmatureImporter.cpp b/source/blender/collada/ArmatureImporter.cpp index 381a6cc06a9..67828fb967d 100644 --- a/source/blender/collada/ArmatureImporter.cpp +++ b/source/blender/collada/ArmatureImporter.cpp @@ -183,10 +183,10 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo else copy_m4_m4(mat, obmat); - float loc[3], size[3], rot[3][3] , angle; + /*float loc[3], size[3], rot[3][3] , angle; mat4_to_loc_rot_size( loc, rot, size, obmat); mat3_to_vec_roll(rot, NULL, &angle ); - bone->roll=angle; + bone->roll=angle;*/ } @@ -267,21 +267,25 @@ void ArmatureImporter::add_leaf_bone(float mat[][4], EditBone *bone, COLLADAFW: copy_m4_m4(leaf.mat, mat); BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name)); + float vec[3]; + TagsMap::iterator etit; ExtraTags *et = 0; etit = uid_tags_map.find(node->getUniqueId().toAscii()); if(etit != uid_tags_map.end()) - et = etit->second; - else return; - - float x,y,z; - et->setData("tip_x",&x); - et->setData("tip_y",&y); - et->setData("tip_z",&z); - float vec[3] = {x,y,z}; - copy_v3_v3(leaf.bone->tail, leaf.bone->head); - add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); - leaf_bones.push_back(leaf); + { + et = etit->second; + //else return; + + float x,y,z; + et->setData("tip_x",&x); + et->setData("tip_y",&y); + et->setData("tip_z",&z); + float vec[3] = {x,y,z}; + copy_v3_v3(leaf.bone->tail, leaf.bone->head); + add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); + }else + leaf_bones.push_back(leaf); } void ArmatureImporter::fix_leaf_bones( ) @@ -295,7 +299,7 @@ void ArmatureImporter::fix_leaf_bones( ) // pointing up float vec[3] = {0.0f, 0.0f, 1.0f}; - mul_v3_fl(vec, leaf_bone_length); + //mul_v3_fl(vec, leaf_bone_length); copy_v3_v3(leaf.bone->tail, leaf.bone->head); add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); @@ -418,7 +422,7 @@ void ArmatureImporter::create_armature_bones( ) leaf_bone_length = FLT_MAX; create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm); - //fix_leaf_bones(); + fix_leaf_bones(); // exit armature edit mode |