Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWillian Padovani Germano <wpgermano@gmail.com>2003-06-09 08:01:48 +0400
committerWillian Padovani Germano <wpgermano@gmail.com>2003-06-09 08:01:48 +0400
commit864e5640f701684c416812fa6a05ccff7a64a73f (patch)
tree12d72a3b39bf48c2894ca76a8cc007a6e8916841 /source/blender/python/api2_2x/Object.h
parent51850586a86e761ae6af9ff15542a1a231de99da (diff)
* Applied a small fix to a bug reported by Guignot:
When a script that used setAttr for Camera Data objs (the bug also affected some other modules) was executed multiple times, Blender would crash after, let's say, the first 5 or 6 tries. Problem, as Guignot pointed, was with reference counting. Should be ok now, all affected modules were fixed. * The Scene module is now "complete" (= 2.25). * Made some necessary updates to Object and NMesh.
Diffstat (limited to 'source/blender/python/api2_2x/Object.h')
-rw-r--r--source/blender/python/api2_2x/Object.h189
1 files changed, 4 insertions, 185 deletions
diff --git a/source/blender/python/api2_2x/Object.h b/source/blender/python/api2_2x/Object.h
index df5351aeada..8623820d60d 100644
--- a/source/blender/python/api2_2x/Object.h
+++ b/source/blender/python/api2_2x/Object.h
@@ -34,7 +34,6 @@
#include <Python.h>
#include <stdio.h>
-
#include <BDR_editobject.h>
#include <BKE_armature.h>
#include <BKE_curve.h>
@@ -50,7 +49,6 @@
#include <DNA_ID.h>
#include <DNA_ika_types.h>
#include <DNA_listBase.h>
-#include <DNA_object_types.h>
#include <DNA_scene_types.h>
#include <DNA_userdef_types.h>
#include <DNA_view3d_types.h>
@@ -58,34 +56,11 @@
#include "gen_utils.h"
#include "modules.h"
-/*****************************************************************************/
-/* Python API function prototypes for the Blender module. */
-/*****************************************************************************/
-static PyObject *M_Object_New(PyObject *self, PyObject *args);
-static PyObject *M_Object_Get(PyObject *self, PyObject *args);
-static PyObject *M_Object_GetSelected (PyObject *self, PyObject *args);
-
-/*****************************************************************************/
-/* The following string definitions are used for documentation strings. */
-/* In Python these will be written to the console when doing a */
-/* Blender.Object.__doc__ */
-/*****************************************************************************/
-char M_Object_doc[] =
-"The Blender Object module\n\n\
-This module provides access to **Object Data** in Blender.\n";
-
-char M_Object_New_doc[] =
-"(type) - Add a new object of type 'type' in the current scene";
-
-char M_Object_Get_doc[] =
-"(name) - return the object with the name 'name', returns None if not\
- found.\n\
- If 'name' is not specified, it returns a list of all objects in the\n\
- current scene.";
+/* The Object PyType Object defined in Object.c */
+PyTypeObject Object_Type;
-char M_Object_GetSelected_doc[] =
-"() - Returns a list of selected Objects in the active layer(s)\n\
-The active object is the first in the list, if visible";
+#define C_Object_Check(v) \
+ ((v)->ob_type == &Object_Type) /* for type checking */
/*****************************************************************************/
/* Python C_Object structure definition. */
@@ -109,160 +84,4 @@ typedef struct {
struct C_Object * track;
} C_Object;
-/*****************************************************************************/
-/* Python method structure definition for Blender.Object module: */
-/*****************************************************************************/
-struct PyMethodDef M_Object_methods[] = {
- {"New", (PyCFunction)M_Object_New, METH_VARARGS,
- M_Object_New_doc},
- {"Get", (PyCFunction)M_Object_Get, METH_VARARGS,
- M_Object_Get_doc},
- {"get", (PyCFunction)M_Object_Get, METH_VARARGS,
- M_Object_Get_doc},
- {"getSelected", (PyCFunction)M_Object_GetSelected, METH_VARARGS,
- M_Object_GetSelected_doc},
- {NULL, NULL, 0, NULL}
-};
-
-/*****************************************************************************/
-/* Python C_Object methods declarations: */
-/*****************************************************************************/
-static PyObject *Object_clrParent (C_Object *self, PyObject *args);
-static PyObject *Object_getData (C_Object *self);
-static PyObject *Object_getDeformData (C_Object *self);
-static PyObject *Object_getDeltaLocation (C_Object *self);
-static PyObject *Object_getDrawMode (C_Object *self);
-static PyObject *Object_getDrawType (C_Object *self);
-static PyObject *Object_getEuler (C_Object *self);
-static PyObject *Object_getInverseMatrix (C_Object *self);
-static PyObject *Object_getLocation (C_Object *self, PyObject *args);
-static PyObject *Object_getMaterials (C_Object *self);
-static PyObject *Object_getMatrix (C_Object *self);
-static PyObject *Object_getParent (C_Object *self);
-static PyObject *Object_getTracked (C_Object *self);
-static PyObject *Object_getType (C_Object *self);
-static PyObject *Object_link (C_Object *self, PyObject *args);
-static PyObject *Object_makeParent (C_Object *self, PyObject *args);
-static PyObject *Object_materialUsage (C_Object *self, PyObject *args);
-static PyObject *Object_setDeltaLocation (C_Object *self, PyObject *args);
-static PyObject *Object_setDrawMode (C_Object *self, PyObject *args);
-static PyObject *Object_setDrawType (C_Object *self, PyObject *args);
-static PyObject *Object_setEuler (C_Object *self, PyObject *args);
-static PyObject *Object_setLocation (C_Object *self, PyObject *args);
-static PyObject *Object_setMaterials (C_Object *self, PyObject *args);
-static PyObject *Object_shareFrom (C_Object *self, PyObject *args);
-
-/*****************************************************************************/
-/* Python C_Object methods table: */
-/*****************************************************************************/
-static PyMethodDef C_Object_methods[] = {
- /* name, method, flags, doc */
- {"clrParent", (PyCFunction)Object_clrParent, METH_VARARGS,
- "Clears parent object. Optionally specify:\n\
-mode\n\t2: Keep object transform\nfast\n\t>0: Don't update scene \
-hierarchy (faster)"},
- {"getData", (PyCFunction)Object_getData, METH_NOARGS,
- "Returns the datablock object containing the object's data, \
-e.g. Mesh"},
- {"getDeformData", (PyCFunction)Object_getDeformData, METH_NOARGS,
- "Returns the datablock object containing the object's deformed \
-data.\nCurrently, this is only supported for a Mesh"},
- {"getDeltaLocation", (PyCFunction)Object_getDeltaLocation, METH_NOARGS,
- "Returns the object's delta location (x, y, z)"},
- {"getDrawMode", (PyCFunction)Object_getDrawMode, METH_NOARGS,
- "Returns the object draw modes"},
- {"getDrawType", (PyCFunction)Object_getDrawType, METH_NOARGS,
- "Returns the object draw type"},
- {"getEuler", (PyCFunction)Object_getEuler, METH_NOARGS,
- "Returns the object's rotation as Euler rotation vector\n\
-(rotX, rotY, rotZ)"},
- {"getInverseMatrix", (PyCFunction)Object_getInverseMatrix, METH_NOARGS,
- "Returns the object's inverse matrix"},
- {"getLocation", (PyCFunction)Object_getLocation, METH_VARARGS,
- "Returns the object's location (x, y, z)"},
- {"getMaterials", (PyCFunction)Object_getMaterials, METH_NOARGS,
- "Returns list of materials assigned to the object"},
- {"getMatrix", (PyCFunction)Object_getMatrix, METH_NOARGS,
- "Returns the object matrix"},
- {"getParent", (PyCFunction)Object_getParent, METH_NOARGS,
- "Returns the object's parent object"},
- {"getTracked", (PyCFunction)Object_getTracked, METH_NOARGS,
- "Returns the object's tracked object"},
- {"getType", (PyCFunction)Object_getType, METH_NOARGS,
- "Returns type of string of Object"},
- {"link", (PyCFunction)Object_link, METH_VARARGS,
- "Links Object with data provided in the argument. The data must \n\
-match the Object's type, so you cannot link a Lamp to a Mesh type object."},
- {"makeParent", (PyCFunction)Object_makeParent, METH_VARARGS,
- "Makes the object the parent of the objects provided in the \n\
-argument which must be a list of valid Objects. Optional extra arguments:\n\
-mode:\n\t0: make parent with inverse\n\t1: without inverse\n\
-fase:\n\t0: update scene hierarchy automatically\n\t\
-don't update scene hierarchy (faster). In this case, you must\n\t\
-explicitely update the Scene hierarchy."},
- {"materialUsage", (PyCFunction)Object_materialUsage, METH_VARARGS,
- "Determines the way the material is used and returs status.\n\
-Possible arguments (provide as strings):\n\
-\tData: Materials assigned to the object's data are shown. (default)\n\
-\tObject: Materials assigned to the object are shown."},
- {"setDeltaLocation", (PyCFunction)Object_setDeltaLocation, METH_VARARGS,
- "Sets the object's delta location which must be a vector triple."},
- {"setDrawMode", (PyCFunction)Object_setDrawMode, METH_VARARGS,
- "Sets the object's drawing mode. The argument can be a sum of:\n\
-2: axis\n4: texspace\n8: drawname\n16: drawimage\n32: drawwire"},
- {"setDrawType", (PyCFunction)Object_setDrawType, METH_VARARGS,
- "Sets the object's drawing type. The argument must be one of:\n\
-1: Bounding box\n2: Wire\n3: Solid\n4: Shaded\n5: Textured"},
- {"setEuler", (PyCFunction)Object_setEuler, METH_VARARGS,
- "Set the object's rotation according to the specified Euler\n\
-angles. The argument must be a vector triple"},
- {"setLocation", (PyCFunction)Object_setLocation, METH_VARARGS,
- "Set the object's location. The first argument must be a vector\n\
-triple."},
- {"setMaterials", (PyCFunction)Object_setMaterials, METH_VARARGS,
- "Sets materials. The argument must be a list of valid material\n\
-objects."},
- {"shareFrom", (PyCFunction)Object_shareFrom, METH_VARARGS,
- "Link data of self with object specified in the argument. This\n\
-works only if self and the object specified are of the same type."},
- {0}
-};
-
-/*****************************************************************************/
-/* PythonTypeObject callback function prototypes */
-/*****************************************************************************/
-static void ObjectDeAlloc (C_Object *obj);
-static int ObjectPrint (C_Object *obj, FILE *fp, int flags);
-static PyObject* ObjectGetAttr (C_Object *obj, char *name);
-static int ObjectSetAttr (C_Object *obj, char *name, PyObject *v);
-static PyObject* ObjectRepr (C_Object *obj);
-
-/*****************************************************************************/
-/* Python TypeObject structure definition. */
-/*****************************************************************************/
-PyTypeObject Object_Type =
-{
- PyObject_HEAD_INIT(NULL)
- 0, /* ob_size */
- "Object", /* tp_name */
- sizeof (C_Object), /* tp_basicsize */
- 0, /* tp_itemsize */
- /* methods */
- (destructor)ObjectDeAlloc, /* tp_dealloc */
- (printfunc)ObjectPrint, /* tp_print */
- (getattrfunc)ObjectGetAttr, /* tp_getattr */
- (setattrfunc)ObjectSetAttr, /* tp_setattr */
- 0, /* tp_compare */
- (reprfunc)ObjectRepr, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_as_hash */
- 0,0,0,0,0,0,
- 0, /* tp_doc */
- 0,0,0,0,0,0,
- C_Object_methods, /* tp_methods */
- 0, /* tp_members */
-};
-
#endif /* EXPP_OBJECT_H */