5744842859757b0c8a6129d7ed7728bfa3abee5a
[blender.git] / source / blender / python / api2_2x / doc / Object.py
1 # Blender.Object module and the Object PyType object
2
3 """
4 The Blender.Object submodule
5
6 B{New}:
7   - L{Object.getData} now accepts an optional bool keyword argument to
8       define if the user wants the data object or just its name.
9   - L{Object.clearScriptLinks} accepts a parameter now.
10   - Object attributes: renamed Layer to L{Layers<Object.Object.Layers>} and
11     added the easier L{layers<Object.Object.layers>}.  The old form "Layer"
12     will continue to work.
13
14 Object
15 ======
16
17 This module provides access to the B{Objects} in Blender.
18
19 Example::
20
21   import Blender
22   scene = Blender.Scene.getCurrent ()   # get the current scene
23   ob = Blender.Object.New ('Camera')    # make camera object
24   cam = Blender.Camera.New ('ortho')    # make ortho camera data object
25   ob.link (cam)                         # link camera data with the object
26   scene.link (ob)                       # link the object into the scene
27   ob.setLocation (0.0, -5.0, 1.0)       # position the object in the scene
28
29   Blender.Redraw()                      # redraw the scene to show the updates.
30 """
31
32 def New (type, name='type'):
33   """
34   Creates a new Object.
35   @type type: string
36   @param type: The Object type: 'Armature', 'Camera', 'Curve', 'Lamp', 'Mesh'
37       or 'Empty'.
38   @type name: string
39   @param name: The name of the object. By default, the name will be the same
40       as the object type.
41   @return: The created Object.
42
43   I{B{Example:}}
44
45   The example below creates a new Lamp object and puts it at the default
46   location (0, 0, 0) in the current scene::
47     import Blender
48
49     object = Blender.Object.New ('Lamp')
50     lamp = Blender.Lamp.New ('Spot')
51     object.link (lamp)
52     scene = Blender.Scene.getCurrent ()
53     scene.link (object)
54
55     Blender.Redraw()
56   """
57
58 def Get (name = None):
59   """
60   Get the Object from Blender.
61   @type name: string
62   @param name: The name of the requested Object.
63   @return: It depends on the 'name' parameter:
64       - (name): The Object with the given name;
65       - ():     A list with all Objects in the current scene.
66
67   I{B{Example 1:}}
68
69   The example below works on the default scene. The script returns the plane
70   object and prints the location of the plane::
71     import Blender
72
73     object = Blender.Object.Get ('plane')
74     print object.getLocation()
75
76   I{B{Example 2:}}
77
78   The example below works on the default scene. The script returns all objects
79   in the scene and prints the list of object names::
80     import Blender
81
82     objects = Blender.Object.Get ()
83     print objects
84   """
85
86 def GetSelected ():
87   """
88   Get the selected objects from Blender. If no objects are selected, an empty
89   list will be returned.
90   @return: A list of all selected Objects in the current scene.
91
92   I{B{Example:}}
93
94   The example below works on the default scene. Select one or more objects and
95   the script will print the selected objects::
96     import Blender
97
98     objects = Blender.Object.GetSelected ()
99     print objects
100   """
101
102 class Object:
103   """
104   The Object object
105   =================
106     This object gives access to generic data from all objects in Blender.
107     @ivar LocX: The X location coordinate of the object.
108     @ivar LocY: The Y location coordinate of the object.
109     @ivar LocZ: The Z location coordinate of the object.
110     @ivar loc: The (X,Y,Z) location coordinates of the object (vector).
111     @ivar dLocX: The delta X location coordinate of the object.
112         This variable applies to IPO Objects only.
113     @ivar dLocY: The delta Y location coordinate of the object.
114         This variable applies to IPO Objects only.
115     @ivar dLocZ: The delta Z location coordinate of the object.
116         This variable applies to IPO Objects only.
117     @ivar dloc: The delta (X,Y,Z) location coordinates of the object (vector).
118         This variable applies to IPO Objects only.
119     @ivar RotX: The X rotation angle (in radians) of the object.
120     @ivar RotY: The Y rotation angle (in radians) of the object.
121     @ivar RotZ: The Z rotation angle (in radians) of the object.
122     @ivar rot: The (X,Y,Z) rotation angles (in radians) of the object (vector).
123     @ivar dRotX: The delta X rotation angle (in radians) of the object.
124         This variable applies to IPO Objects only.
125     @ivar dRotY: The delta Y rotation angle (in radians) of the object.
126         This variable applies to IPO Objects only.
127     @ivar dRotZ: The delta Z rotation angle (in radians) of the object.
128         This variable applies to IPO Objects only.
129     @ivar drot: The delta (X,Y,Z) rotation angles (in radians) of the object
130         (vector).
131         This variable applies to IPO Objects only.
132     @ivar SizeX: The X size of the object.
133     @ivar SizeY: The Y size of the object.
134     @ivar SizeZ: The Z size of the object.
135     @ivar size: The (X,Y,Z) size of the object (vector).
136     @ivar dSizeX: The delta X size of the object.
137     @ivar dSizeY: The delta Y size of the object.
138     @ivar dSizeZ: The delta Z size of the object.
139     @ivar dsize: The delta (X,Y,Z) size of the object.
140     @type Layers: integer (bitmask)
141     @ivar Layers: The object layers (also check the newer attribute
142         L{layers<Object.Object.layers>}).  This value is a bitmask with at 
143         least one position set for the 20 possible layers starting from the low
144         order bit.  The easiest way to deal with these values in in hexadecimal
145         notation.
146         Example::
147           ob.Layer = 0x04 # sets layer 3 ( bit pattern 0100 )
148         After setting the Layer value, call Blender.Redraw( -1 ) to update
149         the interface.
150     @type layers: list of integers
151     @ivar layers: The layers this object is visible in (also check the older
152         attribute L{Layers<Object.Object.Layers>}).  This returns a list of
153         integers in the range [1, 20], each number representing the respective
154         layer.  Setting is done by passing a list of ints or an empty list for
155         no layers.
156         Example::
157           ob.layers = []  # object won't be visible
158           ob.layers = [1, 4] # object visible only in layers 1 and 4
159           ls = o.layers
160           ls.append([10])
161           o.layers = ls
162           print ob.layers # will print: [1, 4, 10]
163         B{Note}: changes will only be visible after the screen (at least
164         the 3d View and Buttons windows) is redrawn.
165     @ivar parent: The parent object of the object. (Read-only)
166     @ivar track: The object tracking this object. (Read-only)
167     @ivar data: The data of the object. (Read-only)
168     @ivar ipo: The ipo data associated with the object. (Read-only)
169     @ivar mat: The matrix of the object relative to its parent. (Read-only)
170     @ivar matrix: The matrix of the object in world space. (Read-only)
171     @ivar matrixLocal: The matrix of the object relative to its parent. (Read-only)
172     @ivar matrixWorld: The matrix of the object in world space. (Read-only)
173     @ivar colbits: The Material usage mask. A set bit #n means: the Material
174         #n in the Object's material list is used. Otherwise, the Material #n
175         of the Objects Data material list is displayed.
176     @ivar drawType: The object's drawing type used. 1 - Bounding box,
177         2 - wire, 3 - Solid, 4- Shaded, 5 - Textured.
178     @ivar drawMode: The object's drawing mode used. The value can be a sum
179         of: 2 - axis, 4 - texspace, 8 - drawname, 16 - drawimage,
180         32 - drawwire.
181     @ivar name: The name of the object.
182     @ivar sel: The selection state of the object, 1/0.  
183   """
184
185   def buildParts():
186     """
187     Recomputes the particle system. This method only applies to an Object of
188     the type Effect.
189     """
190
191   def clearIpo():
192     """
193     Unlinks the ipo from this object.
194     @return: True if there was an ipo linked or False otherwise.
195     """
196
197   def clrParent(mode = 0, fast = 0):
198     """
199     Clears parent object.
200     @type mode: Integer
201     @type fast: Integer
202     @param mode: A mode flag. If mode flag is 2, then the object transform will
203         be kept. Any other value, or no value at all will update the object
204         transform.
205     @param fast: If the value is 0, the scene hierarchy will not be updated. Any
206         other value, or no value at all will update the scene hierarchy.
207     """
208
209   def getData(name_only = False):
210     """
211     Returns the Datablock object (Mesh, Lamp, Camera, etc.) linked to this Object.  If the keyword parameter 'name_only' is True, only the Datablock name is returned as a string. 
212     @type name_only: bool
213     @param name_only: This is a keyword parameter.  if True (or nonzero), only the name of the data object is returned.  The default value is False.
214     @rtype: specific Object type or string
215     @return: Depends on the type of Datablock linked to the Object.  If name_only is True, it returns a string.
216     """
217
218   def getDeltaLocation():
219     """
220     Returns the object's delta location in a list (x, y, z)
221     @rtype: A vector triple
222     @return: (x, y, z)
223     """
224
225   def getDrawMode():
226     """
227     Returns the object draw mode.
228     @rtype: Integer
229     @return: a sum of the following:
230         - 2  - axis
231         - 4  - texspace
232         - 8  - drawname
233         - 16 - drawimage
234         - 32 - drawwire
235     """
236
237   def getDrawType():
238     """
239     Returns the object draw type
240     @rtype: Integer
241     @return: One of the following:
242         - 1 - Bounding box
243         - 2 - Wire
244         - 3 - Solid
245         - 4 - Shaded
246         - 5 - Textured
247     """
248
249   def getEuler():
250     """
251     Returns the object's rotation as Euler rotation vector (rotX, rotY, rotZ).  Angles are in radians.
252     @rtype: Py_Euler
253     @return: A python euler 
254     """
255
256   def getInverseMatrix():
257     """
258     Returns the object's inverse matrix.
259     @rtype: Py_Matrix
260     @return: A python matrix 4x4
261     """
262
263   def getIpo():
264     """
265     Returns the Ipo associated to this object or None if there's no linked ipo.
266     @rtype: Ipo
267     @return: the wrapped ipo or None.
268     """
269   def isSelected():
270     """
271     Returns the objects selection state as a boolean value True or False.
272     @rtype: Boolean
273     @return: Selection state as True or False
274     """
275   
276   def getLocation():
277     """
278     Returns the object's location (x, y, z).
279     @return: (x, y, z)
280
281     I{B{Example:}}
282
283     The example below works on the default scene. It retrieves all objects in
284     the scene and prints the name and location of each object::
285       import Blender
286
287       objects = Blender.Object.Get()
288
289       for obj in objects:
290           print obj.getName()
291           print obj.getLocation()
292     """
293
294   def getAction():
295     """
296     Returns an action if one is associated with this object (only useful for armature types).
297     @rtype: Py_Action
298     @return: a python action.
299     """
300
301   def getMaterials(what = 0):
302     """
303     Returns a list of materials assigned to the object.
304     @type what: int
305     @param what: if nonzero, empty slots will be returned as None's instead
306         of being ignored (default way). See L{NMesh.NMesh.getMaterials}.
307     @rtype: list of Material Objects
308     @return: list of Material Objects assigned to the object.
309     """
310
311   def getMatrix(space = 'worldspace'):
312     """
313     Returns the object matrix.
314     @type space: string
315     @param space: The desired matrix:
316       - worldspace (default): absolute, taking vertex parents, tracking and
317           ipo's into account;
318       - localspace: relative to the object's parent;
319       - old_worldspace: old behavior, prior to Blender 2.34, where eventual
320           changes made by the script itself were not taken into account until
321           a redraw happened, either called by the script or upon its exit.
322     Returns the object matrix.
323     @rtype: Py_Matrix
324     @return: a python 4x4 matrix object
325     """
326
327   def getName():
328     """
329     Returns the name of the object
330     @return: The name of the object
331
332     I{B{Example:}}
333
334     The example below works on the default scene. It retrieves all objects in
335     the scene and prints the name of each object::
336       import Blender
337
338       objects = Blender.Object.Get()
339
340       for obj in objects:
341           print obj.getName()
342     """
343
344   def getParent():
345     """
346     Returns the object's parent object.
347     @rtype: Object
348     @return: The parent object of the object. If not available, None will be
349     returned.
350     """
351
352   def getSize():
353     """
354     Returns the object's size.
355     @return: (SizeX, SizeY, SizeZ)
356     """
357
358   def getParentBoneName():
359     """
360     Returns the object's parent object's sub name, or None.
361     For objects parented to bones, this is the name of the bone.
362     @rtype: String
363     @return: The parent object sub-name of the object.
364                 If not available, None will be returned.
365     """
366
367   def getTimeOffset():
368     """
369     Returns the time offset of the object's animation.
370     @return: TimeOffset
371     """
372
373   def getTracked():
374     """
375     Returns the object's tracked object.
376     @rtype: Object
377     @return: The tracked object of the object. If not available, None will be
378     returned.
379     """
380
381   def getType():
382     """
383     Returns the type of the object.
384     @return: The type of object.
385
386     I{B{Example:}}
387
388     The example below works on the default scene. It retrieves all objects in
389     the scene and updates the location and rotation of the camera. When run,
390     the camera will rotate 180 degrees and moved to the oposite side of the X
391     axis. Note that the number 'pi' in the example is an approximation of the
392     true number 'pi'::
393         import Blender
394
395         objects = Blender.Object.Get()
396
397         for obj in objects:
398             if obj.getType() == 'Camera':
399                 obj.LocY = -obj.LocY
400                 obj.RotZ = 3.141592 - obj.RotZ
401
402         Blender.Redraw()
403     """
404
405   def getDupliVerts():
406     """
407     Get state of DupliVerts anim propertie
408     @return: a boolean value.
409     """
410
411   def insertIpoKey(keytype):
412     """
413     Inserts keytype values in object ipo at curframe. Uses module constants.
414     @type keytype: Integer
415     @param keytype:
416            -LOC
417            -ROT
418            -SIZE
419            -LOCROT
420            -LOCROTSIZE
421            -PI_STRENGTH
422            -PI_FALLOFF
423            -PI_PERM
424            -PI_SURFACEDAMP
425            -PI_RANDOMDAMP
426     @return: py_none
427     """
428
429   def link(object):
430     """
431     Links Object with data provided in the argument. The data must match the
432     Object's type, so you cannot link a Lamp to a Mesh type object.
433     @type object: Blender Object
434     @param object: A Blender Object.
435     """
436
437   def makeParent(objects, noninverse = 0, fast = 0):
438     """
439     Makes the object the parent of the objects provided in the argument which
440     must be a list of valid Objects.
441     @type objects: Sequence of Blender Object
442     @param objects: The Childs of the parent
443     @type noninverse: Integer
444     @param noninverse:
445         0 - make parent with inverse
446         1 - make parent without inverse
447     @type fast: Integer
448     @param fast:
449         0 - update scene hierarchy automatically
450         1 - don't update scene hierarchy (faster). In this case, you must
451         explicitely update the Scene hierarchy.
452     @warn: objects must first be linked to a scene before they can become
453         parents of other objects.  Calling this makeParent method for an
454         unlinked object will result in an error.
455     """
456         
457   def makeParentDeform(objects, noninverse = 0, fast = 0):
458     """
459     Makes the object the deformation parent of the objects provided in the argument
460     which must be a list of valid Objects.
461     The parent object must be a Curve or Armature.
462     @type objects: Sequence of Blender Object
463     @param objects: The Childs of the parent
464     @type noninverse: Integer
465     @param noninverse:
466         0 - make parent with inverse
467         1 - make parent without inverse
468     @type fast: Integer
469     @param fast:
470         0 - update scene hierarchy automatically
471         1 - don't update scene hierarchy (faster). In this case, you must
472         explicitely update the Scene hierarchy.
473     @warn: objects must first be linked to a scene before they can become
474         parents of other objects.  Calling this makeParent method for an
475         unlinked object will result in an error.
476     @warn: child objects must be of mesh type to deform correctly. Other object
477         types will fall back to normal parenting silently.
478     """
479         
480   def makeParentVertex(objects, indices, noninverse = 0, fast = 0):
481     """
482     Makes the object the vertex parent of the objects provided in the argument
483     which must be a list of valid Objects.
484     The parent object must be a Mesh, Curve or Surface.
485     @type objects: Sequence of Blender Object
486     @param objects: The Childs of the parent
487     @type indices: Tuple of Integers
488     @param indices: The indices of the vertice you want to parent to (1 or 3)
489     @type noninverse: Integer
490     @param noninverse:
491         0 - make parent with inverse
492         1 - make parent without inverse
493     @type fast: Integer
494     @param fast:
495         0 - update scene hierarchy automatically
496         1 - don't update scene hierarchy (faster). In this case, you must
497         explicitely update the Scene hierarchy.
498     @warn: objects must first be linked to a scene before they can become
499         parents of other objects.  Calling this makeParent method for an
500         unlinked object will result in an error.
501     """
502
503   def setDeltaLocation(delta_location):
504     """
505     Sets the object's delta location which must be a vector triple.
506     @type delta_location: A vector triple
507     @param delta_location: A vector triple (x, y, z) specifying the new
508     location.
509     """
510
511   def setDrawMode(drawmode):
512     """
513     Sets the object's drawing mode. The drawing mode can be a mix of modes. To
514     enable these, add up the values.
515     @type drawmode: Integer
516     @param drawmode: A sum of the following:
517         - 2  - axis
518         - 4  - texspace
519         - 8  - drawname
520         - 16 - drawimage
521         - 32 - drawwire
522     """
523
524   def setDrawType(drawtype):
525     """
526     Sets the object's drawing type.
527     @type drawtype: Integer
528     @param drawtype: One of the following:
529         - 1 - Bounding box
530         - 2 - Wire
531         - 3 - Solid
532         - 4 - Shaded
533         - 5 - Textured
534     """
535
536   def setEuler(euler):
537     """
538     Sets the object's rotation according to the specified Euler angles.
539     @type euler: Py_Euler or a list of floats
540     @param euler: a python euler or x,y,z rotations as floats
541     """
542
543   def setIpo(ipo):
544     """
545     Links an ipo to this object.
546     @type ipo: Blender Ipo
547     @param ipo: an object type ipo.
548     """
549
550   def setLocation(x, y, z):
551     """
552     Sets the object's location.
553     @type x: float
554     @param x: The X coordinate of the new location.
555     @type y: float
556     @param y: The Y coordinate of the new location.
557     @type z: float
558     @param z: The Z coordinate of the new location.
559     """
560
561   def setMaterials(materials):
562     """
563     Sets the materials. The argument must be a list of valid material objects.
564     @type materials: Materials list
565     @param materials: A list of Blender material objects.
566     """
567
568   def setMatrix(matrix):
569     """
570     Sets the object's matrix and updates it's tranformation. 
571     @type matrix: Py_Matrix 4x4
572     @param matrix: a python matrix 4x4.
573     """
574
575   def setName(name):
576     """
577     Sets the name of the object.
578     @type name: String
579     @param name: The new name for the object.
580     """
581
582   def setSize(x, y, z):
583     """
584     Sets the object's size.
585     @type x: float
586     @param x: The X size multiplier.
587     @type y: float
588     @param y: The Y size multiplier.
589     @type z: float
590     @param z: The Z size multiplier.
591     """
592
593   def setTimeOffset(timeOffset):
594     """
595     Sets the time offset of the object's animation.
596     @type timeOffset: float
597     @param timeOffset: The new time offset for the object's animation.
598     """
599   
600   def shareFrom(object):
601     """
602     Link data of object specified in the argument with self. This works only
603     if self and the object specified are of the same type.
604     @type object: Blender Object
605     @param object: A Blender Object of the same type.
606     """
607   
608   def select(boolean):
609     """
610     Sets the object's selection state.
611     @type boolean: Integer
612     @param boolean:
613         - 0  - unselected
614         - 1  - selected
615     """
616   
617   def getBoundBox():
618     """
619     Returns the bounding box of this object.  This works for meshes (out of
620     edit mode) and curves.
621     @rtype: list of 8 (x,y,z) float coordinate vectors
622     @return: The coordinates of the 8 corners of the bounding box.
623     """
624
625   def makeDisplayList():
626     """
627     Updates this object's display list.  Blender uses display lists to store
628     already transformed data (like a mesh with its vertices already modified
629     by coordinate transformations and armature deformation).  If the object
630     isn't modified, there's no need to recalculate this data.  This method is
631     here for the *few cases* where a script may need it, like when toggling
632     the "SubSurf" mode for a mesh:
633
634     Example::
635      object = Blender.Object.Get("Sphere")
636      nmesh = object.getData()
637      nmesh.setMode("SubSurf")
638      nmesh.update() # don't forget to update!
639      object.makeDisplayList()
640      Blender.Window.Redraw()
641
642     If you try this example without the line to update the display list, the
643     object will disappear from the screen until you press "SubSurf".
644     @warn: If after running your script objects disappear from the screen or
645        are not displayed correctly, try this method function.  But if the script
646        works properly without it, there's no reason to use it.
647     """
648
649   def getScriptLinks (event):
650     """
651     Get a list with this Object's script links of type 'event'.
652     @type event: string
653     @param event: "FrameChanged", "Redraw" or "Render".
654     @rtype: list
655     @return: a list with Blender L{Text} names (the script links of the given
656         'event' type) or None if there are no script links at all.
657     """
658
659   def clearScriptLinks (links = None):
660     """
661     Delete script links from this Object.  If no list is specified, all
662     script links are deleted.
663     @type links: list of strings
664     @param links: None (default) or a list of Blender L{Text} names.
665     """
666
667   def addScriptLink (text, event):
668     """
669     Add a new script link to this Object.
670     @type text: string
671     @param text: the name of an existing Blender L{Text}.
672     @type event: string
673     @param event: "FrameChanged", "Redraw" or "Render".
674     """
675
676   def makeTrack (tracked, fast = 0):
677     """
678     Make this Object track another.
679     @type tracked: Blender Object
680     @param tracked: the object to be tracked.
681     @type fast: int (bool)
682     @param fast: if zero, the scene hierarchy is updated automatically.  If
683         you set 'fast' to a nonzero value, don't forget to update the scene
684         yourself (see L{Scene.Scene.update}).
685     @note: you also need to clear the rotation (L{setEuler}) of this object
686        if it was not (0,0,0) already.
687     """
688
689   def clearTrack (mode = 0, fast = 0):
690     """
691     Make this Object not track another anymore.
692     @type mode: int (bool)
693     @param mode: if nonzero the matrix transformation used for tracking is kept.
694     @type fast: int (bool)
695     @param fast: if zero, the scene hierarchy is updated automatically.  If
696         you set 'fast' to a nonzero value, don't forget to update the scene
697         yourself (see L{Scene.Scene.update}).
698     """
699
700   def getAllProperties ():
701     """
702     Return a list of properties from this object.
703     @rtype: PyList
704     @return: List of Property objects.
705     """
706
707   def getProperty (name):
708     """
709     Return a properties from this object based on name.
710     @type name: string
711     @param name: the name of the property to get.
712     @rtype: Property object
713     @return: The first property that matches name.
714     """
715
716   def addProperty (name, data, type):
717     """
718     Add a property to object.
719     @type name: string
720     @param name: the property name.
721     @type data: string, int or float
722     @param data: depends on what is passed in:
723       - string:  string type property
724       - int:  integer type property
725       - float:  float type property
726     @type type: string (optional)
727     @param type: can be the following:
728       - 'BOOL'
729       - 'INT'
730       - 'FLOAT'
731       - 'TIME'
732       - 'STRING'
733     @warn: If a type is not declared string data will
734     become string type, int data will become int type
735     and float data will become float type. Override type
736     to declare bool type, and time type.
737     """
738
739   def addProperty (property):
740     """
741     Add a property to object.
742     @type property: Property object
743     @param property: property object to add to object.
744     @warn:  A property object can be added only once to an object'
745     you must remove the property from an object to add it elsewhere.
746     """
747
748   def removeProperty (name):
749     """
750     Remove a property from an object by name.
751     @type property: Property object
752     @param property: property to remove by name.
753     """
754
755   def removeProperty (property):
756     """
757     Remove a property from an object.
758     @type property: Property object
759     @param property: property object to remove.
760     """
761
762   def removeAllProperties():
763     """
764     Removes all properties from an object. 
765     """
766
767   def copyAllPropertiesTo (object):
768     """
769     Copies all properties from one object to another.
770     @type object: Object object
771     @param object: Object that will recieve the properties.
772     """
773
774   def setDupliVerts(data):
775     """
776     Set state of DupliVerts anim propertie
777     @param data: boolean value True, False, 0 or not 0.
778     """
779
780 class Property:
781   """
782   The Property object
783   ===================
784     This property gives access to object property data in Blender.
785     @ivar name: The property name.
786     @ivar data: Data for this property. Depends on property type.
787     @ivar type: The property type.
788     @warn:  Comparisons between properties will only be true when
789     both the name and data pairs are the same.
790   """
791
792   def getName ():
793     """
794     Get the name of this property.
795     @rtype: string
796     @return: The property name.
797     """
798
799   def setName (name):
800     """
801     Set the name of this property.
802     @type name: string
803     @param name: The new name of the property
804     """
805
806   def getData ():
807     """
808     Get the data for this property.
809     @rtype: string, int, or float
810     """
811
812   def setData (data):
813     """
814     Set the data for this property.
815     @type data: string, int, or float
816     @param data: The data to set for this property.
817     @warn:  See object.setProperty().  Changing data
818     which is of a different type then the property is 
819     set to (i.e. setting an int value to a float type'
820     property) will change the type of the property 
821     automatically.
822     """
823
824   def getType ():
825     """
826     Get the type for this property.
827     @rtype: string
828     """
829
830
831   def getPIStregth():
832     """
833     Get the Object's Particle Interaction Strength.
834     @rtype: float
835     """
836
837   def setPIStrength(strength):
838     """
839     Set the the Object's Particle Interaction Strength.
840     Values between -1000.0 to 1000.0
841     @rtype: PyNone
842     @type strength: float
843     @param strength: the Object's Particle Interaction New Strength.
844     """
845
846   def getPIFalloff():
847     """
848     Get the Object's Particle Interaction falloff.
849     @rtype: float
850     """
851
852   def setPIFalloff(falloff):
853     """
854     Set the the Object's Particle Interaction falloff.
855     Values between 0 to 10.0
856     @rtype: PyNone
857     @type falloff: float
858     @param falloff: the Object's Particle Interaction New falloff.
859     """    
860     
861   def getPIMaxDist():
862     """
863     Get the Object's Particle Interaction MaxDist.
864     @rtype: float
865     """
866
867   def setPIMaxDist(MaxDist):
868     """
869     Set the the Object's Particle Interaction MaxDist.
870     Values between 0 to 1000.0
871     @rtype: PyNone
872     @type MaxDist: float
873     @param MaxDist: the Object's Particle Interaction New MaxDist.
874     """    
875     
876   def getPIType():
877     """
878     Get the Object's Particle Interaction Type.
879     @rtype: int
880     """
881
882   def setPIType(type):
883     """
884     Set the the Object's Particle Interaction type.
885     Use Module Constants
886       - NONE
887       - WIND
888       - FORCE
889       - VORTEX
890       - MAGNET
891     @rtype: PyNone
892     @type type: int
893     @param type: the Object's Particle Interaction Type.
894     """   
895  
896   def getPIUseMaxDist():
897     """
898     Get the Object's Particle Interaction if using MaxDist.
899     @rtype: int
900     """
901
902   def setPIUseMaxDist(status):
903     """
904     Set the the Object's Particle Interaction MaxDist.
905     0 = Off, 1 = on
906     @rtype: PyNone
907     @type status: int
908     @param status: the new status
909     """ 
910
911   def getPIDeflection():
912     """
913     Get the Object's Particle Interaction Deflection Setting.
914     @rtype: int
915     """
916
917   def setPIDeflection(status):
918     """
919     Set the the Object's Particle Interaction Deflection Setting.
920     0 = Off, 1 = on
921     @rtype: PyNone
922     @type status: int
923     @param status: the new status
924     """ 
925
926   def getPIPermf():
927     """
928     Get the Object's Particle Interaction Permiability.
929     @rtype: float
930     """
931
932   def setPIPerm(perm):
933     """
934     Set the the Object's Particle Interaction Permiability.
935     Values between 0 to 10.0
936     @rtype: PyNone
937     @type perm: float
938     @param perm: the Object's Particle Interaction New Permiability.
939     """    
940
941   def getPIRandomDamp():
942     """
943     Get the Object's Particle Interaction RandomDamp.
944     @rtype: float
945     """
946
947   def setPIRandomDamp(damp):
948     """
949     Set the the Object's Particle Interaction RandomDamp.
950     Values between 0 to 10.0
951     @rtype: PyNone
952     @type damp: float
953     @param damp: the Object's Particle Interaction New RandomDamp.
954     """    
955
956   def getPISurfaceDamp():
957     """
958     Get the Object's Particle Interaction SurfaceDamp.
959     @rtype: float
960     """
961
962   def setPISurfaceDamp(damp):
963     """
964     Set the the Object's Particle Interaction SurfaceDamp.
965     Values between 0 to 10.0
966     @rtype: PyNone
967     @type damp: float
968     @param damp: the Object's Particle Interaction New SurfaceDamp.
969     """    
970
971
972   def getSBMass():
973     """
974     Get the Object's SB Mass.
975     @rtype: float
976     """
977
978   def setSBMass(mass):
979     """
980     Set the the Object's SB Mass.
981     Values between 0 to 50.0
982     @rtype: PyNone
983     @type mass: float
984     @param mass: the Object's SB New mass.
985     """  
986   
987   def getSBGravity():
988     """
989     Get the Object's SB Gravity.
990     @rtype: float
991     """
992
993   def setSBGravity(grav):
994     """
995     Set the the Object's SB Gravity.
996     Values between 0 to 10.0
997     @rtype: PyNone
998     @type grav: float
999     @param grav: the Object's SB New Gravity.
1000     """ 
1001     
1002   def getSBFriction():
1003     """
1004     Get the Object's SB Friction.
1005     @rtype: float
1006     """
1007
1008   def setSBFriction(frict):
1009     """
1010     Set the the Object's SB Friction.
1011     Values between 0 to 10.0
1012     @rtype: PyNone
1013     @type frict: float
1014     @param frict: the Object's SB New Friction.
1015     """ 
1016
1017   def getSBErrorLimit():
1018     """
1019     Get the Object's SB ErrorLimit.
1020     @rtype: float
1021     """
1022
1023   def setSBErrorLimit(err):
1024     """
1025     Set the the Object's SB ErrorLimit.
1026     Values between 0 to 1.0
1027     @rtype: PyNone
1028     @type err: float
1029     @param err: the Object's SB New ErrorLimit.
1030     """ 
1031     
1032   def getSBGoalSpring():
1033     """
1034     Get the Object's SB GoalSpring.
1035     @rtype: float
1036     """
1037
1038   def setSBGoalSpring(gs):
1039     """
1040     Set the the Object's SB GoalSpring.
1041     Values between 0 to 0.999
1042     @rtype: PyNone
1043     @type gs: float
1044     @param gs: the Object's SB New GoalSpring.
1045     """ 
1046     
1047   def getSBGoalFriction():
1048     """
1049     Get the Object's SB GoalFriction.
1050     @rtype: float
1051     """
1052
1053   def setSBGoalFriction(gf):
1054     """
1055     Set the the Object's SB GoalFriction.
1056     Values between 0 to 10.0
1057     @rtype: PyNone
1058     @type gf: float
1059     @param gf: the Object's SB New GoalFriction.
1060     """ 
1061     
1062   def getSBMinGoal():
1063     """
1064     Get the Object's SB MinGoal.
1065     @rtype: float
1066     """
1067
1068   def setSBMinGoal(mg):
1069     """
1070     Set the the Object's SB MinGoal.
1071     Values between 0 to 1.0
1072     @rtype: PyNone
1073     @type mg: float
1074     @param mg: the Object's SB New MinGoal.
1075     """ 
1076     
1077   def getSBMaxGoal():
1078     """
1079     Get the Object's SB MaxGoal.
1080     @rtype: float
1081     """
1082
1083   def setSBMaxGoal(mg):
1084     """
1085     Set the the Object's SB MaxGoal.
1086     Values between 0 to 1.0
1087     @rtype: PyNone
1088     @type mg: float
1089     @param mg: the Object's SB New MaxGoal.
1090     """ 
1091     
1092   def getSBInnerSpring():
1093     """
1094     Get the Object's SB InnerSpring.
1095     @rtype: float
1096     """
1097
1098   def setSBInnerSpring(sprr):
1099     """
1100     Set the the Object's SB InnerSpring.
1101     Values between 0 to 0.999
1102     @rtype: PyNone
1103     @type sprr: float
1104     @param sprr: the Object's SB New InnerSpring.
1105     """ 
1106     
1107   def getSBInnerSpringFriction():
1108     """
1109     Get the Object's SB InnerSpringFriction.
1110     @rtype: float
1111     """
1112
1113   def setSBInnerSpringFriction(sprf):
1114     """
1115     Set the the Object's SB InnerSpringFriction.
1116     Values between 0 to 10.0
1117     @rtype: PyNone
1118     @type sprf: float
1119     @param sprf: the Object's SB New InnerSpringFriction.
1120     """ 
1121     
1122   def getSBDefaultGoal():
1123     """
1124     Get the Object's SB DefaultGoal.
1125     @rtype: float
1126     """
1127
1128   def setSBDefaultGoal(goal):
1129     """
1130     Set the the Object's SB DefaultGoal.
1131     Values between 0 to 1.0
1132     @rtype: PyNone
1133     @type goal: float
1134     @param goal: the Object's SB New DefaultGoal.
1135     """   
1136
1137   def getSBEnable():
1138     """
1139     Get if the Object's SB is Enabled.
1140     @rtype: int
1141     """
1142
1143   def setSBEnable(switch):
1144     """
1145     Enable / Disable Softbodies.
1146     1: on
1147     0: off
1148     @rtype: PyNone
1149     @type switch: int
1150     @param switch: the Object's SB New Enable Value.
1151     """  
1152
1153   def getSBPostDef():
1154     """
1155     get Softbodies PostDef option
1156     @rtype: int
1157     """
1158
1159   def setSBPostDef(switch):
1160     """
1161     Enable / Disable Softbodies PostDef option
1162     1: on
1163     0: off
1164     @rtype: PyNone
1165     @type switch: int
1166     @param switch: the Object's SB New PostDef Value.
1167     """ 
1168
1169   def getSBUseGoal():
1170     """
1171     get Softbodies UseGoal option
1172     @rtype: int
1173     """
1174
1175   def setSBUseGoal(switch):
1176     """
1177     Enable / Disable Softbodies UseGoal option
1178     1: on
1179     0: off
1180     @rtype: PyNone
1181     @type switch: int
1182     @param switch: the Object's SB New UseGoal Value.
1183     """ 
1184   def getSBUseEdges():
1185     """
1186     get Softbodies UseEdges option
1187     @rtype: int
1188     """
1189
1190   def setSBUseEdges(switch):
1191     """
1192     Enable / Disable Softbodies UseEdges option
1193     1: on
1194     0: off
1195     @rtype: PyNone
1196     @type switch: int
1197     @param switch: the Object's SB New UseEdges Value.
1198     """ 
1199     
1200   def getSBStiffQuads():
1201     """
1202     get Softbodies StiffQuads option
1203     @rtype: int
1204     """
1205
1206   def setSBStiffQuads(switch):
1207     """
1208     Enable / Disable Softbodies StiffQuads option
1209     1: on
1210     0: off
1211     @rtype: PyNone
1212     @type switch: int
1213     @param switch: the Object's SB New StiffQuads Value.
1214     """