Revision: 37925
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37925
Author:   phabtar
Date:     2011-06-28 19:30:00 +0000 (Tue, 28 Jun 2011)
Log Message:
-----------
Set Edit bone roll on Armature Import.
+ Light->Color Sid for testing.

Modified Paths:
--------------
    branches/soc-2011-pepper/source/blender/collada/AnimationImporter.cpp
    branches/soc-2011-pepper/source/blender/collada/ArmatureExporter.cpp
    branches/soc-2011-pepper/source/blender/collada/ArmatureImporter.cpp
    branches/soc-2011-pepper/source/blender/collada/CameraExporter.cpp
    branches/soc-2011-pepper/source/blender/collada/LightExporter.cpp

Modified: branches/soc-2011-pepper/source/blender/collada/AnimationImporter.cpp
===================================================================
--- branches/soc-2011-pepper/source/blender/collada/AnimationImporter.cpp       
2011-06-28 19:19:28 UTC (rev 37924)
+++ branches/soc-2011-pepper/source/blender/collada/AnimationImporter.cpp       
2011-06-28 19:30:00 UTC (rev 37925)
@@ -776,36 +776,7 @@
                                ob->rotmode = ROT_MODE_EUL;
                        }
                }
-  //           if (is_joint) 
-               //{   
-               //      float mat[4][4];
-               //      float obmat[4][4];
-
-               //      // object-space
-               //      get_node_mat(obmat, node, NULL, NULL);
-  //          bPoseChannel *chan = get_pose_channel(ob->pose, bone_name);
-               //      
-               //      bArmature * arm = (bArmature *) ob->data;
-               //      
-               //      Bone *cur = get_named_bone( arm , bone_name );
-
-               //      if (cur->parent){
-               //              COLLADAFW::Node * parent = 
armature_importer->joint_parent_map.find(node->getUniqueId());
-               //              float[4][4] parent_mat;
-               //              get_node_mat ( parent_mat, parent, NULL, NULL );
-  //                           mul_m4_m4m4(mat, obmat, parent_mat);
-               //              bPoseChannel *parchan = 
get_pose_channel(ob->pose, cur->parent->name);
-               //              if ( parchan && chan)
-               //              mul_m4_m4m4(pchan->pose_mat, mat , 
parchan->pose_mat);
-               //      }
-               //      else {
-               //              copy_m4_m4(mat, obmat);
-               //               float invObmat[4][4];
-               //         invert_m4_m4(invObmat, ob->obmat);
-               //         if(pchan)
-               //         mul_m4_m4m4(pchan->pose_mat, mat, invObmat);
-               //      }
-               //}
+ 
        }
        
 }

Modified: branches/soc-2011-pepper/source/blender/collada/ArmatureExporter.cpp
===================================================================
--- branches/soc-2011-pepper/source/blender/collada/ArmatureExporter.cpp        
2011-06-28 19:19:28 UTC (rev 37924)
+++ branches/soc-2011-pepper/source/blender/collada/ArmatureExporter.cpp        
2011-06-28 19:30:00 UTC (rev 37925)
@@ -351,12 +351,17 @@
 
                        bPoseChannel *pchan = get_pose_channel(pose, def->name);
 
+                       float pose_mat[4][4];
                        float mat[4][4];
                        float world[4][4];
                        float inv_bind_mat[4][4];
 
+                       // pose_mat is the same as pchan->pose_mat, but without 
the rotation
+                       unit_m4(pose_mat);
+                       translate_m4(pose_mat, pchan->pose_head[0], 
pchan->pose_head[1], pchan->pose_head[2]);
+
                        // make world-space matrix, pose_mat is armature-space
-                       mul_m4_m4m4(world, pchan->pose_mat, ob_arm->obmat);
+                       mul_m4_m4m4(world, pose_mat, ob_arm->obmat);
                        
                        invert_m4_m4(mat, world);
                        converter.mat4_to_dae(inv_bind_mat, mat);

Modified: branches/soc-2011-pepper/source/blender/collada/ArmatureImporter.cpp
===================================================================
--- branches/soc-2011-pepper/source/blender/collada/ArmatureImporter.cpp        
2011-06-28 19:19:28 UTC (rev 37924)
+++ branches/soc-2011-pepper/source/blender/collada/ArmatureImporter.cpp        
2011-06-28 19:30:00 UTC (rev 37925)
@@ -96,13 +96,17 @@
        bPoseChannel *pchan  =  get_pose_channel(ob_arm->pose, 
(char*)bc_get_joint_name(node));
 
        if (parent) bone->parent = parent;
-    
+    float ax[3];
+       float angle = NULL;
+
        // get world-space
        if (parent){
                mul_m4_m4m4(mat, obmat, parent_mat);
                bPoseChannel *parchan = get_pose_channel(ob_arm->pose, 
parent->name);
                if ( parchan && pchan)
                mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat);
+               mat4_to_axis_angle(ax,&angle,mat);
+               bone->roll = angle;
        }
        else {
                copy_m4_m4(mat, obmat);
@@ -110,6 +114,8 @@
        invert_m4_m4(invObmat, ob_arm->obmat);
           if(pchan)
        mul_m4_m4m4(pchan->pose_mat, mat, invObmat);
+          mat4_to_axis_angle(ax,&angle,mat);
+          bone->roll = angle;
        }
        
 
@@ -545,7 +551,8 @@
    float obmat[4][4];
 
    bArmature * arm = (bArmature * ) ob_arm-> data ; 
-       EditBone *edbone = NULL ;
+       float ax[3];
+       float angle = NULL;
        
        // object-space
        get_node_mat(obmat, root_node, NULL, NULL);
@@ -560,15 +567,18 @@
                bPoseChannel *parchan = get_pose_channel(ob_arm->pose, 
parentname);
 
                mul_m4_m4m4(pchan->pose_mat, mat , parchan->pose_mat);
+
        }
        else {
                copy_m4_m4(mat, obmat);
                 float invObmat[4][4];
        invert_m4_m4(invObmat, ob_arm->obmat);
        mul_m4_m4m4(pchan->pose_mat, mat, invObmat);
+         
        }
                
-
+     mat4_to_axis_angle(ax,&angle,mat);
+          pchan->bone->roll = angle;
        
 
    COLLADAFW::NodePointerArray& children = root_node->getChildNodes();
@@ -632,7 +642,8 @@
                // free memory stolen from SkinControllerData
                skin.free();
        }
-
+    
+       //for bones without skins
        create_armature_bones();
 
 }

Modified: branches/soc-2011-pepper/source/blender/collada/CameraExporter.cpp
===================================================================
--- branches/soc-2011-pepper/source/blender/collada/CameraExporter.cpp  
2011-06-28 19:19:28 UTC (rev 37924)
+++ branches/soc-2011-pepper/source/blender/collada/CameraExporter.cpp  
2011-06-28 19:30:00 UTC (rev 37925)
@@ -73,7 +73,7 @@
        if (cam->type == CAM_PERSP) {
                COLLADASW::PerspectiveOptic persp(mSW);
                persp.setXFov(lens_to_angle(cam->lens)*(180.0f/M_PI));
-               persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch));
+               
persp.setAspectRatio((float)(sce->r.xsch)/(float)(sce->r.ysch),false,cam_name);
                persp.setZFar(cam->clipend);
                persp.setZNear(cam->clipsta);
                COLLADASW::Camera ccam(mSW, &persp, cam_id, cam_name);

Modified: branches/soc-2011-pepper/source/blender/collada/LightExporter.cpp
===================================================================
--- branches/soc-2011-pepper/source/blender/collada/LightExporter.cpp   
2011-06-28 19:19:28 UTC (rev 37924)
+++ branches/soc-2011-pepper/source/blender/collada/LightExporter.cpp   
2011-06-28 19:30:00 UTC (rev 37925)
@@ -101,7 +101,7 @@
        // spot
        else if (la->type == LA_SPOT) {
                COLLADASW::SpotLight cla(mSW, la_id, la_name);
-               cla.setColor(col);
+               cla.setColor(col,false,"Color");
                cla.setFallOffAngle(la->spotsize);
                cla.setFallOffExponent(la->spotblend);
                cla.setConstantAttenuation(constatt);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to