small fixes and refactoring.

This commit is contained in:
2011-08-20 16:48:53 +00:00
parent ac3d785caa
commit bcadb6b939
3 changed files with 35 additions and 27 deletions

View File

@@ -454,14 +454,14 @@ void AnimationImporter::find_frames( std::vector<float>* frames , std::vector<FC
for (iter = curves->begin(); iter != curves->end(); iter++) { for (iter = curves->begin(); iter != curves->end(); iter++) {
FCurve *fcu = *iter; FCurve *fcu = *iter;
for (unsigned int k = 0; k < fcu->totvert; k++) { for (unsigned int k = 0; k < fcu->totvert; k++) {
//get frame value from bezTriple //get frame value from bezTriple
float fra = fcu->bezt[k].vec[1][0]; float fra = fcu->bezt[k].vec[1][0];
//if frame already not added add frame to frames //if frame already not added add frame to frames
if (std::find(frames->begin(), frames->end(), fra) == frames->end()) if (std::find(frames->begin(), frames->end(), fra) == frames->end())
frames->push_back(fra); frames->push_back(fra);
} }
} }
} }
@@ -1568,11 +1568,14 @@ bool AnimationImporter::evaluate_animation(COLLADAFW::Transformation *tm, float
i++; i++;
j = 0; j = 0;
} }
unused_curves.erase(std::remove(unused_curves.begin(), unused_curves.end(), *it), unused_curves.end());
} }
COLLADAFW::Matrix tm(matrix); COLLADAFW::Matrix tm(matrix);
dae_matrix_to_mat4(&tm, mat); dae_matrix_to_mat4(&tm, mat);
std::vector<FCurve*>::iterator it;
return true; return true;
} }
} }

View File

@@ -39,6 +39,7 @@
#include "BKE_action.h" #include "BKE_action.h"
#include "BKE_armature.h" #include "BKE_armature.h"
#include "ED_armature.h"
#include "BLI_listbase.h" #include "BLI_listbase.h"
@@ -177,9 +178,9 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm)
node.setNodeName(node_name); node.setNodeName(node_name);
node.setNodeSid(node_sid); 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 ); add_blender_leaf_bone( bone, ob_arm , node );
else{ else{*/
node.start(); node.start();
add_bone_transform(ob_arm, bone, node); add_bone_transform(ob_arm, bone, node);
@@ -189,7 +190,7 @@ void ArmatureExporter::add_bone_node(Bone *bone, Object *ob_arm)
} }
node.end(); node.end();
} //}
} }
void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADASW::Node& node) void ArmatureExporter::add_blender_leaf_bone(Bone *bone, Object *ob_arm, COLLADASW::Node& node)

View File

@@ -183,10 +183,10 @@ void ArmatureImporter::create_bone(SkinInfo& skin, COLLADAFW::Node *node, EditBo
else else
copy_m4_m4(mat, obmat); 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); mat4_to_loc_rot_size( loc, rot, size, obmat);
mat3_to_vec_roll(rot, NULL, &angle ); 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); copy_m4_m4(leaf.mat, mat);
BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name)); BLI_strncpy(leaf.name, bone->name, sizeof(leaf.name));
float vec[3];
TagsMap::iterator etit; TagsMap::iterator etit;
ExtraTags *et = 0; ExtraTags *et = 0;
etit = uid_tags_map.find(node->getUniqueId().toAscii()); etit = uid_tags_map.find(node->getUniqueId().toAscii());
if(etit != uid_tags_map.end()) if(etit != uid_tags_map.end())
et = etit->second; {
else return; et = etit->second;
//else return;
float x,y,z; float x,y,z;
et->setData("tip_x",&x); et->setData("tip_x",&x);
et->setData("tip_y",&y); et->setData("tip_y",&y);
et->setData("tip_z",&z); et->setData("tip_z",&z);
float vec[3] = {x,y,z}; float vec[3] = {x,y,z};
copy_v3_v3(leaf.bone->tail, leaf.bone->head); copy_v3_v3(leaf.bone->tail, leaf.bone->head);
add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec);
leaf_bones.push_back(leaf); }else
leaf_bones.push_back(leaf);
} }
void ArmatureImporter::fix_leaf_bones( ) void ArmatureImporter::fix_leaf_bones( )
@@ -295,7 +299,7 @@ void ArmatureImporter::fix_leaf_bones( )
// pointing up // pointing up
float vec[3] = {0.0f, 0.0f, 1.0f}; 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); copy_v3_v3(leaf.bone->tail, leaf.bone->head);
add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec); add_v3_v3v3(leaf.bone->tail, leaf.bone->head, vec);
@@ -418,7 +422,7 @@ void ArmatureImporter::create_armature_bones( )
leaf_bone_length = FLT_MAX; leaf_bone_length = FLT_MAX;
create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm); create_unskinned_bone(*ri, NULL, (*ri)->getChildNodes().getCount(), NULL, ob_arm);
//fix_leaf_bones(); fix_leaf_bones();
// exit armature edit mode // exit armature edit mode