diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2014-09-08 20:15:42 +0400 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2014-09-08 20:15:42 +0400 |
commit | d9ffc99e66d659ac887d801b9cc071b4c3f9b8ab (patch) | |
tree | d88e83b5a9edab115081641d26c811b6aa22296a /source/blender/python/mathutils/mathutils_Euler.c | |
parent | 551ebaa3dd758bc1975548c28766bfa3159d3846 (diff) | |
parent | b1490e39dd1017e51984d8a34d226e869bbb25df (diff) |
Merge branch 'master' into soc-2014-viewport_fxsoc-2014-viewport_fx
I have resolved some differences, for instance selection code which was more or less a stub, to be
the same as master. This will have to be fixed later.
Conflicts:
CMakeLists.txt
intern/ghost/CMakeLists.txt
intern/ghost/intern/GHOST_SystemWin32.cpp
intern/ghost/intern/GHOST_Window.cpp
intern/ghost/intern/GHOST_WindowWin32.cpp
intern/ghost/intern/GHOST_WindowX11.cpp
source/blender/blenlib/BLI_math_matrix.h
source/blender/blenlib/intern/math_matrix.c
source/blender/gpu/CMakeLists.txt
source/blender/gpu/GPU_select.h
source/blender/gpu/intern/gpu_buffers.c
source/blender/gpu/intern/gpu_draw.c
source/blender/gpu/intern/gpu_extensions.c
source/blender/gpu/intern/gpu_select.c
source/blender/gpu/shaders/gpu_shader_simple_vert.glsl
source/blender/nodes/CMakeLists.txt
Diffstat (limited to 'source/blender/python/mathutils/mathutils_Euler.c')
-rw-r--r-- | source/blender/python/mathutils/mathutils_Euler.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/source/blender/python/mathutils/mathutils_Euler.c b/source/blender/python/mathutils/mathutils_Euler.c index 5d8252d3c72..f6d124938a4 100644 --- a/source/blender/python/mathutils/mathutils_Euler.c +++ b/source/blender/python/mathutils/mathutils_Euler.c @@ -83,14 +83,23 @@ static const char *euler_order_str(EulerObject *self) short euler_order_from_string(const char *str, const char *error_prefix) { if ((str[0] && str[1] && str[2] && str[3] == '\0')) { + +#ifdef __LITTLE_ENDIAN__ +# define MAKE_ID3(a, b, c) (((a)) | ((b) << 8) | ((c) << 16)) +#else +# define MAKE_ID3(a, b, c) (((a) << 24) | ((b) << 16) | ((c) << 8)) +#endif + switch (*((PY_INT32_T *)str)) { - case 'X' | 'Y' << 8 | 'Z' << 16: return EULER_ORDER_XYZ; - case 'X' | 'Z' << 8 | 'Y' << 16: return EULER_ORDER_XZY; - case 'Y' | 'X' << 8 | 'Z' << 16: return EULER_ORDER_YXZ; - case 'Y' | 'Z' << 8 | 'X' << 16: return EULER_ORDER_YZX; - case 'Z' | 'X' << 8 | 'Y' << 16: return EULER_ORDER_ZXY; - case 'Z' | 'Y' << 8 | 'X' << 16: return EULER_ORDER_ZYX; + case MAKE_ID3('X', 'Y', 'Z'): return EULER_ORDER_XYZ; + case MAKE_ID3('X', 'Z', 'Y'): return EULER_ORDER_XZY; + case MAKE_ID3('Y', 'X', 'Z'): return EULER_ORDER_YXZ; + case MAKE_ID3('Y', 'Z', 'X'): return EULER_ORDER_YZX; + case MAKE_ID3('Z', 'X', 'Y'): return EULER_ORDER_ZXY; + case MAKE_ID3('Z', 'Y', 'X'): return EULER_ORDER_ZYX; } + +#undef MAKE_ID3 } PyErr_Format(PyExc_ValueError, @@ -203,7 +212,7 @@ static PyObject *Euler_rotate_axis(EulerObject *self, PyObject *args) return NULL; } - if (!(ELEM3(axis, 'X', 'Y', 'Z'))) { + if (!(ELEM(axis, 'X', 'Y', 'Z'))) { PyErr_SetString(PyExc_ValueError, "Euler.rotate_axis(): " "expected axis to be 'X', 'Y' or 'Z'"); |