* Add some missing docu for Blender.Types
authorNathan Letwory <nathan@letworyinteractive.com>
Tue, 21 Oct 2008 08:27:38 +0000 (08:27 +0000)
committerNathan Letwory <nathan@letworyinteractive.com>
Tue, 21 Oct 2008 08:27:38 +0000 (08:27 +0000)
* Fix potential crash in CSizeof()

source/blender/python/api2_2x/Types.c
source/blender/python/api2_2x/doc/Blender.py
source/blender/python/api2_2x/doc/Types.py

index 10db016ab68c2af55986bd8e6a12e5b1272f1ed8..a466bbd615ae39c90c8caa32e0db740f2e8ae8fa 100644 (file)
@@ -112,7 +112,7 @@ static PyObject *Types_CSizeof(PyObject * self, PyObject *o)
        char type[32];
 
        if(o) {
-               sprintf(type, "%s", PyString_AsString(PyObject_Str(o)));
+               BLI_snprintf(type, 32, "%s", PyString_AsString(PyObject_Str(o)));
 
                if(BLI_streq(type, "<type 'Blender Action'>")==1) {
                        ret = sizeof(struct bAction);
@@ -309,9 +309,9 @@ PyObject *Types_Init( void )
                              ( PyObject * ) &Armature_Type );
        PyDict_SetItemString( dict, "BoneType", ( PyObject * ) &Bone_Type );
 
-       PyDict_SetItemString( dict, "CurNurb_Type",
+       PyDict_SetItemString( dict, "CurNurbType",
                              ( PyObject * ) &CurNurb_Type );
-       PyDict_SetItemString( dict, "SurfNurb_Type",
+       PyDict_SetItemString( dict, "SurfNurbType",
                              ( PyObject * ) &SurfNurb_Type );
        PyDict_SetItemString( dict, "CurveType", ( PyObject * ) &Curve_Type );
 
@@ -349,7 +349,7 @@ PyObject *Types_Init( void )
                              ( PyObject * ) &constant_Type );
        PyDict_SetItemString( dict, "rgbTupleType",
                              ( PyObject * ) &rgbTuple_Type );
-       PyDict_SetItemString( dict, "matrix_Type",
+       PyDict_SetItemString( dict, "matrixType",
                              ( PyObject * ) &matrix_Type );
        PyDict_SetItemString( dict, "eulerType", ( PyObject * ) &euler_Type );
        PyDict_SetItemString( dict, "quaternionType",
@@ -372,7 +372,7 @@ PyObject *Types_Init( void )
                              ( PyObject * ) &EditBone_Type);
        PyDict_SetItemString( dict, "ThemeSpaceType",
                              ( PyObject * ) &ThemeSpace_Type);
-       PyDict_SetItemString( dict, "ThemeUI_Type",
+       PyDict_SetItemString( dict, "ThemeUIType",
                              ( PyObject * ) &ThemeUI_Type);
        PyDict_SetItemString( dict, "IDGroupType",
                              ( PyObject * ) &IDGroup_Type);
index 9d89cae713770ce9c3228a5b7f200b92756b6ccc..8767df43ee15d8c12dae3b6e6d98514394b1cdea 100644 (file)
@@ -73,7 +73,7 @@ def Set (request, data):
       - 'renderdir': default render output dir
       - 'soundsdir': sound dir
       - 'tempdir': temp file storage dir
-         - 'mipmap' : Use mipmapping in the 3d view (Use a boolean value True/False).
+      - 'mipmap' : Use mipmapping in the 3d view (Use a boolean value True/False).
   @type data: int or string
   @param data: The new value.
   """
@@ -111,7 +111,7 @@ def Get (request):
       - 'soundsdir': the path to the user defined dir for sound files. (*)
       - 'tempdir': the path to the user defined dir for storage of Blender
             temporary files. (*)
-         - 'mipmap' : Use mipmapping in the 3d view. (*)
+      - 'mipmap' : Use mipmapping in the 3d view. (*)
       - 'version' : the Blender version number.
   @note: (*) these can be set in Blender at the User Preferences window -> File
       Paths tab.
@@ -255,6 +255,6 @@ def Quit ():
 def SaveUndoState (message):
   """
   Sets an undo at the current state.
-  @param message: Message that appiers in the undo menu
+  @param message: Message that appears in the undo menu
   @type message: string
   """
index a08226e46ee097a369e87f7e06efae15775ebb75..d9cd70a1f5bb8554597f78cfaf0a1df677e5a476 100644 (file)
@@ -25,6 +25,17 @@ Example::
     elif type(data) == Types.LampType:
       print "Let there be light!"
 
+Since Blender 2.48a you can get the size of the underlying DNA structs for a collection of Blender Python types.
+
+Example::
+  # loop over Types dictionary and print the struct sizes
+  # -1 where the type is not supported byt the CSizeof function
+  import Blender.Types as bt
+  x = dir(bt)
+  for t in x:
+    s = 'bt.CSizeof(bt.' + t + ')'
+    print t,"=", eval(s)
+
 @var ObjectType: Blender Object. The base object, linked to its specific data
      at its .data member variable.
 @var GroupType: Blender Group. A Group that references a list of objects that are a part of this group.
@@ -45,8 +56,12 @@ Example::
 @var ArmatureType: Blender Armature. The "skeleton", for animating and deforming
 objects.
 @var BoneType: Blender Bone. Bones are, obviously, the "pieces" of an Armature.
+@var EditBoneType: Blender Editbone. Bones in editmode.
 @var CurveType: Blender Curve.
 @var IpoType: Blender Ipo.
+@var CurNurbType: Blender CurNurb.
+@var SurfNurbType: Blender SurfNurb.
+@var IpoCurveType: Blender IpoCurve.
 @var MetaballType: Blender Metaball.
 @var CameraType: Blender Camera.
 @var ImageType: Blender Image.
@@ -57,7 +72,7 @@ objects.
 @var SceneType: A Blender Scene. Container of all other objects.
 @var ButtonType: Blender Button. One of the Draw widgets.
 @var vectorType: Blender vector. Used in NMesh, Mesh and elsewhere.
-@var matrix_Type: Blender matrix.
+@var matrixType: Blender matrix.
 @var quaternionType: Blender quaternion.  Used in armatures.
 @var eulerType: Blender euler.
 @var bufferType: Blender buffer. A contiguous piece of storage, used in BGL.
@@ -68,3 +83,11 @@ objects.
 @var IDGroupType: Blender IDProperty Group type.
 @var IDArrayType: Blender IDProperty Array type.
 """
+
+def CSizeof (type):
+    """
+    Get the size in bytes of the underlying DNA struct for the given type.
+    @param type: A Blender Python type.
+    @type type: type
+    @return: size in bytes or -1 if not supported type.
+    """
\ No newline at end of file