=IDProperties Python update=
[blender.git] / source / blender / python / api2_2x / doc / Material.py
1 # Blender.Material module and the Material PyObject
2
3 """
4 The Blender.Material submodule.
5
6 B{New}: access to shader data.
7
8 Material 
9 ========
10
11 This module provides access to B{Material} objects in Blender.
12
13 Example::
14   import Blender
15   from Blender import Material
16   mat = Material.New('newMat')          # create a new Material called 'newMat'
17   print mat.rgbCol                      # print its rgb color triplet sequence
18   mat.rgbCol = [0.8, 0.2, 0.2]          # change its color
19   mat.setAlpha(0.2)                     # mat.alpha = 0.2 -- almost transparent
20   mat.emit = 0.7                        # equivalent to mat.setEmit(0.8)
21   mat.mode |= Material.Modes.ZTRANSP    # turn on Z-Buffer transparency
22   mat.setName('RedBansheeSkin')         # change its name
23   mat.setAdd(0.8)                       # make it glow
24   mat.setMode('Halo')                   # turn 'Halo' "on" and all others "off"
25
26 @type Modes: readonly dictionary
27 @var Modes: The available Material Modes.
28
29   B{Note}: Some Modes are only available when the 'Halo' mode is I{off} and
30   others only when it is I{on}.  But these two subsets of modes share the same
31   numerical values in their Blender C #defines. So, for example, if 'Halo' is
32   on, then 'NoMist' is actually interpreted as 'HaloShaded'.  We marked all
33   such possibilities in the Modes dict below: each halo-related mode that
34   uses an already taken value is preceded by "+" and appear below the normal
35   mode which also uses that value.
36
37     - TRACEABLE    - Make Material visible for shadow lamps.
38     - SHADOW       - Enable Material for shadows.
39     - SHADOWBUF    - Enable Material to cast shadows with shadow buffers.
40     - SHADELESS    - Make Material insensitive to light or shadow.
41     - WIRE         - Render only the edges of faces.
42     - VCOL_LIGHT   - Add vertex colors as extra light.
43     - VCOL_PAINT   - Replace basic colors with vertex colors.
44     - HALO         - Render as a halo.
45     - ZTRANSP      - Z-buffer transparent faces.
46     - ZINVERT      - Render with inverted Z-buffer.
47     - + HALORINGS  - Render rings over the basic halo.
48     - ENV          - Do not render Material.
49     - + HALOLINES  - Render star shaped lines over the basic halo.
50     - ONLYSHADOW   - Let alpha be determined on the degree of shadow.
51     - + HALOXALPHA - Use extreme alpha.
52     - TEXFACE      - UV-Editor assigned texture gives color and texture info for faces.
53     - + HALOSTAR   - Render halo as a star.
54     - NOMIST       - Set the Material insensitive to mist.
55     - + HALOSHADED - Let halo receive light.
56     - HALOTEX      - Give halo a texture.
57     - HALOPUNO     - Use the vertex normal to specify the dimension of the halo.
58     - HALOFLARE    - Render halo as a lens flare.
59     - RAYMIRROR    - Enables raytracing for mirror reflection rendering.
60     - RAYTRANSP    - Enables raytracing for transparency rendering.
61     - RAYBIAS      - Prevent ray traced shadow errors with Phong interpolated normals.
62     - RAMPCOL      - Status of colorband ramp for Material's diffuse color.  This is a read-only bit.
63     - RAMPSPEC     - Status of colorband ramp for Material's specular color.  This is a read-only bit.
64     - TANGENTSTR   - Uses direction of strands as normal for tangent-shading.
65     - TRANSPSHADOW - Lets Material receive transparent shadows based on material color and alpha.
66     - FULLOSA      - Force rendering of all OSA samples.
67     - TANGENT_V    - Use the tangent vector in V direction for shading
68     - NMAP_TS      - Tangent space normal mapping.
69     - GROUP_EXCLUSIVE   - Light from this group even if the lights are on a hidden Layer.
70
71 @type Shaders: readonly dictionary
72 @var Shaders: The available Material Shaders.
73     - DIFFUSE_LAMBERT    - Make Material use the lambert diffuse shader.
74     - DIFFUSE_ORENNAYAR       - Make Material use the Oren-Nayer diffuse shader.
75     - DIFFUSE_TOON    - Make Material use the toon diffuse shader.
76     - DIFFUSE_MINNAERT  - Make Material use the minnaert diffuse shader.
77     - SPEC_COOKTORR   - Make Material use the Cook-Torr specular shader.
78     - SPEC_PHONG   - Make Material use the Phong specular shader.
79     - SPEC_BLINN         - Make Material use the Blinn specular shader.
80     - SPEC_TOON      - Make Material use the toon specular shader.
81     - SPEC_WARDISO      - Make Material use the Ward-iso specular shader.
82 """
83
84 def New (name = 'Mat'):
85   """
86   Create a new Material object.
87   @type name: string
88   @param name: The Material name.
89   @rtype: Blender Material
90   @return: The created Material object.
91   """
92
93 def Get (name = None):
94   """
95   Get the Material object(s) from Blender.
96   @type name: string
97   @param name: The name of the Material.
98   @rtype: Blender Material or a list of Blender Materials
99   @return: It depends on the 'name' parameter:
100     - (name): The Material object with the given name;
101     - ():   A list with all Material objects in the current scene.
102   """
103
104 class Material:
105   """
106   The Material object
107   ===================
108    This object gives access to Materials in Blender.
109   @ivar properties: Returns an L{IDGroup<IDProp.IDGroup>} reference to this 
110   materials's ID Properties.
111   @ivar B:  Diffuse color (L{rgbCol}) blue component.
112   Value is clamped to the range [0.0,1.0].
113   @type B:  float
114   @ivar G:  Diffuse color (L{rgbCol}) green component.
115   Value is clamped to the range [0.0,1.0].
116   @type G:  float
117   @ivar IOR:  Angular index of refraction for raytrace.
118   Value is clamped to the range [1.0,3.0].
119   @type IOR:  float
120   @ivar R:  Diffuse color (L{rgbCol}) red component.
121   Value is clamped to the range [0.0,1.0].
122   @type R:  float
123   @ivar add:  Strength of the add effect.
124   Value is clamped to the range [0.0,1.0].
125   @type add:  float
126   @ivar alpha:  Alpha (translucency) component of the material.
127   Value is clamped to the range [0.0,1.0].
128   @type alpha:  float
129   @ivar shadAlpha:  Shadow Alpha for irregular shadow buffer.
130   Value is clamped to the range [0.0,1.0].
131   @type shadAlpha:  float
132   @ivar amb:  Amount of global ambient color material receives.
133   Value is clamped to the range [0.0,1.0].
134   @type amb:  float
135   @ivar diffuseDarkness:  Material's diffuse darkness ("Minnaert" diffuse shader only).
136   Value is clamped to the range [0.0,2.0].
137   @type diffuseDarkness:  float
138   @ivar diffuseShader:  Diffuse shader type (see L{Shaders}).
139   Value must be in the range [0,3].
140   @type diffuseShader:  int
141   @ivar diffuseSize:  Material's diffuse area size ("Toon" diffuse shader only).
142   Value is clamped to the range [0.0,3.14].
143   @type diffuseSize:  float
144   @ivar diffuseSmooth:  Material's diffuse area smoothing ("Toon" diffuse shader only).
145   Value is clamped to the range [0.0,1.0].
146   @type diffuseSmooth:  float
147   @ivar emit:  Amount of light the material emits.
148   Value is clamped to the range [0.0,1.0].
149   @type emit:  float
150   @ivar filter:  Amount of filtering when transparent raytrace is enabled.
151   Value is clamped to the range [0.0,1.0].
152   @type filter:  float
153   @ivar flareBoost:  Flare's extra strength.
154   Value is clamped to the range [0.1,1.0].
155   @type flareBoost:  float
156   @ivar flareSeed:  Offset in the flare seed table.
157   Value is clamped to the range [1,255].
158   @type flareSeed:  int
159   @ivar flareSize:  Ratio of flare size to halo size.
160   Value is clamped to the range [0.1,25.0].
161   @type flareSize:  float
162   @ivar fresnelDepth:  Power of Fresnel for mirror reflection.
163   Value is clamped to the range [0.0,5.0].
164   @type fresnelDepth:  float
165   @ivar fresnelDepthFac:  Blending factor for Fresnel mirror.
166   Value is clamped to the range [1.0,5.0].
167   @type fresnelDepthFac:  float
168   @ivar fresnelTrans:  Power of Fresnel for transparency.
169   Value is clamped to the range [0.0,5.0].
170   @type fresnelTrans:  float
171   @ivar fresnelTransFac:  Blending factor for Fresnel transparency.
172   Value is clamped to the range [1.0,5.0].
173   @type fresnelTransFac:  float
174   @ivar rbFriction:  Rigid Body Friction coefficient.
175   Value is clamped to the range [0.0,100.0].
176   @type rbFriction:  float
177   @ivar rbRestitution:  Rigid Body Friction restitution.
178   Value is clamped to the range [0.0,1.0].
179   @type rbRestitution:  float
180   @ivar haloSeed:  Randomizes halo ring dimension and line location.
181   Value is clamped to the range [1,255].
182   @type haloSeed:  int
183   @ivar haloSize:  Dimension of the halo.
184   Value is clamped to the range [0.0,100.0].
185   @type haloSize:  float
186   @ivar hard:  Hardness of the specularity.
187   Value is clamped to the range [1,255].
188   @type hard:  int
189   @ivar ipo:  Material Ipo data.
190   Contains the Ipo if one is assigned to the object, None otherwise.  Setting to None clears the current Ipo.
191   @type ipo:  Blender Ipo
192   @ivar mirB:  Mirror color (L{mirCol}) blue component.
193   Value is clamped to the range [0.0,1.0].
194   @type mirB:  float
195   @ivar mirCol:  Mirror RGB color triplet.
196   Components are clamped to the range [0.0,1.0].
197   @type mirCol:  list of 3 floats
198   @ivar mirG:  Mirror color (L{mirCol}) green component.
199   Value is clamped to the range [0.0,1.0].
200   @type mirG:  float
201   @ivar mirR:  Mirror color (L{mirCol}) red component.
202   Value is clamped to the range [0.0,1.0].
203   @type mirR:  float
204   @ivar mode:  Mode mode bitfield.  See L{the Modes dictionary<Modes>} keys and descriptions.
205   @type mode:  int
206   @ivar nFlares:  Number of subflares with halo.
207   Value is clamped to the range [1,32].
208   @type nFlares:  int
209   @ivar nLines:  Number of star-shaped lines with halo.
210   Value is clamped to the range [0,250].
211   @type nLines:  int
212   @ivar nRings:  Number of rings with halo.
213   Value is clamped to the range [0,24].
214   @type nRings:  int
215   @ivar nStars:  Number of star points with halo.
216   Value is clamped to the range [3,50].
217   @type nStars:  int
218   @ivar name:  Material data name.
219   @type name:  str
220   @ivar oopsLoc: Material OOPs location.  Returns None if material not found in list.
221   @type oopsLoc:  list of 2 floats
222   @ivar oopsSel:  Material OOPs selection flag.
223   Value must be in the range [0,1].
224   @type oopsSel:  int
225   @ivar rayMirr:  Mirror reflection amount for raytrace.
226   Value is clamped to the range [0.0,1.0].
227   @type rayMirr:  float
228   @ivar rayMirrDepth:  Amount of raytrace inter-reflections.
229   Value is clamped to the range [0,10].
230   @type rayMirrDepth:  int
231   @ivar ref:   Amount of reflections (for shader).
232   Value is clamped to the range [0.0,1.0].
233   @type ref:  float
234   @ivar refracIndex:  Material's Index of Refraction (applies to the "Blinn" Specular Shader only.
235   Value is clamped to the range [1.0,10.0].
236   @type refracIndex:  float
237   @ivar rgbCol:  Diffuse RGB color triplet.
238   Components are clamped to the range [0.0,1.0].
239   @type rgbCol:  list of 3 floats
240   @ivar rms: Material's surface slope standard deviation ("WardIso" specular shader only).
241   Value is clamped to the range [0.0,0.4].
242   @type rms:  float
243   @ivar roughness:  Material's roughness ("Oren Nayar" diffuse shader only).
244   Value is clamped to the range [0.0,3.14].
245   @type roughness:  float
246   @ivar spec:  Degree of specularity.
247   Value is clamped to the range [0.0,2.0].
248   @type spec:  float
249   @ivar specB:  Specular color (L{specCol}) blue component.
250   Value is clamped to the range [0.0,1.0].
251   @type specB:  float
252   @ivar specCol:  Specular RGB color triplet.
253   Components are clamped to the range [0.0,1.0].
254   @type specCol:  list of 3 floats
255   @ivar specG:  Specular color (L{specCol}) green component.
256   Value is clamped to the range [0.0,1.0].
257   @type specG:  float
258   @ivar specR:  Specular color (L{specCol}) red component.
259   Value is clamped to the range [0.0,1.0].
260   @type specR:  float
261   @ivar specShader: Specular shader type.  See L{Shaders}.
262   Value must be in the range [0,4].
263   @type specShader:  int
264   @ivar specSize:  Material's specular area size ("Toon" specular shader only).
265   Value is clamped to the range [0.0,1.53].
266   @type specSize:  float
267   @ivar specSmooth:  Sets the smoothness of specular toon area.
268   Value is clamped to the range [0.0,1.0].
269   @type specSmooth:  float
270   @ivar specTransp:  Makes specular areas opaque on transparent materials.
271   Value is clamped to the range [0.0,1.0].
272   @type specTransp:  float
273   @ivar subSize:   Dimension of subflares, dots and circles.
274   Value is clamped to the range [0.1,25.0].
275   @type subSize:  float
276   @ivar transDepth:  calculated maximal.  Amount of refractions for raytrace.
277   Value is clamped to the range [0,10].
278   @type transDepth:  int
279   @ivar translucency:  Amount of diffuse shading of the back side.
280   Value is clamped to the range [0.0,1.0].
281   @type translucency:  float
282   @ivar users:  Number of material users.
283   @type users:  int
284   @ivar fakeUser: The fake user status.
285     enabling this will keep it in the blend even if there are no users.
286   @type fakeUser: bool
287   @ivar zOffset:  Artificial offset in the Z buffer (for Ztransp option).
288   Value is clamped to the range [0.0,10.0].
289   @type zOffset:  float
290   @ivar lightGroup:  Limits lights that affect this material to a group.
291   @type lightGroup:  Group or None
292   @warning: Most member variables assume values in some [Min, Max] interval.
293    When trying to set them, the given parameter will be clamped to lie in
294    that range: if val < Min, then val = Min, if val > Max, then val = Max.
295   """
296
297   def getName():
298     """
299     Get the name of this Material object.
300     @rtype: string
301     """
302
303   def setName(name):
304     """
305     Set the name of this Material object.
306     @type name: string
307     @param name: The new name.
308     """
309
310   def getIpo():
311     """
312     Get the Ipo associated with this material, if any.
313     @rtype: Ipo
314     @return: the wrapped ipo or None.
315     """
316
317   def setIpo(ipo):
318     """
319     Link an ipo to this material.
320     @type ipo: Blender Ipo
321     @param ipo: a material type ipo.
322     """
323
324   def clearIpo():
325     """
326     Unlink the ipo from this material.
327     @return: True if there was an ipo linked or False otherwise.
328     """
329
330   def insertIpoKey(keytype):
331     """
332     Inserts keytype values in material ipo at curframe. Uses module constants.
333     @type keytype: Integer
334     @param keytype:
335            -RGB
336            -ALPHA
337            -HALOSIZE
338            -MODE
339            -ALLCOLOR
340            -ALLMIRROR
341            -OFS
342            -SIZE
343            -ALLMAPPING
344     @return: py_none
345     """
346
347   def getMode():
348     """
349     Get this Material's mode flags.
350     @rtype: int
351     @return: B{OR'ed value}. Use the Modes dictionary to check which flags
352         are 'on'.
353
354         Example::
355           import Blender
356           from Blender import Material
357           flags = mymat.getMode()
358           if flags & Material.Modes['HALO']:
359             print "This material is rendered as a halo"
360           else:
361             print "Not a halo"
362     """
363
364   def setMode(param, stringN=None):
365     """
366     Set this Material's mode flags. Up to 22 mode strings can be given
367     and specify the modes which are turned 'on'.  Those not provided are 
368     turned 'off', so mat.setMode() -- without arguments -- turns off all 
369     mode flags for Material mat.  Valid mode strings are "Traceable", 
370     "Shadow", "Shadeless", "Wire", "VColLight", "VColPaint", "Halo",
371     "ZTransp", "ZInvert", "HaloRings", "HaloLines", "OnlyShadow",
372     "HaloXAlpha", "HaloStar", "TexFace", "HaloTex", "HaloPuno", "NoMist",
373     "HaloShaded", "HaloFlare", "Radio", "RayMirr", "ZTransp", "RayTransp",
374     "Env"
375
376     An integer can also be given, which directly sets the mode flag.  The
377     Modes dictionary keys can (and should) be added or ORed to specify
378     which modes to turn 'on'.  The value returned from getMode() can
379     also be modified and input to this method.
380
381     @type param: string, None or int
382     @param param: A mode value (int) or flag (string).  Can also be None.
383     @type stringN: string
384     @param stringN: A mode flag. Up to 22 flags can be set at the same time.
385     """
386
387   def getRGBCol():
388     """
389     Get the rgb color triplet sequence.
390     @rtype: list of 3 floats
391     @return: [r, g, b]
392     """
393
394   def setRGBCol(rgb = None):
395     """
396     Set the rgb color triplet sequence.  If B{rgb} is None, set the color to black.
397     @type rgb: three floats or a list of three floats
398     @param rgb: The rgb color values in [0.0, 1.0] as:
399         - a list of three floats: setRGBCol ([r, g, b]) B{or}
400         - three floats as separate parameters: setRGBCol (r,g,b).
401     """
402  
403   def getSpecCol():
404     """
405     Get the specular color triplet sequence.
406     @rtype: list of 3 floats
407     @return: [specR, specG, specB]
408     """
409
410   def setSpecCol(rgb = None):
411     """
412     Set the specular color triplet sequence.  If B{rgb} is None, set the color to black.
413     @type rgb: three floats or a list of three floats
414     @param rgb: The rgb color values in [0.0, 1.0] as:
415         - a list of three floats: setSpecCol ([r, g, b]) B{or}
416         - three floats as separate parameters: setSpecCol (r,g,b).
417     """
418
419   def getMirCol():
420     """
421     Get the mirror color triplet sequence.
422     @rtype: list of 3 floats
423     @return: [mirR, mirG, mirb]
424     """
425
426   def setMirCol(rgb = None):
427     """
428     Set the mirror color triplet sequence.  If B{rgb} is None, set the color to black.
429     @type rgb: three floats or a list of three floats
430     @param rgb: The rgb color values in [0.0, 1.0] as:
431         - a list of three floats: setMirCol ([r, g, b]) B{or}
432         - three floats as separate parameters: setMirCol (r,g,b).
433     """
434
435   def getAlpha():
436     """
437     Get the alpha (transparency) value.
438     @rtype: float
439     """
440
441   def setAlpha(alpha):
442     """
443     Set the alpha (transparency) value.
444     @type alpha: float
445     @param alpha: The new value in [0.0, 1.0].
446     """
447
448   def getAmb():
449     """
450     Get the ambient color blend factor.
451     @rtype: float
452     """
453
454   def setAmb(amb):
455     """
456     Set the ambient color blend factor.
457     @type amb: float
458     @param amb:  The new value in [0.0, 1.0].
459     """
460
461   def getEmit():
462     """
463     Get the emitting light intensity.
464     @rtype: float
465     """
466
467   def setEmit(emit):
468     """
469     Set the emitting light intensity.
470     @type emit: float
471     @param emit: The new value in [0.0, 1.0].
472     """
473
474   def getRef():
475     """
476     Get the reflectivity value.
477     @rtype: float
478     """
479
480   def setRef(ref):
481     """
482     Set the reflectivity value.
483     @type ref: float
484     @param ref: The new value in [0.0, 1.0].
485     """
486
487   def getSpec():
488     """
489     Get the specularity value.
490     @rtype: float
491     """
492
493   def setSpec(spec):
494     """
495     Set the specularity value.
496     @type spec: float
497     @param spec: The new value in [0.0, 2.0].
498     """
499
500   def getSpecTransp():
501     """
502     Get the specular transparency.
503     @rtype: float
504     """
505
506   def setSpecTransp(spectransp):
507     """
508     Set the specular transparency.
509     @type spectransp: float
510     @param spectransp: The new value in [0.0, 1.0].
511     """
512
513   def setSpecShader(specShader):
514     """
515     Set the material's specular shader from one of the shaders in Material.Shaders dict.
516     @type specShader: int
517     @param specShader: The new value in [0, 4].
518     """
519
520   def getSpecShader(specShader):
521     """
522     Get the material's specular shader from one of the shaders in Material.Shaders dict.
523     @rtype: int
524     """
525
526   def setDiffuseShader(diffuseShader):
527     """
528     Set the material's diffuse shader from one of the shaders in Material.Shaders dict.
529     @type diffuseShader: int
530     @param diffuseShader: The new value in [0, 3].
531     """
532
533   def getDiffuseShader():
534     """
535     Get the material's diffuse shader from one of the shaders in Material.Shaders dict.
536     @rtype: int
537     """
538
539   def setRoughness(roughness):
540     """
541     Set the material's roughness (applies to the \"Oren Nayar\" Diffuse Shader only)
542     @type roughness: float
543     @param roughness: The new value in [0.0, 3.14].
544     """
545
546   def getRoughness():
547     """
548     Get the material's roughness (applies to the \"Oren Nayar\" Diffuse Shader only)
549     @rtype: float
550     """
551
552   def setSpecSize(specSize):
553     """
554     Set the material's size of specular area (applies to the \"Toon\" Specular Shader only)
555     @type specSize: float
556     @param specSize: The new value in [0.0, 1.53].
557     """
558
559   def getSpecSize():
560     """
561     Get the material's size of specular area (applies to the \"Toon\" Specular Shader only)
562     @rtype specSize: float
563     """
564
565   def setSpecSize(diffuseSize):
566     """
567     Set the material's size of diffuse area (applies to the \"Toon\" Diffuse Shader only)
568     @type diffuseSize: float
569     @param diffuseSize: The new value in [0.0, 3.14].
570     """
571
572   def getSpecSize():
573     """
574     Get the material's size of diffuse area (applies to the \"Toon\" Diffuse Shader only)
575     @rtype: float
576     """
577
578   def setSpecSmooth(specSmooth):
579     """
580     Set the material's smoothing of specular area (applies to the \"Toon\" Specular Shader only)
581     @type specSmooth: float
582     @param specSmooth: The new value in [0.0, 1.0].
583     """
584
585   def getSpecSmooth():
586     """
587     Get the material's smoothing of specular area (applies to the \"Toon\" Specular Shader only)
588     @rtype: float
589     """
590
591   def setDiffuseSmooth(diffuseSmooth):
592     """
593     Set the material's smoothing of diffuse area (applies to the \"Toon\" Diffuse Shader only)
594     @type diffuseSmooth: float
595     @param diffuseSmooth: The new value in [0.0, 1.0].
596     """
597
598   def getDiffuseSmooth():
599     """
600     Get the material's smoothing of diffuse area (applies to the \"Toon\" Diffuse Shader only)
601     @rtype: float
602     """
603
604   def setDiffuseDarkness(diffuseDarkness):
605     """
606     Set the material's diffuse darkness (applies to the \"Minnaert\" Diffuse Shader only)
607     @type diffuseDarkness: float
608     @param diffuseDarkness: The new value in [0.0, 2.0].
609     """
610
611   def getDiffuseDarkness():
612     """
613     Get the material's diffuse darkness (applies to the \"Minnaert\" Diffuse Shader only)
614     @rtype: float
615     """
616
617   def setRefracIndex(refracIndex):
618     """
619     Set the material's Index of Refraction (applies to the \"Blinn\" Specular Shader only)
620     @type refracIndex: float
621     @param refracIndex: The new value in [1.0, 10.0].
622     """
623
624   def getRefracIndex():
625     """
626     Get the material's Index of Refraction (applies to the \"Blinn\" Specular Shader only)
627     @rtype: float
628     """
629
630   def setRms(rms):
631     """
632     Set the material's standard deviation of surface slope (applies to the \"WardIso\" Specular Shader only)
633     @type rms: float
634     @param rms: The new value in [0.0, 0.4].
635     """
636
637   def getRms():
638     """
639     Get the material's standard deviation of surface slope (applies to the \"WardIso\" Specular Shader only)
640     @rtype: float
641     """
642
643   def setFilter(filter):
644     """
645     Set the material's amount of filtering when transparent raytrace is enabled
646     @type filter: float
647     @param filter: The new value in [0.0, 1.0].
648     """
649
650   def getFilter():
651     """
652     Get the material's amount of filtering when transparent raytrace is enabled
653     @rtype: float
654     """
655
656   def setTranslucency(translucency):
657     """
658     Set the material's amount of diffuse shading of the back side
659     @type translucency: float
660     @param translucency: The new value in [0.0, 1.0].
661     """
662
663   def getTranslucency():
664     """
665     Get the material's amount of diffuse shading of the back side
666     @rtype: float
667     """
668
669   def getAdd():
670     """
671     Get the glow factor.
672     @rtype: float
673     """
674
675   def setAdd(add):
676     """
677     Set the glow factor.
678     @type add: float
679     @param add: The new value in [0.0, 1.0].
680     """
681
682   def getZOffset():
683     """
684     Get the artificial offset for faces with this Material.
685     @rtype: float
686     """
687
688   def setZOffset(zoffset):
689     """
690     Set the artificial offset for faces with this Material.
691     @type zoffset: float
692     @param zoffset: The new value in [0.0, 10.0].
693     """
694
695   def getHaloSize():
696     """
697     Get the halo size.
698     @rtype: float
699     """
700
701   def setHaloSize(halosize):
702     """
703     Set the halo size.
704     @type halosize: float
705     @param halosize: The new value in [0.0, 100.0].
706     """
707
708   def getHaloSeed():
709     """
710     Get the seed for random ring dimension and line location in halos.
711     @rtype: int
712     """
713
714   def setHaloSeed(haloseed):
715     """
716     Set the seed for random ring dimension and line location in halos.
717     @type haloseed: int
718     @param haloseed: The new value in [0, 255].
719     """
720
721   def getFlareSize():
722     """
723     Get the ratio: flareSize / haloSize.
724     @rtype: float
725     """
726
727   def setFlareSize(flaresize):
728     """
729     Set the ratio: flareSize / haloSize.
730     @type flaresize: float
731     @param flaresize: The new value in [0.1, 25.0].
732     """
733
734   def getFlareSeed():
735     """
736     Get flare's offset in the seed table.
737     @rtype: int
738     """
739
740   def setFlareSeed(flareseed):
741     """
742     Set flare's offset in the seed table.
743     @type flareseed: int
744     @param flareseed: The new value in [0, 255].
745     """
746
747   def getFlareBoost():
748     """
749     Get the flare's extra strength.
750     @rtype: float
751     """
752
753   def setFlareBoost(flareboost):
754     """
755     Set the flare's extra strength.
756     @type flareboost: float
757     @param flareboost: The new value in [0.1, 10.0].
758     """
759
760   def getSubSize():
761     """
762     Get the dimension of subflare, dots and circles.
763     @rtype: float
764     """
765
766   def setSubSize(subsize):
767     """
768     Set the dimension of subflare, dots and circles.
769     @type subsize: float
770     @param subsize: The new value in [0.1, 25.0].
771     """
772
773   def getHardness():
774     """
775     Get the hardness of the specularity.
776     @rtype: int
777     """
778
779   def setHardness(hardness):
780     """
781     Set the hardness of the specularity.
782     @type hardness: int
783     @param hardness: The new value in [1, 511].
784     """
785
786   def getNFlares():
787     """
788     Get the number of halo subflares.
789     @rtype: int
790     """
791
792   def setNFlares(nflares):
793     """
794     Set the number of halo subflares.
795     @type nflares: int
796     @param nflares: The new value in [1, 32].
797     """
798
799   def getNStars():
800     """
801     Get the number of points in the halo stars.
802     @rtype: int
803     """
804
805   def setNStars(nstars):
806     """
807     Set the number of points in the halo stars.
808     @type nstars: int
809     @param nstars: The new value in [3, 50].
810     """
811
812   def getNLines():
813     """
814     Get the number of star shaped lines on each halo.
815     @rtype: int
816     """
817
818   def setNLines(nlines):
819     """
820     Set the number of star shaped lines on each halo.
821     @type nlines: int
822     @param nlines: The new value in [0, 250].
823     """
824
825   def getNRings():
826     """
827     Get the number of rings on each halo.
828     @rtype: int
829     """
830
831   def setNRings(nrings):
832     """
833     Set the number of rings on each halo.
834     @type nrings: int
835     @param nrings: The new value in [0, 24].
836     """
837
838   def getRayMirr():
839     """
840     Get amount mirror reflection for raytrace.
841     @rtype: float
842     """
843
844   def setRayMirr(nrmirr):
845     """
846     Set amount mirror reflection for raytrace.
847     @type nrmirr: float
848     @param nrmirr: The new value in [0.0, 1.0].
849     """
850
851   def getRayMirrDepth():
852     """
853     Get amount of inter-reflections calculated maximal.
854     @rtype: int
855     """
856
857   def setRayMirrDepth(nrmirr):
858     """
859     Set amount mirror reflection for raytrace.
860     @type nrmirr: int
861     @param nrmirr: The new value in [0.0, 1.0].
862     """
863
864   def getFresnelMirr():
865     """
866     Get power of Fresnel for mirror reflection.
867     @rtype: float
868     """
869
870   def setFresnelMirr(nrmirr):
871     """
872     Set power of Fresnel for mirror reflection.
873     @type nrmirr: float
874     @param nrmirr: The new value in [0.0, 1.0].
875     """
876
877   def getFresnelMirrFac():
878     """
879     Get the number of Ray Mirror.
880     @rtype: float
881     """
882
883   def setFresnelMirrFac(nrmirr):
884     """
885     Set the number of ray mirror
886     @type nrmirr: float
887     @param nrmirr: The new value in [0.0, 1.0].
888     """
889
890   def getIOR():
891     """
892     Get the angular index of refraction for raytrace.
893     @rtype: float
894     """
895
896   def setIOR(nrmirr):
897     """
898     Set the angular index of refraction for raytrace.
899     @type nrmirr: float
900     @param nrmirr: The new value in [0.0, 1.0].
901     """
902
903   def getTransDepth():
904     """
905     Get amount of refractions calculated maximal.
906     @rtype: int
907     """
908
909   def setTransDepth(nrmirr):
910     """
911     Set amount of refractions calculated maximal.
912     @type nrmirr: int
913     @param nrmirr: The new value in [0.0, 1.0].
914     """
915
916   def getFresnelTrans():
917     """
918     Get power of Fresnel for transparency.
919     @rtype: float
920     """
921
922   def setFresnelTrans(nrmirr):
923     """
924     Set power of Fresnel for transparency.
925     @type nrmirr: float
926     @param nrmirr: The new value in [0.0, 1.0].
927     """
928
929   def getFresnelTransFac():
930     """
931     Get blending factor for Fresnel.
932     @rtype: float
933     """
934
935   def setFresnelTransFac(nrmirr):
936     """
937     Set blending factor for Fresnel.
938     @type nrmirr: float
939     @param nrmirr: The new value in [0.0, 1.0].
940     """
941
942   def setTexture(index, texture, texco, mapto):
943     """
944     Assign a Blender Texture object to slot number 'number'.
945     @type index: int
946     @param index: material's texture index in [0, 9].
947     @type texture: Blender Texture
948     @param texture: a Blender Texture object.
949     @type texco: int
950     @param texco: optional ORed bitflag -- defaults to TexCo.ORCO.  See TexCo var in L{Texture}.
951     @type mapto: int
952     @param mapto: optional ORed bitflag -- defaults to MapTo.COL.  See MapTo var in L{Texture}.
953     """
954
955   def clearTexture(index):
956     """
957     Clear the ith (given by 'index') texture channel of this material.
958     @type index: int
959     @param index: material's texture channel index in [0, 9].
960     """
961
962   def getTextures ():
963     """
964     Get this Material's Texture list.
965     @rtype: list of MTex
966     @return: a list of Blender MTex objects.  None is returned for each empty
967         texture slot.
968     """
969
970   def getScriptLinks (event):
971     """
972     Get a list with this Material's script links of type 'event'.
973     @type event: string
974     @param event: "FrameChanged" or "Redraw".
975     @rtype: list
976     @return: a list with Blender L{Text} names (the script links of the given
977         'event' type) or None if there are no script links at all.
978     """
979
980   def clearScriptLinks (links = None):
981     """
982     Delete script links from this Material.  If no list is specified, all
983     script links are deleted.
984     @type links: list of strings
985     @param links: None (default) or a list of Blender L{Text} names.
986     """
987
988   def addScriptLink (text, event):
989     """
990     Add a new script link to this Material.
991     @type text: string
992     @param text: the name of an existing Blender L{Text}.
993     @type event: string
994     @param event: "FrameChanged" or "Redraw".
995     """