Revision: 18943
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18943
Author:   campbellbarton
Date:     2009-02-12 17:27:19 +0100 (Thu, 12 Feb 2009)

Log Message:
-----------
add some more modifier types and access to shrink wrap target object (but no 
other shrink wrap settings)

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/Modifier.c

Modified: trunk/blender/source/blender/python/api2_2x/Modifier.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Modifier.c      2009-02-12 
11:04:08 UTC (rev 18942)
+++ trunk/blender/source/blender/python/api2_2x/Modifier.c      2009-02-12 
16:27:19 UTC (rev 18943)
@@ -982,7 +982,42 @@
        }
 }
 
+static PyObject *shrinkwrap_getter( BPy_Modifier * self, int type )
+{
+       ShrinkwrapModifierData *md = (ShrinkwrapModifierData *)(self->md);
 
+       switch( type ) {
+       case EXPP_MOD_OBJECT:
+               return Object_CreatePyObject( md->target );
+       default:
+               return EXPP_ReturnPyObjError( PyExc_KeyError, "key not found" );
+       }
+}
+
+static int shrinkwrap_setter( BPy_Modifier *self, int type, PyObject *value )
+{
+       ShrinkwrapModifierData *md = (ShrinkwrapModifierData *)(self->md);
+
+       switch( type ) {
+       case EXPP_MOD_OBJECT: { /* Only object for now */
+               Object *ob_new=NULL;
+               if (value == Py_None) {
+                       md->target = NULL;
+               } else if (BPy_Object_Check( value )) {
+                       ob_new = ((( BPy_Object * )value)->object);
+                       md->target = ob_new;
+               } else {
+                       return EXPP_ReturnIntError( PyExc_TypeError,
+                               "Expected an Object or None value" );
+               }
+               return 0;
+       }
+       default:
+               return EXPP_ReturnIntError( PyExc_KeyError, "key not found" );
+       }
+}
+
+
 /* static PyObject *uvproject_getter( BPy_Modifier * self, int type )
 {
        DisplaceModifierData *md = (DisplaceModifierData *)(self->md);
@@ -1062,6 +1097,8 @@
                                return edgesplit_getter( self, setting );
                        case eModifierType_Displace:
                                return displace_getter( self, setting );
+                       case eModifierType_Shrinkwrap:
+                               return shrinkwrap_getter( self, setting );
                        /*case eModifierType_UVProject:
                                return uvproject_getter( self, setting );*/
                        case eModifierType_Hook:
@@ -1132,6 +1169,8 @@
                        return edgesplit_setter( self, key_int, arg );
                case eModifierType_Displace:
                        return displace_setter( self, key_int, arg );
+               case eModifierType_Shrinkwrap:
+                       return shrinkwrap_setter( self, key_int, arg );
                /*case eModifierType_UVProject:
                        return uvproject_setter( self, key_int, arg );*/
                case eModifierType_Hook:
@@ -1550,6 +1589,22 @@
                                PyInt_FromLong( eModifierType_Cast ) );
                PyConstant_Insert( d, "DISPLACE",
                                PyInt_FromLong( eModifierType_Displace ) );
+               PyConstant_Insert( d, "MESHDEFORM",
+                               PyInt_FromLong( eModifierType_MeshDeform ) );
+               PyConstant_Insert( d, "PARTICLESYSTEM",
+                               PyInt_FromLong( eModifierType_ParticleSystem ) 
);
+               PyConstant_Insert( d, "PARTICLEINSTANCE",
+                               PyInt_FromLong( eModifierType_ParticleInstance 
) );
+               PyConstant_Insert( d, "EXPLODE",
+                               PyInt_FromLong( eModifierType_Explode ) );
+               PyConstant_Insert( d, "CLOTH",
+                               PyInt_FromLong( eModifierType_Cloth ) );
+               PyConstant_Insert( d, "BEVEL",
+                               PyInt_FromLong( eModifierType_Bevel ) );
+               PyConstant_Insert( d, "SHRINKWRAP",
+                               PyInt_FromLong( eModifierType_Shrinkwrap ) );
+               PyConstant_Insert( d, "SHRINKWRAP",
+                               PyInt_FromLong( eModifierType_Shrinkwrap ) );
        }
        return S;
 }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to