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-20 20:48:53 +0400
committerSukhitha Prabhath Jayathilake <pr.jayathilake@gmail.com>2011-08-20 20:48:53 +0400
commitbcadb6b93986b230fb6e70489e7221b3f9972aec (patch)
treecc4febe2e531968c566738c60c4403d015c49b20 /source/blender/collada
parentac3d785caaf272304738ecc0799c1dc9c11c3c82 (diff)
small fixes and refactoring.
Diffstat (limited to 'source/blender/collada')
-rw-r--r--source/blender/collada/AnimationImporter.cpp19
-rw-r--r--source/blender/collada/ArmatureExporter.cpp11
-rw-r--r--source/blender/collada/ArmatureImporter.cpp34
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