[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22960] branches/ge_dyn_load: svn merge https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/ blender -r22937:22959

Campbell Barton ideasman42 at gmail.com
Thu Sep 3 01:24:19 CEST 2009


Revision: 22960
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22960
Author:   campbellbarton
Date:     2009-09-03 01:24:19 +0200 (Thu, 03 Sep 2009)

Log Message:
-----------
svn merge https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender -r22937:22959

Modified Paths:
--------------
    branches/ge_dyn_load/SConstruct
    branches/ge_dyn_load/config/win32-vc-config.py
    branches/ge_dyn_load/config/win64-vc-config.py
    branches/ge_dyn_load/release/ui/buttons_data_armature.py
    branches/ge_dyn_load/source/blender/blenkernel/BKE_constraint.h
    branches/ge_dyn_load/source/blender/blenkernel/intern/constraint.c
    branches/ge_dyn_load/source/blender/blenlib/BLI_arithb.h
    branches/ge_dyn_load/source/blender/blenlib/intern/arithb.c
    branches/ge_dyn_load/source/blender/blenlib/intern/threads.c
    branches/ge_dyn_load/source/blender/editors/animation/keyframing.c
    branches/ge_dyn_load/source/blender/editors/armature/poseobject.c
    branches/ge_dyn_load/source/blender/editors/space_buttons/buttons_context.c
    branches/ge_dyn_load/source/blender/editors/space_logic/logic_window.c
    branches/ge_dyn_load/source/blender/editors/space_logic/space_logic.c
    branches/ge_dyn_load/source/blender/editors/space_view3d/SConscript
    branches/ge_dyn_load/source/blender/editors/space_view3d/view3d_buttons.c
    branches/ge_dyn_load/source/blender/editors/space_view3d/view3d_view.c
    branches/ge_dyn_load/source/blender/editors/transform/transform.c
    branches/ge_dyn_load/source/blender/editors/transform/transform.h
    branches/ge_dyn_load/source/blender/editors/transform/transform_conversions.c
    branches/ge_dyn_load/source/blender/makesdna/DNA_constraint_types.h
    branches/ge_dyn_load/source/blender/makesrna/intern/rna_fcurve.c
    branches/ge_dyn_load/source/blender/makesrna/intern/rna_nla.c
    branches/ge_dyn_load/source/blender/windowmanager/intern/wm_files.c
    branches/ge_dyn_load/source/blender/windowmanager/intern/wm_operators.c
    branches/ge_dyn_load/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    branches/ge_dyn_load/source/gameengine/BlenderRoutines/KX_BlenderGL.h
    branches/ge_dyn_load/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    branches/ge_dyn_load/source/gameengine/BlenderRoutines/SConscript
    branches/ge_dyn_load/source/gameengine/Converter/SConscript
    branches/ge_dyn_load/source/gameengine/Expressions/PyObjectPlus.cpp
    branches/ge_dyn_load/source/gameengine/Expressions/SConscript
    branches/ge_dyn_load/source/gameengine/GameLogic/SConscript
    branches/ge_dyn_load/source/gameengine/GamePlayer/common/SConscript
    branches/ge_dyn_load/source/gameengine/GamePlayer/ghost/SConscript
    branches/ge_dyn_load/source/gameengine/Ketsji/KXNetwork/SConscript
    branches/ge_dyn_load/source/gameengine/Ketsji/KX_PythonInit.cpp
    branches/ge_dyn_load/source/gameengine/Ketsji/KX_PythonSeq.cpp
    branches/ge_dyn_load/source/gameengine/Ketsji/SConscript
    branches/ge_dyn_load/source/gameengine/Physics/Bullet/SConscript
    branches/ge_dyn_load/source/gameengine/Physics/common/SConscript
    branches/ge_dyn_load/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/SConscript
    branches/ge_dyn_load/source/gameengine/Rasterizer/SConscript
    branches/ge_dyn_load/source/gameengine/SceneGraph/SConscript
    branches/ge_dyn_load/source/gameengine/VideoTexture/SConscript
    branches/ge_dyn_load/tools/btools.py

Modified: branches/ge_dyn_load/SConstruct
===================================================================
--- branches/ge_dyn_load/SConstruct	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/SConstruct	2009-09-02 23:24:19 UTC (rev 22960)
@@ -575,6 +575,8 @@
 	if env['WITH_BF_OPENAL']:
 		dllsources.append('${LCGDIR}/openal/lib/OpenAL32.dll')
 		dllsources.append('${LCGDIR}/openal/lib/wrap_oal.dll')
+	if env['WITH_BF_SNDFILE']:
+		dllsources.append('${LCGDIR}/sndfile/lib/libsndfile-1.dll')
 	if env['WITH_BF_FFMPEG']:
 		dllsources += ['${LCGDIR}/ffmpeg/lib/avcodec-52.dll',
 						'${LCGDIR}/ffmpeg/lib/avformat-52.dll',

Modified: branches/ge_dyn_load/config/win32-vc-config.py
===================================================================
--- branches/ge_dyn_load/config/win32-vc-config.py	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/config/win32-vc-config.py	2009-09-02 23:24:19 UTC (rev 22960)
@@ -149,6 +149,7 @@
 
 CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/wd4244', '/wd4305', '/wd4800', '/wd4065', '/wd4267']
 CXXFLAGS = ['/EHsc']
+BGE_CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast', '/arch:SSE']
 
 BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
 

Modified: branches/ge_dyn_load/config/win64-vc-config.py
===================================================================
--- branches/ge_dyn_load/config/win64-vc-config.py	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/config/win64-vc-config.py	2009-09-02 23:24:19 UTC (rev 22960)
@@ -163,6 +163,7 @@
 CFLAGS = []
 CCFLAGS = ['/nologo', '/Ob1', '/J', '/W3', '/Gd', '/wd4244', '/wd4305', '/wd4800', '/wd4065', '/wd4267']
 CXXFLAGS = ['/EHsc']
+BGE_CXXFLAGS = ['/O2', '/EHsc', '/GR', '/fp:fast', '/arch:SSE2']
 
 BF_DEBUG_CCFLAGS = ['/Zi', '/FR${TARGET}.sbr']
 

Modified: branches/ge_dyn_load/release/ui/buttons_data_armature.py
===================================================================
--- branches/ge_dyn_load/release/ui/buttons_data_armature.py	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/release/ui/buttons_data_armature.py	2009-09-02 23:24:19 UTC (rev 22960)
@@ -41,21 +41,22 @@
 		split = layout.split()
 
 		col = split.column()
+		col.itemL(text="Layers:")
+		col.template_layers(arm, "layer")
+		col.itemL(text="Protected Layers:")
+		col.template_layers(arm, "layer_protection")
+		col.itemL(text="Edit Options:")
+		col.itemR(arm, "x_axis_mirror")
+		col.itemR(arm, "auto_ik")
+		
+		col = split.column()
 		col.itemR(arm, "rest_position")
 		col.itemL(text="Deform:")
 		col.itemR(arm, "deform_vertexgroups", text="Vertex Groups")
 		col.itemR(arm, "deform_envelope", text="Envelopes")
 		col.itemR(arm, "deform_quaternion", text="Quaternion")
 		col.itemR(arm, "deform_bbone_rest", text="B-Bones Rest")
-		#col.itemR(arm, "x_axis_mirror")
-		#col.itemR(arm, "auto_ik")
-			
-		col = split.column()
-		col.itemL(text="Layers:")
-		col.template_layers(arm, "layer")
-		col.itemL(text="Protected Layers:")
-		col.template_layers(arm, "layer_protection")
-
+		
 class DATA_PT_display(DataButtonsPanel):
 	__label__ = "Display"
 	
@@ -154,7 +155,7 @@
 		split = layout.split()
 
 		col = split.column()
-		col.itemR(arm, "ghost_type", text="Scope")
+		col.itemR(arm, "ghost_type", text="")
 
 		sub = col.column(align=True)
 		if arm.ghost_type == 'RANGE':

Modified: branches/ge_dyn_load/source/blender/blenkernel/BKE_constraint.h
===================================================================
--- branches/ge_dyn_load/source/blender/blenkernel/BKE_constraint.h	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/source/blender/blenkernel/BKE_constraint.h	2009-09-02 23:24:19 UTC (rev 22960)
@@ -49,6 +49,7 @@
 	float startmat[4][4];		/* original matrix (before constraint solving) */
 	
 	short type;					/* type of owner  */
+	short rotOrder;				/* rotation order for constraint owner (as defined in eEulerRotationOrders in BLI_arithb.h) */
 } bConstraintOb;
 
 /* ---------------------------------------------------------------------------- */

Modified: branches/ge_dyn_load/source/blender/blenkernel/intern/constraint.c
===================================================================
--- branches/ge_dyn_load/source/blender/blenkernel/intern/constraint.c	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/source/blender/blenkernel/intern/constraint.c	2009-09-02 23:24:19 UTC (rev 22960)
@@ -121,6 +121,7 @@
 			if (ob) {
 				cob->ob = ob;
 				cob->type = datatype;
+				cob->rotOrder = EULER_ORDER_DEFAULT; // TODO: when objects have rotation order too, use that
 				Mat4CpyMat4(cob->matrix, ob->obmat);
 			}
 			else
@@ -137,6 +138,15 @@
 				cob->pchan = (bPoseChannel *)subdata;
 				cob->type = datatype;
 				
+				if (cob->pchan->rotmode > 0) {
+					/* should be some type of Euler order */
+					cob->rotOrder= cob->pchan->rotmode; 
+				}
+				else {
+					/* Quats, so eulers should just use default order */
+					cob->rotOrder= EULER_ORDER_DEFAULT;
+				}
+				
 				/* matrix in world-space */
 				Mat4MulMat4(cob->matrix, cob->pchan->pose_mat, ob->obmat);
 			}
@@ -664,6 +674,7 @@
  * (Hopefully all compilers will be happy with the lines with just a space on them. Those are
  *  really just to help this code easier to read)
  */
+// TODO: cope with getting rotation order...
 #define SINGLETARGET_GET_TARS(con, datatar, datasubtarget, ct, list) \
 	{ \
 		ct= MEM_callocN(sizeof(bConstraintTarget), "tempConstraintTarget"); \
@@ -687,6 +698,7 @@
  * (Hopefully all compilers will be happy with the lines with just a space on them. Those are
  *  really just to help this code easier to read)
  */
+// TODO: cope with getting rotation order...
 #define SINGLETARGETNS_GET_TARS(con, datatar, ct, list) \
 	{ \
 		ct= MEM_callocN(sizeof(bConstraintTarget), "tempConstraintTarget"); \
@@ -795,11 +807,11 @@
 		
 		/* extract components of both matrices */
 		VECCOPY(loc, ct->matrix[3]);
-		Mat4ToEul(ct->matrix, eul);
+		Mat4ToEulO(ct->matrix, eul, ct->rotOrder);
 		Mat4ToSize(ct->matrix, size);
 		
 		VECCOPY(loco, invmat[3]);
-		Mat4ToEul(invmat, eulo);
+		Mat4ToEulO(invmat, eulo, cob->rotOrder);
 		Mat4ToSize(invmat, sizo);
 		
 		/* disable channels not enabled */
@@ -814,8 +826,8 @@
 		if (!(data->flag & CHILDOF_SIZEZ)) size[2]= sizo[2]= 1.0f;
 		
 		/* make new target mat and offset mat */
-		LocEulSizeToMat4(ct->matrix, loc, eul, size);
-		LocEulSizeToMat4(invmat, loco, eulo, sizo);
+		LocEulOSizeToMat4(ct->matrix, loc, eul, size, ct->rotOrder);
+		LocEulOSizeToMat4(invmat, loco, eulo, sizo, cob->rotOrder);
 		
 		/* multiply target (parent matrix) by offset (parent inverse) to get 
 		 * the effect of the parent that will be exherted on the owner
@@ -1304,7 +1316,7 @@
 	VECCOPY(loc, cob->matrix[3]);
 	Mat4ToSize(cob->matrix, size);
 	
-	Mat4ToEul(cob->matrix, eul);
+	Mat4ToEulO(cob->matrix, eul, cob->rotOrder);
 	
 	/* eulers: radians to degrees! */
 	eul[0] = (float)(eul[0] / M_PI * 180);
@@ -1339,7 +1351,7 @@
 	eul[1] = (float)(eul[1] / 180 * M_PI);
 	eul[2] = (float)(eul[2] / 180 * M_PI);
 	
-	LocEulSizeToMat4(cob->matrix, loc, eul, size);
+	LocEulOSizeToMat4(cob->matrix, loc, eul, size, cob->rotOrder);
 }
 
 static bConstraintTypeInfo CTI_ROTLIMIT = {
@@ -1546,14 +1558,15 @@
 		VECCOPY(loc, cob->matrix[3]);
 		Mat4ToSize(cob->matrix, size);
 		
-		Mat4ToEul(ct->matrix, eul);
-		Mat4ToEul(cob->matrix, obeul);
+		//Mat4ToEulO(ct->matrix, eul, ct->rotOrder);
+		Mat4ToEul(ct->matrix, eul); // the version we should be using causes errors...
+		Mat4ToEulO(cob->matrix, obeul, cob->rotOrder);
 		
 		if ((data->flag & ROTLIKE_X)==0)
 			eul[0] = obeul[0];
 		else {
 			if (data->flag & ROTLIKE_OFFSET)
-				euler_rot(eul, obeul[0], 'x');
+				eulerO_rot(eul, obeul[0], 'x', cob->rotOrder);
 			
 			if (data->flag & ROTLIKE_X_INVERT)
 				eul[0] *= -1;
@@ -1563,7 +1576,7 @@
 			eul[1] = obeul[1];
 		else {
 			if (data->flag & ROTLIKE_OFFSET)
-				euler_rot(eul, obeul[1], 'y');
+				eulerO_rot(eul, obeul[1], 'y', cob->rotOrder);
 			
 			if (data->flag & ROTLIKE_Y_INVERT)
 				eul[1] *= -1;
@@ -1573,14 +1586,14 @@
 			eul[2] = obeul[2];
 		else {
 			if (data->flag & ROTLIKE_OFFSET)
-				euler_rot(eul, obeul[2], 'z');
+				eulerO_rot(eul, obeul[2], 'z', cob->rotOrder);
 			
 			if (data->flag & ROTLIKE_Z_INVERT)
 				eul[2] *= -1;
 		}
 		
 		compatible_eul(eul, obeul);
-		LocEulSizeToMat4(cob->matrix, loc, eul, size);
+		LocEulOSizeToMat4(cob->matrix, loc, eul, size, cob->rotOrder);
 	}
 }
 
@@ -3036,7 +3049,7 @@
 				Mat4ToSize(ct->matrix, dvec);
 				break;
 			case 1: /* rotation (convert to degrees first) */
-				Mat4ToEul(ct->matrix, dvec);
+				Mat4ToEulO(ct->matrix, dvec, cob->rotOrder);
 				for (i=0; i<3; i++)
 					dvec[i] = (float)(dvec[i] / M_PI * 180);
 				break;
@@ -3047,7 +3060,7 @@
 		
 		/* extract components of owner's matrix */
 		VECCOPY(loc, cob->matrix[3]);
-		Mat4ToEul(cob->matrix, eul);
+		Mat4ToEulO(cob->matrix, eul, cob->rotOrder);
 		Mat4ToSize(cob->matrix, size);	
 		
 		/* determine where in range current transforms lie */
@@ -3102,7 +3115,7 @@
 		}
 		
 		/* apply to matrix */
-		LocEulSizeToMat4(cob->matrix, loc, eul, size);
+		LocEulOSizeToMat4(cob->matrix, loc, eul, size, cob->rotOrder);
 	}
 }
 

Modified: branches/ge_dyn_load/source/blender/blenlib/BLI_arithb.h
===================================================================
--- branches/ge_dyn_load/source/blender/blenlib/BLI_arithb.h	2009-09-02 23:00:52 UTC (rev 22959)
+++ branches/ge_dyn_load/source/blender/blenlib/BLI_arithb.h	2009-09-02 23:24:19 UTC (rev 22960)
@@ -193,6 +193,7 @@
 } eEulerRotationOrders;
 
 void EulOToQuat(float eul[3], short order, float quat[4]);
+void QuatToEulO(float quat[4], float eul[3], short order);
 
 void EulOToMat3(float eul[3], short order, float Mat[3][3]);
 void EulOToMat4(float eul[3], short order, float Mat[4][4]);
@@ -200,7 +201,9 @@
 void Mat3ToEulO(float Mat[3][3], float eul[3], short order);
 void Mat4ToEulO(float Mat[4][4], float eul[3], short order);
 
-void QuatToEulO(float quat[4], float eul[3], short order);
+void Mat3ToCompatibleEulO(float mat[3][3], float eul[3], float oldrot[3], short order);
+
+void eulerO_rot(float beul[3], float ang, char axis, short order);
  
 /**
  * @section Euler conversion routines (Blender XYZ)
@@ -483,8 +486,9 @@
 
 void triatoquat(float *v1, float *v2, float *v3, float *quat);
 
-void LocEulSizeToMat4(float mat[][4], float loc[3], float eul[3], float size[3]);
-void LocQuatSizeToMat4(float mat[][4], float loc[3], float quat[4], float size[3]);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list