[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