[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20668] trunk/blender/source/blender/ python/api2_2x: Blender.Particle.New() wasnt documented.

Campbell Barton ideasman42 at gmail.com
Sat Jun 6 06:56:22 CEST 2009


Revision: 20668
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20668
Author:   campbellbarton
Date:     2009-06-06 06:56:22 +0200 (Sat, 06 Jun 2009)

Log Message:
-----------
Blender.Particle.New() wasnt documented.
Changed to accept Object as well as Object name to avoid name collisions with libraries.

Modified Paths:
--------------
    trunk/blender/source/blender/python/api2_2x/Particle.c
    trunk/blender/source/blender/python/api2_2x/doc/Particle.py

Modified: trunk/blender/source/blender/python/api2_2x/Particle.c
===================================================================
--- trunk/blender/source/blender/python/api2_2x/Particle.c	2009-06-06 04:44:18 UTC (rev 20667)
+++ trunk/blender/source/blender/python/api2_2x/Particle.c	2009-06-06 04:56:22 UTC (rev 20668)
@@ -57,7 +57,7 @@
 
 
 /* Type Methods */
-static PyObject *M_ParticleSys_New( PyObject * self, PyObject * args );
+static PyObject *M_ParticleSys_New( PyObject * self, PyObject * value );
 static PyObject *M_ParticleSys_Get( PyObject * self, PyObject * args );
 
 /* Particle Methods */
@@ -646,7 +646,7 @@
 /* Python method structure definition for Blender.Particle module:           */
 /*****************************************************************************/
 static struct PyMethodDef M_ParticleSys_methods[] = {
-	{"New", ( PyCFunction ) M_ParticleSys_New, METH_VARARGS, M_ParticleSys_New_doc},
+	{"New", ( PyCFunction ) M_ParticleSys_New, METH_O, M_ParticleSys_New_doc},
 	{"Get", M_ParticleSys_Get, METH_VARARGS, M_ParticleSys_Get_doc},
 	{NULL, NULL, 0, NULL}
 };
@@ -779,28 +779,28 @@
 }
 
 
-PyObject *M_ParticleSys_New( PyObject * self, PyObject * args ){
+PyObject *M_ParticleSys_New( PyObject * self, PyObject * value)
+{
 	ParticleSystem *psys = 0;
 	ParticleSystem *rpsys = 0;
 	ModifierData *md;
 	ParticleSystemModifierData *psmd;
 	Object *ob = NULL;
-	char *name = NULL;
 	ID *id;
 	int nr;
+	
+	if ( PyString_Check( value ) ) {
+		char *name;
+		name = PyString_AsString ( value );
+		ob = ( Object * ) GetIdFromList( &( G.main->object ), name );
+		if( !ob )
+			return EXPP_ReturnPyObjError( PyExc_AttributeError, name );
+	} else if ( BPy_Object_Check(value) ) {
+		ob = (( BPy_Object * ) value)->object;
+	} else {
+		return EXPP_ReturnPyObjError( PyExc_TypeError, "expected object or string" );
+	}
 
-	if( !PyArg_ParseTuple( args, "s", &name ) )
-		return EXPP_ReturnPyObjError( PyExc_TypeError,
-			"expected string argument" );
-
-	for( ob = G.main->object.first; ob; ob = ob->id.next )
-		if( !strcmp( name, ob->id.name + 2 ) )
-			break;
-
-	if( !ob )
-		return EXPP_ReturnPyObjError( PyExc_AttributeError, 
-			"object does not exist" );
-
 	id = (ID *)psys_new_settings("PSys", G.main);
 
 	psys = MEM_callocN(sizeof(ParticleSystem), "particle_system");

Modified: trunk/blender/source/blender/python/api2_2x/doc/Particle.py
===================================================================
--- trunk/blender/source/blender/python/api2_2x/doc/Particle.py	2009-06-06 04:44:18 UTC (rev 20667)
+++ trunk/blender/source/blender/python/api2_2x/doc/Particle.py	2009-06-06 04:56:22 UTC (rev 20668)
@@ -88,6 +88,15 @@
 		- Z: set Z axis for offset
 """
 
+def New(object):
+	"""
+	Create a new particle system applied to L{object}
+	@type object: string or L{Blender.Object.Object}
+	@param name: The name of an existing object.
+	@rtype: L{Particle}
+	@return: a new Particle system.
+	"""
+
 class Particle:
 	"""
 	The Particle object





More information about the Bf-blender-cvs mailing list