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