[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47148] branches/soc-2012-bratwurst/source /blender/assimp: - bf_assimp: convert node transformations.
Alexander Gessler
alexander.gessler at gmx.net
Tue May 29 06:11:57 CEST 2012
Revision: 47148
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47148
Author: aramis_acg
Date: 2012-05-29 04:11:53 +0000 (Tue, 29 May 2012)
Log Message:
-----------
- bf_assimp: convert node transformations.
Modified Paths:
--------------
branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp
branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h
Modified: branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp
===================================================================
--- branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp 2012-05-29 03:07:35 UTC (rev 47147)
+++ branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.cpp 2012-05-29 04:11:53 UTC (rev 47148)
@@ -37,6 +37,7 @@
{
#include "BKE_global.h"
#include "BKE_main.h"
+#include "BKE_object.h"
#include "BKE_camera.h"
#include "BKE_lamp.h"
#include "BKE_node.h"
@@ -175,7 +176,7 @@
for (std::vector<Object *>::iterator it = objects_done.begin(), end = objects_done.end(); it != end; ++it) {
Object* const obj = *it;
- //convert_node_transform(in_node, obj); // overwrites location set earlier
+ convert_node_transform(in_node, obj);
// set parent (unless this is root)
if(out_parent) {
@@ -191,6 +192,30 @@
}
+void SceneImporter::convert_node_transform(const aiNode* node_in, Object* out_obj) const
+{
+ const aiMatrix4x4& m = node_in->mTransformation;
+ out_obj->obmat[0][0] = m.a1;
+ out_obj->obmat[1][0] = m.a2;
+ out_obj->obmat[2][0] = m.a3;
+ out_obj->obmat[3][0] = m.a4;
+ out_obj->obmat[0][1] = m.b1;
+ out_obj->obmat[1][1] = m.b2;
+ out_obj->obmat[2][1] = m.b3;
+ out_obj->obmat[3][1] = m.b4;
+ out_obj->obmat[0][2] = m.c1;
+ out_obj->obmat[1][2] = m.c2;
+ out_obj->obmat[2][2] = m.c3;
+ out_obj->obmat[3][2] = m.c4;
+ out_obj->obmat[0][3] = m.d1;
+ out_obj->obmat[1][3] = m.d2;
+ out_obj->obmat[2][3] = m.d3;
+ out_obj->obmat[3][3] = m.d4;
+
+ BKE_object_apply_mat4(out_obj, out_obj->obmat, 0, 0);
+}
+
+
Object* SceneImporter::convert_light(const aiLight& light) const
{
Object* const ob = util_add_object(out_scene, OB_CAMERA, NULL);
Modified: branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h
===================================================================
--- branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h 2012-05-29 03:07:35 UTC (rev 47147)
+++ branches/soc-2012-bratwurst/source/blender/assimp/SceneImporter.h 2012-05-29 04:11:53 UTC (rev 47148)
@@ -46,6 +46,7 @@
unsigned int get_assimp_flags() const;
void convert_node(const aiNode* in_node, Object* out_parent) const;
+ void convert_node_transform(const aiNode* node_in, Object* out_obj) const;
Object* convert_light(const aiLight& light) const;
Object* convert_camera(const aiCamera& cam) const;
Object* convert_mesh(const std::vector<const aiMesh*>& in_meshes, const char* name) const;
More information about the Bf-blender-cvs
mailing list