svn merge -r 21041:21301 https://svn.blender.org/svnroot/bf-blender/branches/blender2...
[blender.git] / source / blender / python / generic / euler.h
index 3206668ffa08ebc912a571bd15c6cd90870184e0..a3706d53756ef8a47b362fcff3a3d2d47e045ce2 100644 (file)
@@ -1,5 +1,5 @@
 /* 
- * $Id: euler.h 20248 2009-05-18 04:11:54Z campbellbarton $
+ * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  *
 #include "../intern/bpy_compat.h"
 
 extern PyTypeObject euler_Type;
-
-#define EulerObject_Check(v) (Py_TYPE(v) == &euler_Type)
+#define EulerObject_Check(_v) PyObject_TypeCheck((_v), &euler_Type)
 
 typedef struct {
        PyObject_VAR_HEAD 
-       struct{
-               float *py_data;         //python managed
-               float *blend_data;      //blender managed
-       }data;
-       float *eul;                             //1D array of data (alias)
-       int wrapped;                    //is wrapped data?
+       float *eul;                                     /*1D array of data */
+       PyObject *cb_user;                      /* if this vector references another object, otherwise NULL, *Note* this owns its reference */
+       unsigned char cb_type;          /* which user funcs do we adhere to, RNA, GameObject, etc */
+       unsigned char cb_subtype;       /* subtype: location, rotation... to avoid defining many new functions for every attribute of the same type */
+       unsigned char wrapped;          /* wrapped data type? */
+       /* end BaseMathObject */
+
 } EulerObject;
 
 /*struct data contains a pointer to the actual data that the
@@ -54,6 +54,7 @@ be stored in py_data) or be a wrapper for data allocated through
 blender (stored in blend_data). This is an either/or struct not both*/
 
 //prototypes
-PyObject *newEulerObject( float *eul, int type );
+PyObject *newEulerObject( float *eul, int type, PyTypeObject *base_type);
+PyObject *newEulerObject_cb(PyObject *cb_user, int cb_type, int cb_subtype);
 
 #endif                         /* EXPP_euler_h */