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