small fixes and refactoring.
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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)
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user