33
34
#include "Effect.h"
35
36
/*****************************************************************************/
36
/* Python BPy_Particle methods table: */
37
/* Python BPy_Particle methods table: */
37
38
/*****************************************************************************/
38
39
static PyMethodDef BPy_Particle_methods[] = {
39
{"getType", (PyCFunction)Effect_getType,
40
METH_NOARGS,"() - Return Effect type"},
41
{"setType", (PyCFunction)Effect_setType,
42
METH_VARARGS,"() - Set Effect type"},
43
{"getFlag", (PyCFunction)Effect_getFlag,
44
METH_NOARGS,"() - Return Effect flag"},
45
{"setFlag", (PyCFunction)Effect_setFlag,
46
METH_VARARGS,"() - Set Effect flag"},
47
{"getStartTime",(PyCFunction)Particle_getSta,
48
METH_NOARGS,"()-Return particle start time"},
49
{"setStartTime",(PyCFunction)Particle_setSta, METH_VARARGS,
40
{"getType", ( PyCFunction ) Effect_getType,
41
METH_NOARGS, "() - Return Effect type"},
42
{"setType", ( PyCFunction ) Effect_setType,
43
METH_VARARGS, "() - Set Effect type"},
44
{"getFlag", ( PyCFunction ) Effect_getFlag,
45
METH_NOARGS, "() - Return Effect flag"},
46
{"setFlag", ( PyCFunction ) Effect_setFlag,
47
METH_VARARGS, "() - Set Effect flag"},
48
{"getStartTime", ( PyCFunction ) Particle_getSta,
49
METH_NOARGS, "()-Return particle start time"},
50
{"setStartTime", ( PyCFunction ) Particle_setSta, METH_VARARGS,
50
51
"()- Sets particle start time"},
51
{"getEndTime",(PyCFunction)Particle_getEnd,
52
METH_NOARGS,"()-Return particle end time"},
53
{"setEndTime",(PyCFunction)Particle_setEnd, METH_VARARGS,
52
{"getEndTime", ( PyCFunction ) Particle_getEnd,
53
METH_NOARGS, "()-Return particle end time"},
54
{"setEndTime", ( PyCFunction ) Particle_setEnd, METH_VARARGS,
54
55
"()- Sets particle end time"},
55
{"getLifetime",(PyCFunction)Particle_getLifetime,
56
METH_NOARGS,"()-Return particle life time"},
57
{"setLifetime",(PyCFunction)Particle_setLifetime, METH_VARARGS,
58
"()- Sets particle life time "},
59
{"getNormfac",(PyCFunction)Particle_getNormfac,
60
METH_NOARGS,"()-Return particle life time"},
61
{"setNormfac",(PyCFunction)Particle_setNormfac, METH_VARARGS,
62
"()- Sets particle life time "},
63
{"getObfac",(PyCFunction)Particle_getObfac,
64
METH_NOARGS,"()-Return particle life time"},
65
{"setObfac",(PyCFunction)Particle_setObfac, METH_VARARGS,
66
"()- Sets particle life time "},
67
{"getRandfac",(PyCFunction)Particle_getRandfac,
68
METH_NOARGS,"()-Return particle life time"},
69
{"setRandfac",(PyCFunction)Particle_setRandfac, METH_VARARGS,
70
"()- Sets particle life time "},
71
{"getTexfac",(PyCFunction)Particle_getTexfac,
72
METH_NOARGS,"()-Return particle life time"},
73
{"setTexfac",(PyCFunction)Particle_setTexfac, METH_VARARGS,
74
"()- Sets particle life time "},
75
{"getRandlife",(PyCFunction)Particle_getRandlife,
76
METH_NOARGS,"()-Return particle life time"},
77
{"setRandlife",(PyCFunction)Particle_setRandlife, METH_VARARGS,
78
"()- Sets particle life time "},
79
{"getNabla",(PyCFunction)Particle_getNabla,
80
METH_NOARGS,"()-Return particle life time"},
81
{"setNabla",(PyCFunction)Particle_setNabla, METH_VARARGS,
82
"()- Sets particle life time "},
83
{"getVectsize",(PyCFunction)Particle_getVectsize,
84
METH_NOARGS,"()-Return particle life time"},
85
{"setVectsize",(PyCFunction)Particle_setVectsize, METH_VARARGS,
86
"()- Sets particle life time "},
87
{"getTotpart",(PyCFunction)Particle_getTotpart,
88
METH_NOARGS,"()-Return particle life time"},
89
{"setTotpart",(PyCFunction)Particle_setTotpart, METH_VARARGS,
90
"()- Sets particle life time "},
91
{"getTotkey",(PyCFunction)Particle_getTotkey,
92
METH_NOARGS,"()-Return particle life time"},
93
{"setTotkey",(PyCFunction)Particle_setTotkey, METH_VARARGS,
94
"()- Sets particle life time "},
95
{"getSeed",(PyCFunction)Particle_getSeed,
96
METH_NOARGS,"()-Return particle life time"},
97
{"setSeed",(PyCFunction)Particle_setSeed, METH_VARARGS,
98
"()- Sets particle life time "},
99
{"getForce",(PyCFunction)Particle_getForce,
100
METH_NOARGS,"()-Return particle life time"},
101
{"setForce",(PyCFunction)Particle_setForce, METH_VARARGS,
102
"()- Sets particle life time "},
103
{"getMult",(PyCFunction)Particle_getMult,
104
METH_NOARGS,"()-Return particle life time"},
105
{"setMult",(PyCFunction)Particle_setMult, METH_VARARGS,
106
"()- Sets particle life time "},
107
{"getLife",(PyCFunction)Particle_getLife,
108
METH_NOARGS,"()-Return particle life time"},
109
{"setLife",(PyCFunction)Particle_setLife, METH_VARARGS,
110
"()- Sets particle life time "},
111
{"getMat",(PyCFunction)Particle_getMat,
112
METH_NOARGS,"()-Return particle life time"},
113
{"setMat",(PyCFunction)Particle_setMat, METH_VARARGS,
114
"()- Sets particle life time "},
115
{"getChild",(PyCFunction)Particle_getChild,
116
METH_NOARGS,"()-Return particle life time"},
117
{"setChild",(PyCFunction)Particle_setChild, METH_VARARGS,
118
"()- Sets particle life time "},
119
{"getDefvec",(PyCFunction)Particle_getDefvec,
120
METH_NOARGS,"()-Return particle life time"},
121
{"setDefvec",(PyCFunction)Particle_setDefvec, METH_VARARGS,
122
"()- Sets particle life time "},
56
{"getLifetime", ( PyCFunction ) Particle_getLifetime,
57
METH_NOARGS, "()-Return particle life time"},
58
{"setLifetime", ( PyCFunction ) Particle_setLifetime, METH_VARARGS,
59
"()- Sets particle life time "},
60
{"getNormfac", ( PyCFunction ) Particle_getNormfac,
61
METH_NOARGS, "()-Return particle life time"},
62
{"setNormfac", ( PyCFunction ) Particle_setNormfac, METH_VARARGS,
63
"()- Sets particle life time "},
64
{"getObfac", ( PyCFunction ) Particle_getObfac,
65
METH_NOARGS, "()-Return particle life time"},
66
{"setObfac", ( PyCFunction ) Particle_setObfac, METH_VARARGS,
67
"()- Sets particle life time "},
68
{"getRandfac", ( PyCFunction ) Particle_getRandfac,
69
METH_NOARGS, "()-Return particle life time"},
70
{"setRandfac", ( PyCFunction ) Particle_setRandfac, METH_VARARGS,
71
"()- Sets particle life time "},
72
{"getTexfac", ( PyCFunction ) Particle_getTexfac,
73
METH_NOARGS, "()-Return particle life time"},
74
{"setTexfac", ( PyCFunction ) Particle_setTexfac, METH_VARARGS,
75
"()- Sets particle life time "},
76
{"getRandlife", ( PyCFunction ) Particle_getRandlife,
77
METH_NOARGS, "()-Return particle life time"},
78
{"setRandlife", ( PyCFunction ) Particle_setRandlife, METH_VARARGS,
79
"()- Sets particle life time "},
80
{"getNabla", ( PyCFunction ) Particle_getNabla,
81
METH_NOARGS, "()-Return particle life time"},
82
{"setNabla", ( PyCFunction ) Particle_setNabla, METH_VARARGS,
83
"()- Sets particle life time "},
84
{"getVectsize", ( PyCFunction ) Particle_getVectsize,
85
METH_NOARGS, "()-Return particle life time"},
86
{"setVectsize", ( PyCFunction ) Particle_setVectsize, METH_VARARGS,
87
"()- Sets particle life time "},
88
{"getTotpart", ( PyCFunction ) Particle_getTotpart,
89
METH_NOARGS, "()-Return particle life time"},
90
{"setTotpart", ( PyCFunction ) Particle_setTotpart, METH_VARARGS,
91
"()- Sets particle life time "},
92
{"getTotkey", ( PyCFunction ) Particle_getTotkey,
93
METH_NOARGS, "()-Return particle life time"},
94
{"setTotkey", ( PyCFunction ) Particle_setTotkey, METH_VARARGS,
95
"()- Sets particle life time "},
96
{"getSeed", ( PyCFunction ) Particle_getSeed,
97
METH_NOARGS, "()-Return particle life time"},
98
{"setSeed", ( PyCFunction ) Particle_setSeed, METH_VARARGS,
99
"()- Sets particle life time "},
100
{"getForce", ( PyCFunction ) Particle_getForce,
101
METH_NOARGS, "()-Return particle life time"},
102
{"setForce", ( PyCFunction ) Particle_setForce, METH_VARARGS,
103
"()- Sets particle life time "},
104
{"getMult", ( PyCFunction ) Particle_getMult,
105
METH_NOARGS, "()-Return particle life time"},
106
{"setMult", ( PyCFunction ) Particle_setMult, METH_VARARGS,
107
"()- Sets particle life time "},
108
{"getLife", ( PyCFunction ) Particle_getLife,
109
METH_NOARGS, "()-Return particle life time"},
110
{"setLife", ( PyCFunction ) Particle_setLife, METH_VARARGS,
111
"()- Sets particle life time "},
112
{"getMat", ( PyCFunction ) Particle_getMat,
113
METH_NOARGS, "()-Return particle life time"},
114
{"setMat", ( PyCFunction ) Particle_setMat, METH_VARARGS,
115
"()- Sets particle life time "},
116
{"getChild", ( PyCFunction ) Particle_getChild,
117
METH_NOARGS, "()-Return particle life time"},
118
{"setChild", ( PyCFunction ) Particle_setChild, METH_VARARGS,
119
"()- Sets particle life time "},
120
{"getDefvec", ( PyCFunction ) Particle_getDefvec,
121
METH_NOARGS, "()-Return particle life time"},
122
{"setDefvec", ( PyCFunction ) Particle_setDefvec, METH_VARARGS,
123
"()- Sets particle life time "},
124
{NULL, NULL, 0, NULL}
127
/**************** prototypes ********************/
128
PyObject *Particle_Init( void );
127
131
/*****************************************************************************/
128
132
/* Python Particle_Type structure definition: */
129
133
/*****************************************************************************/
131
PyTypeObject Particle_Type =
133
PyObject_HEAD_INIT(NULL)
136
sizeof (BPy_Particle),
135
PyTypeObject Particle_Type = {
136
PyObject_HEAD_INIT( NULL )
139
sizeof( BPy_Particle ),
139
(destructor)ParticleDeAlloc,
141
(getattrfunc)ParticleGetAttr,
142
(setattrfunc)ParticleSetAttr,
144
(reprfunc)ParticleRepr,
152
BPy_Particle_methods,
142
( destructor ) ParticleDeAlloc,
144
( getattrfunc ) ParticleGetAttr,
145
( setattrfunc ) ParticleSetAttr,
147
( reprfunc ) ParticleRepr,
155
BPy_Particle_methods,
155
158
/*****************************************************************************/
156
159
/* The following string definitions are used for documentation strings. */
163
166
New(opt name) : creates a new part object with the given name (optional)\n\
164
167
Get(name) : retreives a particle with the given name (mandatory)\n\
165
168
get(name) : same as Get. Kept for compatibility reasons";
166
char M_Particle_New_doc[] ="";
167
char M_Particle_Get_doc[] ="xxx";
169
char M_Particle_New_doc[] = "";
170
char M_Particle_Get_doc[] = "xxx";
168
171
/*****************************************************************************/
169
172
/* Python method structure definition for Blender.Particle module: */
170
173
/*****************************************************************************/
171
174
struct PyMethodDef M_Particle_methods[] = {
172
{"New",(PyCFunction)M_Particle_New, METH_VARARGS,M_Particle_New_doc},
173
{"Get", M_Particle_Get, METH_VARARGS, M_Particle_Get_doc},
174
{"get", M_Particle_Get, METH_VARARGS, M_Particle_Get_doc},
175
{NULL, NULL, 0, NULL}
175
{"New", ( PyCFunction ) M_Particle_New, METH_VARARGS,
177
{"Get", M_Particle_Get, METH_VARARGS, M_Particle_Get_doc},
178
{"get", M_Particle_Get, METH_VARARGS, M_Particle_Get_doc},
179
{NULL, NULL, 0, NULL}
178
182
/*****************************************************************************/
179
183
/* Function: M_Particle_New */
180
184
/* Python equivalent: Blender.Effect.Particle.New */
181
185
/*****************************************************************************/
182
PyObject *M_Particle_New(PyObject *self, PyObject *args)
186
PyObject *M_Particle_New( PyObject * self, PyObject * args )
184
int type = EFF_PARTICLE;
185
BPy_Effect *pyeffect;
186
Effect *bleffect = 0;
189
bleffect = add_effect(type);
190
if (bleffect == NULL)
191
return (EXPP_ReturnPyObjError (PyExc_RuntimeError,
192
"couldn't create Effect Data in Blender"));
194
pyeffect = (BPy_Effect *)PyObject_NEW(BPy_Effect, &Effect_Type);
197
if (pyeffect == NULL) return (EXPP_ReturnPyObjError (PyExc_MemoryError,
198
"couldn't create Effect Data object"));
200
pyeffect->effect = bleffect;
202
return (PyObject *)pyeffect;
188
int type = EFF_PARTICLE;
189
BPy_Effect *pyeffect;
190
Effect *bleffect = 0;
193
bleffect = add_effect( type );
194
if( bleffect == NULL )
195
return ( EXPP_ReturnPyObjError( PyExc_RuntimeError,
196
"couldn't create Effect Data in Blender" ) );
198
pyeffect = ( BPy_Effect * ) PyObject_NEW( BPy_Effect, &Effect_Type );
201
if( pyeffect == NULL )
202
return ( EXPP_ReturnPyObjError( PyExc_MemoryError,
203
"couldn't create Effect Data object" ) );
205
pyeffect->effect = bleffect;
207
return ( PyObject * ) pyeffect;
206
211
/*****************************************************************************/
207
212
/* Function: M_Particle_Get */
208
213
/* Python equivalent: Blender.Effect.Particle.Get */
209
214
/*****************************************************************************/
210
PyObject *M_Particle_Get(PyObject *self, PyObject *args)
215
PyObject *M_Particle_Get( PyObject * self, PyObject * args )
212
/*arguments : string object name
213
int : position of effect in the obj's effect list */
217
BPy_Particle *wanted_eff;
219
if (!PyArg_ParseTuple(args, "si", &name, &num ))
220
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
221
"expected string int argument"));
223
object_iter = G.main->object.first;
224
if (!object_iter)return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
225
"Scene contains no object"));
229
if (strcmp(name,object_iter->id.name+2))
231
object_iter = object_iter->id.next;
217
/*arguments : string object name
218
int : position of effect in the obj's effect list */
222
BPy_Particle *wanted_eff;
224
if( !PyArg_ParseTuple( args, "si", &name, &num ) )
225
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
226
"expected string int argument" ) );
228
object_iter = G.main->object.first;
230
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
231
"Scene contains no object" ) );
233
while( object_iter ) {
234
if( strcmp( name, object_iter->id.name + 2 ) ) {
235
object_iter = object_iter->id.next;
240
if( object_iter->effect.first != NULL ) {
241
eff = object_iter->effect.first;
242
for( i = 0; i < num; i++ ) {
243
if( eff->type != EFF_PARTICLE )
236
if (object_iter->effect.first != NULL)
238
eff = object_iter->effect.first;
241
if (eff->type != EFF_PARTICLE)continue;
244
return(EXPP_ReturnPyObjError(PyExc_AttributeError,"bject"));
246
wanted_eff = (BPy_Particle *)PyObject_NEW(BPy_Particle, &Particle_Type);
247
wanted_eff->particle = eff;
248
return (PyObject*)wanted_eff;
250
object_iter = object_iter->id.next;
247
return ( EXPP_ReturnPyObjError
248
( PyExc_AttributeError,
252
( BPy_Particle * ) PyObject_NEW( BPy_Particle,
254
wanted_eff->particle = eff;
255
return ( PyObject * ) wanted_eff;
257
object_iter = object_iter->id.next;
259
Py_INCREF( Py_None );
256
263
/*****************************************************************************/
257
264
/* Function: Particle_Init */
258
265
/*****************************************************************************/
259
PyObject *Particle_Init (void)
266
PyObject *Particle_Init( void )
262
Particle_Type.ob_type = &PyType_Type;
263
submodule = Py_InitModule3("Blender.Particle",M_Particle_methods, M_Particle_doc);
269
Particle_Type.ob_type = &PyType_Type;
271
Py_InitModule3( "Blender.Particle", M_Particle_methods,
273
return ( submodule );
267
276
/*****************************************************************************/
268
277
/* Python BPy_Particle methods: */
269
278
/*****************************************************************************/
271
PyObject *Particle_getSta(BPy_Particle *self)
274
PartEff*ptr = (PartEff*)self->particle;
275
return PyFloat_FromDouble(ptr->sta);
280
PyObject *Particle_setSta(BPy_Particle *self,PyObject *args)
282
PartEff*ptr = (PartEff*)self->particle;
284
if (!PyArg_ParseTuple(args, "f", &val ))
285
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
286
"expected float argument"));
291
PyObject *Particle_getEnd(BPy_Particle *self)
294
PartEff*ptr = (PartEff*)self->particle;
295
return PyFloat_FromDouble(ptr->end);
300
PyObject *Particle_setEnd(BPy_Particle *self,PyObject *args)
303
PartEff*ptr = (PartEff*)self->particle;
304
if (!PyArg_ParseTuple(args, "f", &val ))
305
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
306
"expected float argument"));
312
PyObject *Particle_getLifetime(BPy_Particle *self)
315
PartEff*ptr = (PartEff*)self->particle;
316
return PyFloat_FromDouble(ptr->lifetime);
321
PyObject *Particle_setLifetime(BPy_Particle *self,PyObject *args)
323
PartEff*ptr = (PartEff*)self->particle;
325
if (!PyArg_ParseTuple(args, "f", &val ))
326
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
327
"expected float argument"));
334
PyObject *Particle_getNormfac(BPy_Particle *self)
337
PartEff*ptr = (PartEff*)self->particle;
338
return PyFloat_FromDouble(ptr->normfac);
343
PyObject *Particle_setNormfac(BPy_Particle *self,PyObject *args)
345
PartEff*ptr = (PartEff*)self->particle;
347
if (!PyArg_ParseTuple(args, "f", &val ))
348
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
349
"expected float argument"));
357
PyObject *Particle_getObfac(BPy_Particle *self)
360
PartEff*ptr = (PartEff*)self->particle;
361
return PyFloat_FromDouble(ptr->obfac);
366
PyObject *Particle_setObfac(BPy_Particle *self,PyObject *args)
369
PartEff*ptr = (PartEff*)self->particle;
370
if (!PyArg_ParseTuple(args, "f", &val ))
371
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
372
"expected float argument"));
380
PyObject *Particle_getRandfac(BPy_Particle *self)
383
PartEff*ptr = (PartEff*)self->particle;
384
return PyFloat_FromDouble(ptr->randfac);
389
PyObject *Particle_setRandfac(BPy_Particle *self,PyObject *args)
392
PartEff*ptr = (PartEff*)self->particle;
393
if (!PyArg_ParseTuple(args, "f", &val ))
394
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
395
"expected float argument"));
403
PyObject *Particle_getTexfac(BPy_Particle *self)
406
PartEff*ptr = (PartEff*)self->particle;
407
return PyFloat_FromDouble(ptr->texfac);
412
PyObject *Particle_setTexfac(BPy_Particle *self,PyObject *args)
414
PartEff*ptr = (PartEff*)self->particle;
416
if (!PyArg_ParseTuple(args, "f", &val ))
417
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
418
"expected float argument"));
426
PyObject *Particle_getRandlife(BPy_Particle *self)
429
PartEff*ptr = (PartEff*)self->particle;
430
return PyFloat_FromDouble(ptr->randlife);
435
PyObject *Particle_setRandlife(BPy_Particle *self,PyObject *args)
437
PartEff*ptr = (PartEff*)self->particle;
439
if (!PyArg_ParseTuple(args, "f", &val ))
440
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
441
"expected float argument"));
449
PyObject *Particle_getNabla(BPy_Particle *self)
452
PartEff*ptr = (PartEff*)self->particle;
453
return PyFloat_FromDouble(ptr->nabla);
458
PyObject *Particle_setNabla(BPy_Particle *self,PyObject *args)
460
PartEff*ptr = (PartEff*)self->particle;
462
if (!PyArg_ParseTuple(args, "f", &val ))
463
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
464
"expected float argument"));
472
PyObject *Particle_getVectsize(BPy_Particle *self)
475
PartEff*ptr = (PartEff*)self->particle;
476
return PyFloat_FromDouble(ptr->vectsize);
481
PyObject *Particle_setVectsize(BPy_Particle *self,PyObject *args)
483
PartEff*ptr = (PartEff*)self->particle;
485
if (!PyArg_ParseTuple(args, "f", &val ))
486
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
487
"expected float argument"));
494
PyObject *Particle_getTotpart(BPy_Particle *self)
497
PartEff*ptr = (PartEff*)self->particle;
498
return PyInt_FromLong(ptr->totpart);
503
PyObject *Particle_setTotpart(BPy_Particle *self,PyObject *args)
506
PartEff*ptr = (PartEff*)self->particle;
507
if (!PyArg_ParseTuple(args, "i", &val ))
508
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
509
"expected int argument"));
516
PyObject *Particle_getTotkey(BPy_Particle *self)
519
PartEff*ptr = (PartEff*)self->particle;
520
return PyInt_FromLong(ptr->totkey);
525
PyObject *Particle_setTotkey(BPy_Particle *self,PyObject *args)
527
PartEff*ptr = (PartEff*)self->particle;
529
if (!PyArg_ParseTuple(args, "i", &val ))
530
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
531
"expected int argument"));
539
PyObject *Particle_getSeed(BPy_Particle *self)
542
PartEff*ptr = (PartEff*)self->particle;
543
return PyInt_FromLong(ptr->seed);
548
PyObject *Particle_setSeed(BPy_Particle *self,PyObject *args)
550
PartEff*ptr = (PartEff*)self->particle;
552
if (!PyArg_ParseTuple(args, "i", &val ))
553
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
554
"expected int argument"));
560
PyObject *Particle_getForce(BPy_Particle *self)
563
PartEff*ptr = (PartEff*)self->particle;
564
return Py_BuildValue("(f,f,f)",ptr->force[0],ptr->force[1],ptr->force[2]);
568
PyObject *Particle_setForce(BPy_Particle *self,PyObject *args)
570
PartEff*ptr = (PartEff*)self->particle;
280
PyObject *Particle_getSta( BPy_Particle * self )
283
PartEff *ptr = ( PartEff * ) self->particle;
284
return PyFloat_FromDouble( ptr->sta );
289
PyObject *Particle_setSta( BPy_Particle * self, PyObject * args )
291
PartEff *ptr = ( PartEff * ) self->particle;
293
if( !PyArg_ParseTuple( args, "f", &val ) )
294
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
295
"expected float argument" ) );
297
Py_INCREF( Py_None );
301
PyObject *Particle_getEnd( BPy_Particle * self )
304
PartEff *ptr = ( PartEff * ) self->particle;
305
return PyFloat_FromDouble( ptr->end );
310
PyObject *Particle_setEnd( BPy_Particle * self, PyObject * args )
313
PartEff *ptr = ( PartEff * ) self->particle;
314
if( !PyArg_ParseTuple( args, "f", &val ) )
315
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
316
"expected float argument" ) );
318
Py_INCREF( Py_None );
322
PyObject *Particle_getLifetime( BPy_Particle * self )
325
PartEff *ptr = ( PartEff * ) self->particle;
326
return PyFloat_FromDouble( ptr->lifetime );
331
PyObject *Particle_setLifetime( BPy_Particle * self, PyObject * args )
333
PartEff *ptr = ( PartEff * ) self->particle;
335
if( !PyArg_ParseTuple( args, "f", &val ) )
336
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
337
"expected float argument" ) );
339
Py_INCREF( Py_None );
344
PyObject *Particle_getNormfac( BPy_Particle * self )
347
PartEff *ptr = ( PartEff * ) self->particle;
348
return PyFloat_FromDouble( ptr->normfac );
353
PyObject *Particle_setNormfac( BPy_Particle * self, PyObject * args )
355
PartEff *ptr = ( PartEff * ) self->particle;
357
if( !PyArg_ParseTuple( args, "f", &val ) )
358
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
359
"expected float argument" ) );
361
Py_INCREF( Py_None );
367
PyObject *Particle_getObfac( BPy_Particle * self )
370
PartEff *ptr = ( PartEff * ) self->particle;
371
return PyFloat_FromDouble( ptr->obfac );
376
PyObject *Particle_setObfac( BPy_Particle * self, PyObject * args )
379
PartEff *ptr = ( PartEff * ) self->particle;
380
if( !PyArg_ParseTuple( args, "f", &val ) )
381
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
382
"expected float argument" ) );
384
Py_INCREF( Py_None );
390
PyObject *Particle_getRandfac( BPy_Particle * self )
393
PartEff *ptr = ( PartEff * ) self->particle;
394
return PyFloat_FromDouble( ptr->randfac );
399
PyObject *Particle_setRandfac( BPy_Particle * self, PyObject * args )
402
PartEff *ptr = ( PartEff * ) self->particle;
403
if( !PyArg_ParseTuple( args, "f", &val ) )
404
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
405
"expected float argument" ) );
407
Py_INCREF( Py_None );
413
PyObject *Particle_getTexfac( BPy_Particle * self )
416
PartEff *ptr = ( PartEff * ) self->particle;
417
return PyFloat_FromDouble( ptr->texfac );
422
PyObject *Particle_setTexfac( BPy_Particle * self, PyObject * args )
424
PartEff *ptr = ( PartEff * ) self->particle;
426
if( !PyArg_ParseTuple( args, "f", &val ) )
427
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
428
"expected float argument" ) );
430
Py_INCREF( Py_None );
436
PyObject *Particle_getRandlife( BPy_Particle * self )
439
PartEff *ptr = ( PartEff * ) self->particle;
440
return PyFloat_FromDouble( ptr->randlife );
445
PyObject *Particle_setRandlife( BPy_Particle * self, PyObject * args )
447
PartEff *ptr = ( PartEff * ) self->particle;
449
if( !PyArg_ParseTuple( args, "f", &val ) )
450
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
451
"expected float argument" ) );
453
Py_INCREF( Py_None );
459
PyObject *Particle_getNabla( BPy_Particle * self )
462
PartEff *ptr = ( PartEff * ) self->particle;
463
return PyFloat_FromDouble( ptr->nabla );
468
PyObject *Particle_setNabla( BPy_Particle * self, PyObject * args )
470
PartEff *ptr = ( PartEff * ) self->particle;
472
if( !PyArg_ParseTuple( args, "f", &val ) )
473
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
474
"expected float argument" ) );
476
Py_INCREF( Py_None );
482
PyObject *Particle_getVectsize( BPy_Particle * self )
485
PartEff *ptr = ( PartEff * ) self->particle;
486
return PyFloat_FromDouble( ptr->vectsize );
491
PyObject *Particle_setVectsize( BPy_Particle * self, PyObject * args )
493
PartEff *ptr = ( PartEff * ) self->particle;
495
if( !PyArg_ParseTuple( args, "f", &val ) )
496
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
497
"expected float argument" ) );
499
Py_INCREF( Py_None );
504
PyObject *Particle_getTotpart( BPy_Particle * self )
507
PartEff *ptr = ( PartEff * ) self->particle;
508
return PyInt_FromLong( ptr->totpart );
513
PyObject *Particle_setTotpart( BPy_Particle * self, PyObject * args )
516
PartEff *ptr = ( PartEff * ) self->particle;
517
if( !PyArg_ParseTuple( args, "i", &val ) )
518
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
519
"expected int argument" ) );
521
Py_INCREF( Py_None );
526
PyObject *Particle_getTotkey( BPy_Particle * self )
529
PartEff *ptr = ( PartEff * ) self->particle;
530
return PyInt_FromLong( ptr->totkey );
535
PyObject *Particle_setTotkey( BPy_Particle * self, PyObject * args )
537
PartEff *ptr = ( PartEff * ) self->particle;
539
if( !PyArg_ParseTuple( args, "i", &val ) )
540
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
541
"expected int argument" ) );
543
Py_INCREF( Py_None );
549
PyObject *Particle_getSeed( BPy_Particle * self )
552
PartEff *ptr = ( PartEff * ) self->particle;
553
return PyInt_FromLong( ptr->seed );
558
PyObject *Particle_setSeed( BPy_Particle * self, PyObject * args )
560
PartEff *ptr = ( PartEff * ) self->particle;
562
if( !PyArg_ParseTuple( args, "i", &val ) )
563
return ( EXPP_ReturnPyObjError( PyExc_AttributeError,
564
"expected int argument" ) );
566
Py_INCREF( Py_None );
570
PyObject *Particle_getForce( BPy_Particle * self )
573
PartEff *ptr = ( PartEff * ) self->particle;
574
return Py_BuildValue( "(f,f,f)", ptr->force[0], ptr->force[1],
579
PyObject *Particle_setForce( BPy_Particle * self, PyObject * args )
581
PartEff *ptr = ( PartEff * ) self->particle;
572
if (PyTuple_Size(args) == 1)args = PyTuple_GetItem(args,0);
573
val[0] = PyFloat_AsDouble(PyTuple_GetItem(args,0));
574
val[1] = PyFloat_AsDouble(PyTuple_GetItem(args,1));
575
val[2] = PyFloat_AsDouble(PyTuple_GetItem(args,2));
583
if( PyTuple_Size( args ) == 1 )
584
args = PyTuple_GetItem( args, 0 );
585
val[0] = PyFloat_AsDouble( PyTuple_GetItem( args, 0 ) );
586
val[1] = PyFloat_AsDouble( PyTuple_GetItem( args, 1 ) );
587
val[2] = PyFloat_AsDouble( PyTuple_GetItem( args, 2 ) );
577
if (!PyArg_ParseTuple(args, "fff", val,val+1,val+2 ))
578
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
579
"expected three float arguments"));
581
ptr->force[0] = val[0];ptr->force[1] = val[1];ptr->force[2] = val[2];
586
PyObject *Particle_getMult(BPy_Particle *self)
589
PartEff*ptr = (PartEff*)self->particle;
590
return Py_BuildValue("(f,f,f,f)",
591
ptr->mult[0],ptr->mult[1],ptr->mult[2],ptr->mult[3]);
595
PyObject *Particle_setMult(BPy_Particle *self,PyObject *args)
597
PartEff*ptr = (PartEff*)self->particle;
599
if (PyTuple_Size(args) == 1)args = PyTuple_GetItem(args,0);
600
val[0] = PyFloat_AsDouble(PyTuple_GetItem(args,0));
601
val[1] = PyFloat_AsDouble(PyTuple_GetItem(args,1));
602
val[2] = PyFloat_AsDouble(PyTuple_GetItem(args,2));
603
val[3] = PyFloat_AsDouble(PyTuple_GetItem(args,3));
604
ptr->mult[0] = val[0];ptr->mult[1] = val[1];
605
ptr->mult[2] = val[2];ptr->mult[3] = val[3];
613
PyObject *Particle_getLife(BPy_Particle *self)
616
PartEff*ptr = (PartEff*)self->particle;
617
return Py_BuildValue("(f,f,f,f)",
618
ptr->life[0],ptr->life[1],ptr->life[2],ptr->life[3]);
622
PyObject *Particle_setLife(BPy_Particle *self,PyObject *args)
624
PartEff*ptr = (PartEff*)self->particle;
626
if (PyTuple_Size(args) == 1)args = PyTuple_GetItem(args,0);
627
val[0] = PyFloat_AsDouble(PyTuple_GetItem(args,0));
628
val[1] = PyFloat_AsDouble(PyTuple_GetItem(args,1));
629
val[2] = PyFloat_AsDouble(PyTuple_GetItem(args,2));
630
val[3] = PyFloat_AsDouble(PyTuple_GetItem(args,3));
631
ptr->life[0] = val[0];ptr->life[1] = val[1];
632
ptr->life[2] = val[2];ptr->life[3] = val[3];
639
PyObject *Particle_getChild(BPy_Particle *self)
642
PartEff*ptr = (PartEff*)self->particle;
643
return Py_BuildValue("(f,f,f,f)",
644
ptr->child[0],ptr->child[1],ptr->child[2],ptr->child[3]);
648
PyObject *Particle_setChild(BPy_Particle *self,PyObject *args)
650
PartEff*ptr = (PartEff*)self->particle;
652
if (PyTuple_Size(args) == 1)args = PyTuple_GetItem(args,0);
653
val[0] = PyFloat_AsDouble(PyTuple_GetItem(args,0));
654
val[1] = PyFloat_AsDouble(PyTuple_GetItem(args,1));
655
val[2] = PyFloat_AsDouble(PyTuple_GetItem(args,2));
656
val[3] = PyFloat_AsDouble(PyTuple_GetItem(args,3));
657
ptr->child[0] = val[0];ptr->child[1] = val[1];
658
ptr->child[2] = val[2];ptr->child[3] = val[3];
665
PyObject *Particle_getMat(BPy_Particle *self)
668
PartEff*ptr = (PartEff*)self->particle;
669
return Py_BuildValue("(f,f,f,f)",
670
ptr->mat[0],ptr->mat[1],ptr->mat[2],ptr->mat[3]);
674
PyObject *Particle_setMat(BPy_Particle *self,PyObject *args)
676
PartEff*ptr = (PartEff*)self->particle;
678
if (PyTuple_Size(args) == 1)args = PyTuple_GetItem(args,0);
679
val[0] = PyFloat_AsDouble(PyTuple_GetItem(args,0));
680
val[1] = PyFloat_AsDouble(PyTuple_GetItem(args,1));
681
val[2] = PyFloat_AsDouble(PyTuple_GetItem(args,2));
682
val[3] = PyFloat_AsDouble(PyTuple_GetItem(args,3));
683
ptr->mat[0] = val[0];ptr->mat[1] = val[1];
684
ptr->mat[2] = val[2];ptr->mat[3] = val[3];
690
PyObject *Particle_getDefvec(BPy_Particle *self)
693
PartEff*ptr = (PartEff*)self->particle;
694
return Py_BuildValue("(f,f,f)",
695
ptr->defvec[0],ptr->defvec[1],ptr->defvec[2]);
699
PyObject *Particle_setDefvec(BPy_Particle *self,PyObject *args)
701
PartEff*ptr = (PartEff*)self->particle;
703
if (PyTuple_Size(args) == 1)args = PyTuple_GetItem(args,0);
704
val[0] = PyFloat_AsDouble(PyTuple_GetItem(args,0));
705
val[1] = PyFloat_AsDouble(PyTuple_GetItem(args,1));
706
val[2] = PyFloat_AsDouble(PyTuple_GetItem(args,2));
707
ptr->defvec[0] = val[0];ptr->defvec[1] = val[1]; ptr->defvec[2] = val[2];
589
if (!PyArg_ParseTuple(args, "fff", val,val+1,val+2 ))
590
return(EXPP_ReturnPyObjError(PyExc_AttributeError,\
591
"expected three float arguments"));
593
ptr->force[0] = val[0];
594
ptr->force[1] = val[1];
595
ptr->force[2] = val[2];
596
Py_INCREF( Py_None );
600
PyObject *Particle_getMult( BPy_Particle * self )
603
PartEff *ptr = ( PartEff * ) self->particle;
604
return Py_BuildValue( "(f,f,f,f)",
605
ptr->mult[0], ptr->mult[1], ptr->mult[2],
610
PyObject *Particle_setMult( BPy_Particle * self, PyObject * args )
612
PartEff *ptr = ( PartEff * ) self->particle;
614
if( PyTuple_Size( args ) == 1 )
615
args = PyTuple_GetItem( args, 0 );
616
val[0] = PyFloat_AsDouble( PyTuple_GetItem( args, 0 ) );
617
val[1] = PyFloat_AsDouble( PyTuple_GetItem( args, 1 ) );
618
val[2] = PyFloat_AsDouble( PyTuple_GetItem( args, 2 ) );
619
val[3] = PyFloat_AsDouble( PyTuple_GetItem( args, 3 ) );
620
ptr->mult[0] = val[0];
621
ptr->mult[1] = val[1];
622
ptr->mult[2] = val[2];
623
ptr->mult[3] = val[3];
624
Py_INCREF( Py_None );
631
PyObject *Particle_getLife( BPy_Particle * self )
634
PartEff *ptr = ( PartEff * ) self->particle;
635
return Py_BuildValue( "(f,f,f,f)",
636
ptr->life[0], ptr->life[1], ptr->life[2],
641
PyObject *Particle_setLife( BPy_Particle * self, PyObject * args )
643
PartEff *ptr = ( PartEff * ) self->particle;
645
if( PyTuple_Size( args ) == 1 )
646
args = PyTuple_GetItem( args, 0 );
647
val[0] = PyFloat_AsDouble( PyTuple_GetItem( args, 0 ) );
648
val[1] = PyFloat_AsDouble( PyTuple_GetItem( args, 1 ) );
649
val[2] = PyFloat_AsDouble( PyTuple_GetItem( args, 2 ) );
650
val[3] = PyFloat_AsDouble( PyTuple_GetItem( args, 3 ) );
651
ptr->life[0] = val[0];
652
ptr->life[1] = val[1];
653
ptr->life[2] = val[2];
654
ptr->life[3] = val[3];
655
Py_INCREF( Py_None );
661
PyObject *Particle_getChild( BPy_Particle * self )
664
PartEff *ptr = ( PartEff * ) self->particle;
665
return Py_BuildValue( "(f,f,f,f)",
666
ptr->child[0], ptr->child[1], ptr->child[2],
671
PyObject *Particle_setChild( BPy_Particle * self, PyObject * args )
673
PartEff *ptr = ( PartEff * ) self->particle;
675
if( PyTuple_Size( args ) == 1 )
676
args = PyTuple_GetItem( args, 0 );
677
val[0] = PyFloat_AsDouble( PyTuple_GetItem( args, 0 ) );
678
val[1] = PyFloat_AsDouble( PyTuple_GetItem( args, 1 ) );
679
val[2] = PyFloat_AsDouble( PyTuple_GetItem( args, 2 ) );
680
val[3] = PyFloat_AsDouble( PyTuple_GetItem( args, 3 ) );
681
ptr->child[0] = val[0];
682
ptr->child[1] = val[1];
683
ptr->child[2] = val[2];
684
ptr->child[3] = val[3];
685
Py_INCREF( Py_None );
691
PyObject *Particle_getMat( BPy_Particle * self )
694
PartEff *ptr = ( PartEff * ) self->particle;
695
return Py_BuildValue( "(f,f,f,f)",
696
ptr->mat[0], ptr->mat[1], ptr->mat[2],
701
PyObject *Particle_setMat( BPy_Particle * self, PyObject * args )
703
PartEff *ptr = ( PartEff * ) self->particle;
705
if( PyTuple_Size( args ) == 1 )
706
args = PyTuple_GetItem( args, 0 );
707
val[0] = PyFloat_AsDouble( PyTuple_GetItem( args, 0 ) );
708
val[1] = PyFloat_AsDouble( PyTuple_GetItem( args, 1 ) );
709
val[2] = PyFloat_AsDouble( PyTuple_GetItem( args, 2 ) );
710
val[3] = PyFloat_AsDouble( PyTuple_GetItem( args, 3 ) );
711
ptr->mat[0] = val[0];
712
ptr->mat[1] = val[1];
713
ptr->mat[2] = val[2];
714
ptr->mat[3] = val[3];
715
Py_INCREF( Py_None );
720
PyObject *Particle_getDefvec( BPy_Particle * self )
723
PartEff *ptr = ( PartEff * ) self->particle;
724
return Py_BuildValue( "(f,f,f)",
725
ptr->defvec[0], ptr->defvec[1], ptr->defvec[2] );
729
PyObject *Particle_setDefvec( BPy_Particle * self, PyObject * args )
731
PartEff *ptr = ( PartEff * ) self->particle;
733
if( PyTuple_Size( args ) == 1 )
734
args = PyTuple_GetItem( args, 0 );
735
val[0] = PyFloat_AsDouble( PyTuple_GetItem( args, 0 ) );
736
val[1] = PyFloat_AsDouble( PyTuple_GetItem( args, 1 ) );
737
val[2] = PyFloat_AsDouble( PyTuple_GetItem( args, 2 ) );
738
ptr->defvec[0] = val[0];
739
ptr->defvec[1] = val[1];
740
ptr->defvec[2] = val[2];
741
Py_INCREF( Py_None );
716
749
/* Description: This is a callback function for the BPy_Particle type. It is */
717
750
/* the destructor function. */
718
751
/*****************************************************************************/
719
void ParticleDeAlloc (BPy_Particle *self)
752
void ParticleDeAlloc( BPy_Particle * self )
721
PartEff*ptr = (PartEff*)self;
754
PartEff *ptr = ( PartEff * ) self;
725
758
/*****************************************************************************/
726
759
/* Function: ParticleGetAttr */
727
/* Description: This is a callback function for the BPy_Particle type. It is */
728
/* the function that accesses BPy_Particle "member variables" and */
760
/* Description: This is a callback function for the BPy_Particle type. It is */
761
/* the function that accesses BPy_Particle "member variables" */
730
763
/*****************************************************************************/
733
PyObject *ParticleGetAttr (BPy_Particle *self, char *name)
766
PyObject *ParticleGetAttr( BPy_Particle * self, char *name )
736
if (strcmp (name, "seed") == 0)
737
return Particle_getSeed (self);
738
else if (strcmp (name, "nabla") == 0)
739
return Particle_getNabla (self);
740
else if (strcmp (name, "sta") == 0)
741
return Particle_getSta (self);
742
else if (strcmp (name, "end") == 0)
743
return Particle_getEnd (self);
744
else if (strcmp (name, "lifetime") == 0)
745
return Particle_getLifetime (self);
746
else if (strcmp (name, "normfac") == 0)
747
return Particle_getNormfac (self);
748
else if (strcmp (name, "obfac") == 0)
749
return Particle_getObfac (self);
750
else if (strcmp (name, "randfac") == 0)
751
return Particle_getRandfac (self);
752
else if (strcmp (name, "texfac") == 0)
753
return Particle_getTexfac (self);
754
else if (strcmp (name, "randlife") == 0)
755
return Particle_getRandlife (self);
756
else if (strcmp (name, "vectsize") == 0)
757
return Particle_getVectsize (self);
758
else if (strcmp (name, "totpart") == 0)
759
return Particle_getTotpart (self);
760
else if (strcmp (name, "force") == 0)
761
return Particle_getForce (self);
762
else if (strcmp (name, "mult") == 0)
763
return Particle_getMult (self);
764
else if (strcmp (name, "life") == 0)
765
return Particle_getLife (self);
766
else if (strcmp (name, "child") == 0)
767
return Particle_getChild (self);
768
else if (strcmp (name, "mat") == 0)
769
return Particle_getMat (self);
770
else if (strcmp (name, "defvec") == 0)
771
return Particle_getDefvec (self);
774
return Py_FindMethod(BPy_Particle_methods, (PyObject *)self, name);
769
if( strcmp( name, "seed" ) == 0 )
770
return Particle_getSeed( self );
771
else if( strcmp( name, "nabla" ) == 0 )
772
return Particle_getNabla( self );
773
else if( strcmp( name, "sta" ) == 0 )
774
return Particle_getSta( self );
775
else if( strcmp( name, "end" ) == 0 )
776
return Particle_getEnd( self );
777
else if( strcmp( name, "lifetime" ) == 0 )
778
return Particle_getLifetime( self );
779
else if( strcmp( name, "normfac" ) == 0 )
780
return Particle_getNormfac( self );
781
else if( strcmp( name, "obfac" ) == 0 )
782
return Particle_getObfac( self );
783
else if( strcmp( name, "randfac" ) == 0 )
784
return Particle_getRandfac( self );
785
else if( strcmp( name, "texfac" ) == 0 )
786
return Particle_getTexfac( self );
787
else if( strcmp( name, "randlife" ) == 0 )
788
return Particle_getRandlife( self );
789
else if( strcmp( name, "vectsize" ) == 0 )
790
return Particle_getVectsize( self );
791
else if( strcmp( name, "totpart" ) == 0 )
792
return Particle_getTotpart( self );
793
else if( strcmp( name, "force" ) == 0 )
794
return Particle_getForce( self );
795
else if( strcmp( name, "mult" ) == 0 )
796
return Particle_getMult( self );
797
else if( strcmp( name, "life" ) == 0 )
798
return Particle_getLife( self );
799
else if( strcmp( name, "child" ) == 0 )
800
return Particle_getChild( self );
801
else if( strcmp( name, "mat" ) == 0 )
802
return Particle_getMat( self );
803
else if( strcmp( name, "defvec" ) == 0 )
804
return Particle_getDefvec( self );
807
return Py_FindMethod( BPy_Particle_methods, ( PyObject * ) self,
777
811
/*****************************************************************************/
778
812
/* Function: ParticleSetAttr */
779
/* Description: This is a callback function for the BPy_Particle type. It is th*/
780
/* function that sets Particle Data attributes (member vars) */
813
/* Description: This is a callback function for the BPy_Particle type. */
814
/* It is the function that sets Particle Data attributes */
781
816
/*****************************************************************************/
782
int ParticleSetAttr (BPy_Particle *self, char *name, PyObject *value)
817
int ParticleSetAttr( BPy_Particle * self, char *name, PyObject * value )
786
PyObject *error = NULL;
788
valtuple = Py_BuildValue("(N)", value);
791
return EXPP_ReturnIntError(PyExc_MemoryError,
792
"ParticleSetAttr: couldn't create PyTuple");
794
if (strcmp (name, "seed") == 0)
795
error = Particle_setSeed (self, valtuple);
796
else if (strcmp (name, "nabla") == 0)
797
error = Particle_setNabla (self, valtuple);
798
else if (strcmp (name, "sta") == 0)
799
error = Particle_setSta (self, valtuple);
800
else if (strcmp (name, "end") == 0)
801
error = Particle_setEnd (self, valtuple);
802
else if (strcmp (name, "lifetime") == 0)
803
error = Particle_setLifetime (self, valtuple);
804
else if (strcmp (name, "normfac") == 0)
805
error = Particle_setNormfac (self, valtuple);
806
else if (strcmp (name, "obfac") == 0)
807
error = Particle_setObfac (self, valtuple);
808
else if (strcmp (name, "randfac") == 0)
809
error = Particle_setRandfac (self, valtuple);
810
else if (strcmp (name, "texfac") == 0)
811
error = Particle_setTexfac (self, valtuple);
812
else if (strcmp (name, "randlife") == 0)
813
error = Particle_setRandlife (self, valtuple);
814
else if (strcmp (name, "nabla") == 0)
815
error = Particle_setNabla (self, valtuple);
816
else if (strcmp (name, "vectsize") == 0)
817
error = Particle_setVectsize (self, valtuple);
818
else if (strcmp (name, "totpart") == 0)
819
error = Particle_setTotpart (self, valtuple);
820
else if (strcmp (name, "seed") == 0)
821
error = Particle_setSeed (self, valtuple);
822
else if (strcmp (name, "force") == 0)
823
error = Particle_setForce (self, valtuple);
824
else if (strcmp (name, "mult") == 0)
825
error = Particle_setMult (self, valtuple);
826
else if (strcmp (name, "life") == 0)
827
error = Particle_setLife (self, valtuple);
828
else if (strcmp (name, "child") == 0)
829
error = Particle_setChild (self, valtuple);
830
else if (strcmp (name, "mat") == 0)
831
error = Particle_setMat (self, valtuple);
832
else if (strcmp (name, "defvec") == 0)
833
error = Particle_setDefvec (self, valtuple);
838
if ((strcmp (name, "Types") == 0) ||
839
(strcmp (name, "Modes") == 0))
840
return (EXPP_ReturnIntError (PyExc_AttributeError,
841
"constant dictionary -- cannot be changed"));
844
return (EXPP_ReturnIntError (PyExc_KeyError,
845
"attribute not found"));
848
/*Py_DECREF(valtuple);*/
849
if (error != Py_None) return -1;
821
PyObject *error = NULL;
823
valtuple = Py_BuildValue( "(N)", value );
826
return EXPP_ReturnIntError( PyExc_MemoryError,
827
"ParticleSetAttr: couldn't create PyTuple" );
829
if( strcmp( name, "seed" ) == 0 )
830
error = Particle_setSeed( self, valtuple );
831
else if( strcmp( name, "nabla" ) == 0 )
832
error = Particle_setNabla( self, valtuple );
833
else if( strcmp( name, "sta" ) == 0 )
834
error = Particle_setSta( self, valtuple );
835
else if( strcmp( name, "end" ) == 0 )
836
error = Particle_setEnd( self, valtuple );
837
else if( strcmp( name, "lifetime" ) == 0 )
838
error = Particle_setLifetime( self, valtuple );
839
else if( strcmp( name, "normfac" ) == 0 )
840
error = Particle_setNormfac( self, valtuple );
841
else if( strcmp( name, "obfac" ) == 0 )
842
error = Particle_setObfac( self, valtuple );
843
else if( strcmp( name, "randfac" ) == 0 )
844
error = Particle_setRandfac( self, valtuple );
845
else if( strcmp( name, "texfac" ) == 0 )
846
error = Particle_setTexfac( self, valtuple );
847
else if( strcmp( name, "randlife" ) == 0 )
848
error = Particle_setRandlife( self, valtuple );
849
else if( strcmp( name, "nabla" ) == 0 )
850
error = Particle_setNabla( self, valtuple );
851
else if( strcmp( name, "vectsize" ) == 0 )
852
error = Particle_setVectsize( self, valtuple );
853
else if( strcmp( name, "totpart" ) == 0 )
854
error = Particle_setTotpart( self, valtuple );
855
else if( strcmp( name, "seed" ) == 0 )
856
error = Particle_setSeed( self, valtuple );
857
else if( strcmp( name, "force" ) == 0 )
858
error = Particle_setForce( self, valtuple );
859
else if( strcmp( name, "mult" ) == 0 )
860
error = Particle_setMult( self, valtuple );
861
else if( strcmp( name, "life" ) == 0 )
862
error = Particle_setLife( self, valtuple );
863
else if( strcmp( name, "child" ) == 0 )
864
error = Particle_setChild( self, valtuple );
865
else if( strcmp( name, "mat" ) == 0 )
866
error = Particle_setMat( self, valtuple );
867
else if( strcmp( name, "defvec" ) == 0 )
868
error = Particle_setDefvec( self, valtuple );
871
Py_DECREF( valtuple );
873
if( ( strcmp( name, "Types" ) == 0 ) ||
874
( strcmp( name, "Modes" ) == 0 ) )
875
return ( EXPP_ReturnIntError( PyExc_AttributeError,
876
"constant dictionary -- cannot be changed" ) );
879
return ( EXPP_ReturnIntError( PyExc_KeyError,
880
"attribute not found" ) );
883
/*Py_DECREF(valtuple); */
884
if( error != Py_None )
887
Py_DECREF( Py_None );
855
891
/*****************************************************************************/
856
892
/* Function: ParticlePrint */
857
/* Description: This is a callback function for the BPy_Particle type. It */
893
/* Description: This is a callback function for the BPy_Particle type. It */
858
894
/* particles a meaninful string to 'print' particle objects. */
859
895
/*****************************************************************************/