cleanup epydoc errors
[blender.git] / source / blender / python / api2_2x / doc / Texture.py
1 #
2 # Blender.Texture module and the Texture PyType object
3 #
4 # Written by Alex Mole
5
6
7 """
8 The Blender.Texture submodule.
9
10 B{New}:
11         - many new attributes in L{MTex} submodule
12         - new dictionaries (L{Texture.BlendModes}, L{Texture.Mappings}, L{Texture.Proj}) to use for the values of some of the new L{MTex} attributes.
13
14 Texture
15 =======
16
17 This module provides access to B{Texture} objects in Blender.
18
19 Example::
20                 
21         from Blender import Texture,Image,Material
22         
23         footex = Texture.Get('foo')             # get texture named 'foo'
24         footex.setType('Image')                 # make foo be an image texture
25         img = Image.Load('test.png')            # load an image
26         footex.image = img                      # link the image to the texture
27
28         mat = Material.Get('bar')               # get a material
29         mtextures = mat.getTextures()           # get a list of the MTex objects
30         for mtex in mtextures:
31                 if mtex.tex.type == Texture.Types.IMAGE: 
32                         print mtex.tex.image.filename   # print the filenames of all the
33                                                                                         # images in textures linked to "bar"
34
35         mat.setTexture(0, footex)               # set the material's first texture
36                                                                                         # to be our texture
37
38
39 @type Types: readonly dictionary
40 @var Types: The available texture types:
41                 - NONE -  No texture
42                 - CLOUDS - Clouds texture
43                 - WOOD - Wood texture
44                 - MARBLE - Marble texture
45                 - MAGIC - Magic texture
46                 - BLEND - Blend texture
47                 - STUCCI - Stucci texture
48                 - NOISE - Noise texture
49                 - IMAGE - Image texture
50                 - PLUGIN - Plugin texture
51                 - ENVMAP - EnvMap texture
52                 - MUSGRAVE - Musgrave procedural texture
53                 - VORONOI - Voronoi procedural texture
54                 - DISTNOISE - Distorted noise texture
55
56 @type Flags: readonly dictionary
57 @var Flags: The available Texture flags:
58                 - FLIPBLEND - Flips the blend texture's X and Y directions
59                 - NEGALPHA - Reverse the alpha value
60                 - CHECKER_ODD - Fill the "odd" checkerboard tiles
61                 - CHECKER_EVEN - Fill the "even" checkerboard tiles
62                 - COLORBAND - Enable colorband for this texture
63         - PREVIEW_ALPHA - Show alpha in preview
64         - REPEAT_XMIR - Mirrors X direction repeat
65         - REPEAT_YMIR - Mirrors Y direction repeat
66
67 @type ImageFlags: readonly dictionary
68 @var ImageFlags: The available image flags for Texture.imageFlags:
69                 - INTERPOL - Interpolate pixels of the image
70                 - USEALPHA - Use the alpha layer
71                 - MIPMAP - Enable mipmapping [cannot be used with FIELDS]
72                 - FIELDS - Work with field images [cannot be used with MIPMAP]
73                 - ROT90 - Rotate the image 90 degrees when rendering
74                 - CALCALPHA - Calculate an alpha from the RGB
75                 - STFIELD - Denotes this is a standard field
76                 - MOVIE - Use a movie for an image
77                 - CYCLIC - Repeat animation image
78                 - ANTI - Use anti-aliasing
79                 - NORMALMAP - Use image RGB values for normal mapping
80
81 @type ExtendModes: readonly dictionary
82 @var ExtendModes: Extend, clip, repeat or checker modes for image textures
83                 - EXTEND - Extends the color of the edge
84                 - CLIP - Return alpha 0.0 outside image
85                 - CLIPCUBE - Return alpha 0.0 around cube-shaped area around image
86                 - REPEAT - Repeat image vertically and horizontally
87                 - CHECKER - Repeat image in checkerboard pattern
88
89 @type Noise: readonly dictionary
90 @var Noise: Noise types and bases.  SINE, SAW and TRI are only used for
91                 marble and wood textures, while the remainder are used for all textures
92                 which has a noise basis function (for these textures, the constant should
93                 be used with the second noise basis setting).
94                         - SINE - Produce bands using sine wave (marble, wood textures)
95                         - SAW - Produce bands using saw wave (marble, wood textures)
96                         - TRI - Produce bands using triangle wave (marble, wood textures)
97                         - BLENDER - Original Blender algorithm
98                         - PERLIN - Ken Perlin's original (1985) algorithm
99                         - IMPROVEDPERLIN - Ken Perlin's newer (2002) algorithm
100                         - VORONOIF1 - none
101                         - VORONOIF2 - none
102                         - VORONOIF3 - none
103                         - VORONOIF4 - none
104                         - VORONOIF2F1 - none
105                         - VORONOICRACKLE - none
106                         - CELLNOISE - Steven Worley's cellular basis algorithm (1996)
107
108 @type BlendModes: readonly dictionary
109 @var BlendModes: The available texture blending modes:
110                 - MIX - mix texture with value
111                 - MULTIPLY - multiply texture with value
112                 - ADD - add texture to value
113                 - SUBTRACT - subtract texture from value
114                 - DIVIDE - divide value by texture
115                 - DARKEN - replace value with texture if texture is darker
116                 - DIFFERENCE - difference of texture from value
117                 - LIGHTEN - replace value with texture if texture is lighter
118                 - SCREEN - 'screen' mode
119
120 @type Mappings: readonly dictionary
121 @var Mappings: The available 2D texture coordinate mappings for images:
122                 - FLAT - flat projection
123                 - CUBE - cube projection
124                 - TUBE - cylindrical projection
125                 - SPHERE - spherical projection
126
127 @type Proj: readonly dictionary
128 @var Proj: The available projections per axis:
129                 - NONE - axis isn't used
130                 - X - axis is used as final x axis
131                 - Y - axis is used as final y axis
132                 - Z - axis is used as final z axis
133
134 @type STypes: readonly dictionary
135 @var STypes: Texture-type specific data. Depending on the value of
136                 Texture.type, certain groups will make sense. For instance, when a texture 
137                 is of type CLOUD, the CLD_xxx stypes can be used. Note that the first 
138                 value in each group is the default.
139                                 1. Clouds type
140                                                 - CLD_DEFAULT - Monochromatic noise
141                                                 - CLD_COLOR - RGB noise
142                                 2. Wood type
143                                                 - WOD_BANDS - Use standard wood texture
144                                                 - WOD_RINGS - Use wood rings
145                                                 - WOD_BANDNOISE - Add noise to standard wood
146                                                 - WOD_RINGNOISE - Add noise to rings
147                                 3. Magic type
148                                                 - MAG_DEFAULT - Magic has no STypes
149                                 4. Marble type
150                                                 - MBL_SOFT - Use soft marble
151                                                 - MBL_SHARP - Use more clearly defined marble
152                                                 - MBL_SHARPER - Use very clearly dfefined marble
153                                 5. Blend type
154                                                 - BLN_LIN - Use a linear progression
155                                                 - BLN_QUAD - Use a quadratic progression
156                                                 - BLN_EASE - Uses a more complicated blend function
157                                                 - BLN_DIAG - Use a diagonal progression
158                                                 - BLN_SPHERE - Use a progression with the shape of a sphere
159                                                 - BLN_HALO - Use a quadratic progression with the shape of a sphere
160                                 6. Stucci type
161                                                 - STC_PLASTIC - Standard stucci
162                                                 - STC_WALLIN - Creates dimples
163                                                 - STC_WALLOUT - Creates ridges
164                                 7. Noise type
165                                                 - NSE_DEFAULT - Noise has no STypes
166                                 8. Image type
167                                                 - IMG_DEFAULT - Image has no STypes
168                                 9. Plugin type
169                                                 - PLG_DEFAULT - Plugin has no STypes
170                                 10. Envmap type
171                                                 - ENV_STATIC - Calculate map only once
172                                                 - ENV_ANIM - Calculate map each rendering
173                                                 - ENV_LOAD - Load map from disk
174                                 11. Musgrave type
175                                                 - MUS_MFRACTAL - Hetero Multifractal
176                                                 - MUS_RIDGEDMF - Ridged Multifractal
177                                                 - MUS_HYBRIDMF - Hybrid Multifractal
178                                                 - MUS_FBM - Fractal Brownian Motion
179                                                 - MUS_HTERRAIN - Hetero Terrain
180                                 12. Voronoi type
181                                                 - VN_INT - Only calculate intensity
182                                                 - VN_COL1 - Color cells by position
183                                                 - VN_COL2 - Same as Col1 plus outline based on F2-F1
184                                                 - VN_COL3 - Same as Col2 multiplied by intensity
185                                 13. Distorted noise type
186                                                 - DN_BLENDER - Original Blender algorithm
187                                                 - DN_PERLIN - Ken Perlin's original (1985) algorithm
188                                                 - DN_IMPROVEDPERLIN - Ken Perlin's newer (2002) algorithm
189                                                 - DN_VORONOIF1 - none
190                                                 - DN_VORONOIF2 - none
191                                                 - DN_VORONOIF3 - none
192                                                 - DN_VORONOIF4 - none
193                                                 - DN_VORONOIF2F1 - none
194                                                 - DN_VORONOICRACKLE - none
195                                                 - DN_CELLNOISE - Steven Worley's cellular basis algorithm (1996)
196
197 @var TexCo: Flags for MTex.texco.
198                 - ORCO - Use the original coordinates of the mesh (material texture only)
199                 - REFL - Use reflection vector as texture coordinates  (material texture only)
200                 - NOR - Use normal vector as texture coordinates  (material texture only)
201                 - GLOB - Use global coordinates for the texture coordinates
202                 - UV - Use UV coordinates for texture coordinates  (material texture only)
203                 - OBJECT - Use linked object's coordinates for texture coordinates
204                 - WIN - Use screen coordinates as texture coordinates  (material texture only)
205                 - VIEW - Use view coordinates for the texture (world and lamp texture only)
206                 - STICK - Use mesh sticky coordinates for the texture coordinates (material texture only)
207                 - STRESS - Use mesh stress coordinates for the texture coordinates (material texture only)
208                 - TANGENT - Use mesh tangent coordinates for the texture coordinates (material texture only)
209                 - ANGMAP - Uses 360 degree angular coordinates, e.g. for spherical light probes (world texture only)
210                 - HSPHERE - For 360 degree panorama sky, spherical mapped, only top half (world texture only)
211                 - HTUBE - For 360 degree panorama sky, cylindrical mapped, only top half (world texture only)
212 @type TexCo: readonly dictionary
213
214 @var MapTo: Flags for MTex.mapto
215                 - COL - Make the texture affect the basic color of the material
216                 - NOR - Make the texture affect the rendered normal
217                 - CSP - Make the texture affect the specularity color
218                 - CMIR - Make the texture affect the mirror color
219                 - REF - Make the texture affect the diffuse reflectivity value
220                 - SPEC - Make the texture affect the specularity value
221                 - HARD - Make the texture affect the hardness value
222                 - ALPHA - Make the texture affect the alpha value
223                 - EMIT - Make the texture affect the emit value
224                 - RAYMIR - Make the texture affect the mirror reflectivity value
225                 - DISP - Make the texture displace the mesh
226                 - TRANSLU - Make the texture affect the translucency value
227                 - AMB - Make the texture affect the ambient value
228                 - WARP - Make the texture affect texture coordinates for the following textures
229 @type MapTo: readonly dictionary
230
231 """
232
233 def New (name = 'Tex'):
234         """
235         Create a new Texture object.
236         @type name: string
237         @param name: The Texture name.
238         @rtype: Blender Texture
239         @return: The created Texture object.
240         """
241
242 def Get (name = None):
243         """
244         Get the Texture object(s) from Blender.
245         @type name: string
246         @param name: The name of the Texture.
247         @rtype: Blender Texture or a list of Blender Textures
248         @return: It depends on the I{name} parameter:
249                         - (name): The Texture object with the given I{name};
250                         - ():     A list with all Texture objects in the current scene.
251         """
252
253 from IDProp import IDGroup, IDArray
254 class Texture:
255         """
256         The Texture object
257         ==================
258                 This object gives access to Texture-specific data in Blender.
259
260                 Note that many of the attributes of this object are only relevant for
261                 specific texture types.
262
263         @ivar animFrames:  Number of frames of a movie to use.
264         Value is clamped to the range [0,300000].
265         @type animFrames:  int
266         @ivar animOffset:  Offsets the number of the first movie frame to use.
267         Value is clamped to the range [-300000,300000].
268         @type animOffset:  int
269         @ivar animStart:  Starting frame of the movie to use.
270         Value is clamped to the range [1,300000].
271         @type animStart:  int
272         @ivar anti:  Image anti-aliasing enabled.  Also see L{ImageFlags}.
273         @type anti:  int
274         @ivar brightness:  Changes the brightness of a texture's color.
275         Value is clamped to the range [0.0,2.0].
276         @type brightness:  float
277         @ivar calcAlpha:  Calculation of image's alpha channel enabled. Also see L{ImageFlags}.
278         @type calcAlpha:  int
279         @ivar contrast:  Changes the contrast of a texture's color.
280         Value is clamped to the range [0.01,5.0].
281         @type contrast:  float
282         @ivar crop:  Sets the cropping extents (for image textures).
283         @type crop:  tuple of 4 ints
284         @ivar cyclic:  Looping of animated frames enabled. Also see L{ImageFlags}.
285         @type cyclic:  boolean
286         @ivar distAmnt:  Amount of distortion (for distorted noise textures).
287         Value is clamped to the range [0.0,10.0].
288         @type distAmnt:  float
289         @ivar distMetric:  The distance metric (for Voronoi textures).
290         @type distMetric:  int
291         @ivar exp:  Minkovsky exponent (for Minkovsky Voronoi textures).
292         Value is clamped to the range [0.01,10.0].
293         @type exp:  float
294         @ivar extend:  Texture's 'Extend' mode (for image textures). See L{ExtendModes}.
295         @type extend:  int
296         @ivar fields:  Use of image's fields enabled. Also see L{ImageFlags}.
297         @type fields:  int
298         @ivar fieldsPerImage:  Number of fields per rendered frame.
299         Value is clamped to the range [1,200].
300         @type fieldsPerImage:  int
301         @ivar filterSize:  The filter size (for image and envmap textures).
302         Value is clamped to the range [0.1,25.0].
303         @type filterSize:  float
304         @ivar flags:  Texture's 'Flag' bitfield.  See L{Flags}.
305         bitmask.
306         @type flags:  int
307         @ivar hFracDim:  Highest fractional dimension (for Musgrave textures).
308         Value is clamped to the range [0.0001,2.0].
309         @type hFracDim:  float
310         @ivar iScale:  Intensity output scale (for Musgrave and Voronoi textures).
311         Value is clamped to the range [0.0,10.0].
312         @type iScale:  float
313         @ivar image:  Texture's image object.
314         @type image:  Blender Image (or None)
315         @ivar imageFlags:  Texture's 'ImageFlags' bits.
316         @type imageFlags:  int
317         @ivar interpol:  Interpolate image's pixels to fit texture mapping enabled. Also see L{ImageFlags}.
318         @type interpol:  int
319         @ivar ipo:  Texture Ipo data.
320         Contains the Ipo if one is assigned to the object, B{None} otherwise.  Setting to B{None} clears the current Ipo..
321         @type ipo:  Blender Ipo
322         @ivar lacunarity:  Gap between succesive frequencies (for Musgrave textures).
323         Value is clamped to the range [0.0,6.0].
324         @type lacunarity:  float
325         @ivar mipmap:  Mipmaps enabled. Also see L{ImageFlags}.
326         @type mipmap:  int
327         @ivar movie:  Movie frames as images enabled. Also see L{ImageFlags}.
328         @type movie:  int
329         @ivar noiseBasis:  Noise basis type (wood, stucci, marble, clouds,
330         Musgrave, distorted).  See L{Noise} dictionary.
331         @type noiseBasis:  int
332         @ivar noiseBasis2:  Additional noise basis type (wood, marble, distorted
333         noise).  See L{Noise} dictionary.
334         @type noiseBasis2:  int
335         @ivar noiseDepth:  Noise depth (magic, marble, clouds).
336         Value is clamped to the range [0,6].
337         @type noiseDepth:  int
338         @ivar noiseSize:  Noise size (wood, stucci, marble, clouds, Musgrave,
339         distorted noise).
340         Value is clamped to the range [0.0001,2.0].
341         @type noiseSize:  float
342         @ivar noiseType:  Noise type (for wood, stucci, marble, clouds textures).               Valid values are 'hard' or 'soft'.
343         @type noiseType:  string 
344         @ivar normalMap:  Use of image RGB values for normal mapping enabled. 
345         Also see L{ImageFlags}.
346         @type normalMap:  int
347         @ivar octs:  Number of frequencies (for Musgrave textures).
348         Value is clamped to the range [0.0,8.0].
349         @type octs:  float
350         @ivar offset:  Fractal offset (for hetero terrain and multifractal Musgrave textures).
351         Value is clamped to the range [0.0,6.0].
352         @type offset:  float
353         @ivar gain:  Gain multiplier (for multifractal Musgrave textures).
354         Value is clamped to the range [0.0,6.0].
355         @type gain:  float
356         @ivar repeat:  Repetition multiplier (for image textures).
357         @type repeat:  tuple of 2 ints
358         @ivar rgbCol:  RGB color tuple.
359         @type rgbCol:  tuple of 3 floats
360         @ivar rot90:  X/Y flip for rendering enabled. Also see L{ImageFlags}.
361         @type rot90:  int
362         @ivar saw:  Produce bands using saw wave (marble, wood textures). Also see L{Noise}.
363         @type saw:  int
364         @ivar sine:  Produce bands using sine wave (marble, wood textures). Also see L{Noise}.
365         @type sine:  int
366         @ivar stField:  Standard field deinterlacing enabled. Also see L{ImageFlags}.
367         @type stField:  int
368         @ivar stype:  Texture's 'SType' mode.  See L{STypes}.
369         @type stype:  int
370         @ivar tri:  Produce bands using triangle wave (marble, wood textures). Also see L{Noise}.
371         @type tri:  int
372         @ivar turbulence:  Turbulence (for magic, wood, stucci, marble textures).
373         Value is clamped to the range [0.0,200.0].
374         @type turbulence:  float
375         @ivar type:  Texture's 'Type' mode. See L{Types}.
376         Value must be in the range [0,13].
377         @type type:  int
378         @ivar useAlpha:  Use of image's alpha channel enabled. Also see L{ImageFlags}.
379         @type useAlpha:  int
380         @ivar weight1:  Weight 1 (for Voronoi textures).
381         Value is clamped to the range [-2.0,2.0].
382         @type weight1:  float
383         @ivar weight2:  Weight 2 (for Voronoi textures).
384         Value is clamped to the range [-2.0,2.0].
385         @type weight2:  float
386         @ivar weight3:  Weight 3 (for Voronoi textures).
387         Value is clamped to the range [-2.0,2.0].
388         @type weight3:  float
389         @ivar weight4:  Weight 4 (for Voronoi textures).
390         Value is clamped to the range [-2.0,2.0].
391         @type weight4:  float
392         @ivar colorband:  Texture colorband, a list of colors, 
393         each color a list of 5 floats [0 - 1], [r,g,b,a,pos].
394         The colorband can have between 1 and 31 colors.
395         @type colorband:  list
396         @ivar autoRefresh: Refresh image on frame changes enabled.
397         @type autoRefresh:  boolean
398         """
399         
400         def getExtend():
401                 """
402                 Get the extend mode of the texture. See L{setExtend}.
403                 @rtype: string.
404                 """
405         
406         def getImage():
407                 """
408                 Get the Image associated with this texture (or None).
409                 @rtype: Blender Image
410                 """
411
412         def getName():
413                 """
414                 Get the name of this Texture object.
415                 @rtype: string
416                 """
417
418         def getType():
419                 """
420                 Get this Texture's type.  See L{setType}.
421                 @rtype: string
422                 """
423
424         def setExtend(extendmode):
425                 """
426                 Set the extend mode of this texture (only used for IMAGE textures)
427                 @param extendmode: The new extend mode. One of: 
428                                 'Extend', 'Clip', 'ClipCube' and 'Repeat'
429                 @type extendmode: string
430                 """
431
432         def setFlags(f1=None, f2=None, f3=None, f4=None):
433                 """
434                 Set this object's flags.
435                 @param f1, f2, f3, f4: Flags to be set (omitted flags are cleared). Can be any of 
436                                 'FlipBlendXY', 'NegAlpha', 'CheckerOdd', and 'CheckerEven'
437                 @type f1, f2, f3, f4: string
438                 """
439
440         def setImage(image):
441                 """
442                 Set the Image of this texture.
443                 @param image: The new Image.
444                 @type image: Blender Image or None.
445                 @warning: This sets the texture's type to 'Image' if it is not already.
446                 """
447
448         def setImageFlags(f1=None, f2=None, f3=None, etc=None):
449                 """
450                 Set the Image flags (only makes sense for IMAGE textures). Omitted
451                 flags are cleared.
452                 @param f1, f2, f3, etc: Flag to set. See L{ImageFlags} for their meanings. Can be 
453                                 any of: 'InterPol', 'UseAlpha', 'MipMap', 'Fields', 'Rot90',
454                                 'CalcAlpha', 'Cyclic', 'Movie', 'StField', 'Anti' and 'NormalMap'
455                 @type f1, f2, f3, etc: string
456                 """
457
458         def setName(name):
459                 """
460                 Set the name of this Texture object.
461                 @param name: The new name.
462                 @type name: string
463                 """
464
465         def setSType(stype):
466                 """
467                 Set the SType.
468                 @param stype: The new stype. This can be any of the values listed in
469                                  L{STypes} or 'Default' which sets the stype to the default value.
470                 @type stype: string
471
472                 @note: the set of valid parameters is dependent on the current
473                 texture type.  Be sure to always set the texture type B{before}
474                 setting the texture's stype; otherwise an exception might occur.
475                 """
476
477         def setType(type):
478                 """
479                 Set this Texture's type.
480                 @param type: The new type. Possible options are: 
481                                 'None', 'Clouds', 'Wood', 'Marble', 'Magic', 'Blend', 'Stucci', 
482                                 'Noise', 'Image', 'Plugin', 'EnvMap', 'Musgrave', 'Voronoi'
483                                 and 'DistNoise'
484                 @type type: string
485                 """
486         def evaluate(coord):
487                 """
488                 Evaluates the texture at this location and returns the result.
489                 
490                 The return value is a 4D vector where (x,y,z,w) are (red, green, blue, intensity)
491                 For greyscale textures, often intensity only will be used.
492                 @type coord: vector or tuple of 3 numbers
493                 """
494                 
495 import id_generics
496 Texture.__doc__ += id_generics.attributes
497
498 class MTex:
499         """
500         The MTex Object
501         ===============
502
503         This object links a material to a texture. It allows the same texture to be
504         used in several different ways.
505
506     @ivar blendmode: Texture blending mode. See L{BlendModes}
507     @type blendmode: int
508     @ivar col: Color that the texture blends with.
509     @type col: tuple
510     @ivar colfac: Factor by which texture affects color.
511     @type colfac: float
512     @ivar correctNor: Correct normal mapping for Texture space and Object space (material only).
513     @type correctNor: boolean
514     @ivar dispfac: Factor by which texture affects displacement (material only).
515     @type dispfac: float
516     @ivar dvar: Value that the texture blends with when not blending colors.
517     @type dvar: float
518     @ivar fromDupli: Duplis instanced from verts, faces or particles, inherit texture coordinate from their parent (material only).
519     @type fromDupli: boolean
520     @ivar fromOrig: Duplis derive their object coordinates from the original objects transformation (material only).
521     @type fromOrig: boolean
522     @ivar mapping: Mapping of texture coordinates (flat, cube, etc.) (material only).  See L{Mappings}.
523     @type mapping: int
524     @ivar mapto: "Map to" field of texture (material only). OR'd values of L{MapTo}.
525     @type mapto: int
526     @ivar mtCol: How texture maps to color (material and lamp only).
527     @type mtCol: int
528     @ivar mtAlpha: How texture maps to alpha value (material only).
529     @type mtAlpha: int
530     @ivar mtAmb: How texture maps to ambient value (material only).
531     @type mtAmb: int
532     @ivar mtCmir: How texture maps to mirror color (material only).
533     @type mtCmir: int
534     @ivar mtCsp: How texture maps to specularity color (material only).
535     @type mtCsp: int
536     @ivar mtDisp: How texture maps to displacement (material only).
537     @type mtDisp: int
538     @ivar mtEmit: How texture maps to emit value (material only).
539     @type mtEmit: int
540     @ivar mtHard: How texture maps to hardness (material only).
541     @type mtHard: int
542     @ivar mtNor: How texture maps to normals (material only).
543     @type mtNor: int
544     @ivar mtRayMir: How texture maps to RayMir value (material only).
545     @type mtRayMir: int
546     @ivar mtRef: How texture maps to reflectivity (material only).
547     @type mtRef: int
548     @ivar mtSpec: How texture maps to specularity (material only).
549     @type mtSpec: int
550     @ivar mtTranslu: How texture maps to translucency (material only).
551     @type mtTranslu: int
552     @ivar mtWarp: How texture maps to warp (material only).
553     @type mtWarp: int
554     @ivar mtBlend: Texture affects color progression of background (world only).
555     @type mtBlend: int
556     @ivar mtHoriz: Texture affects color of the horizon (world only).
557     @type mtHoriz: int
558     @ivar mtZenUp: Texture affects color of the zenith above (world only).
559     @type mtZenUp: int
560     @ivar mtZenDown: Texture affects color of the zenith below (world only).
561     @type mtZenDown: int
562     @ivar neg: Negate texture values mode.
563     @type neg: boolean
564     @ivar norfac: Factor by which texture affects normal (material and world only).
565     @type norfac: float
566     @ivar noRGB: Convert texture RGB values to intensity values.
567     @type noRGB: boolean
568     @ivar object: Object whose space to use when texco is Object.
569     @type object: Blender Object or None
570     @ivar ofs: Offset to adjust texture space.
571     @type ofs: tuple
572     @ivar size: Size to scale texture space.
573     @type size: tuple
574     @ivar stencil: Stencil mode.
575     @type stencil: boolean
576     @ivar tex: The Texture this is linked to.
577     @type tex: Blender Texture
578     @ivar texco: Texture coordinates ("Map input"). See L{TexCo}.
579     @type texco: int
580     @ivar uvlayer: The name of the UV Layer this texture is mapped to (when left blank uses render layer) (material only).
581     @type uvlayer: string
582     @ivar varfac: Factor by which texture affects most variables (material and world only).
583     @type varfac: float
584     @ivar warpfac: Factor by which texture affects warp (material only).
585     @type warpfac: float
586     @ivar xproj: Projection of X axis to Texture space (material only). See L{Proj}
587     @type xproj: int
588     @ivar yproj: Projection of Y axis to Texture space (material only). See L{Proj}
589     @type yproj: int
590     @ivar zproj: Projection of Z axis to Texture space (material only). See L{Proj}
591     @type zproj: int
592         """
593
594         def getIpo():
595                 """
596                 Get the Ipo associated with this texture object, if any.
597                 @rtype: Ipo
598                 @return: the wrapped ipo or None.
599                 """
600
601         def setIpo(ipo):
602                 """
603                 Link an ipo to this texture object.
604                 @type ipo: Blender Ipo
605                 @param ipo: a "texture data" ipo.
606                 """
607
608         def clearIpo():
609                 """
610                 Unlink the ipo from this texture object.
611                 @return: True if there was an ipo linked or False otherwise.
612                 """