#
# Blender.Texture module and the Texture PyType object
#
# Written by Alex Mole
# 

"""
The Blender.Texture submodule.

B{New}:
	- many new attributes in L{MTex} submodule
	- new dictionaries (L{Texture.BlendModes}, L{Texture.Mappings}, L{Texture.Proj}) to use for the values of some of the new L{MTex} attributes.

Texture
=======

This module provides access to B{Texture} objects in Blender.

Example::
		
	from Blender import Texture,Image,Material
	
	footex = Texture.Get('foo')             # get texture named 'foo'
	footex.setType('Image')                 # make foo be an image texture
	img = Image.Load('test.png')            # load an image
	footex.image = img                      # link the image to the texture

	mat = Material.Get('bar')               # get a material
	mtextures = mat.getTextures()           # get a list of the MTex objects
	for mtex in mtextures:
		if mtex.tex.type == Texture.Types.IMAGE: 
			print mtex.tex.image.filename   # print the filenames of all the
											# images in textures linked to "bar"

	mat.setTexture(0, footex)               # set the material's first texture
											# to be our texture


@type Types: readonly dictionary
@var Types: The available texture types:
		- NONE -  No texture
		- CLOUDS - Clouds texture
		- WOOD - Wood texture
		- MARBLE - Marble texture
		- MAGIC - Magic texture
		- BLEND - Blend texture
		- STUCCI - Stucci texture
		- NOISE - Noise texture
		- IMAGE - Image texture
		- PLUGIN - Plugin texture
		- ENVMAP - EnvMap texture
		- MUSGRAVE - Musgrave procedural texture
		- VORONOI - Voronoi procedural texture
		- DISTNOISE - Distorted noise texture

@type Flags: readonly dictionary
@var Flags: The available Texture flags:
		- FLIPBLEND - Flips the blend texture's X and Y directions
		- NEGALPHA - Reverse the alpha value
		- CHECKER_ODD - Fill the "odd" checkerboard tiles
		- CHECKER_EVEN - Fill the "even" checkerboard tiles
		- COLORBAND - Enable colorband for this texture
        - PREVIEW_ALPHA - Show alpha in preview
        - REPEAT_XMIR - Mirrors X direction repeat
        - REPEAT_YMIR - Mirrors Y direction repeat

@type ImageFlags: readonly dictionary
@var ImageFlags: The available image flags for Texture.imageFlags:
		- INTERPOL - Interpolate pixels of the image
		- USEALPHA - Use the alpha layer
		- MIPMAP - Enable mipmapping [cannot be used with FIELDS]
		- FIELDS - Work with field images [cannot be used with MIPMAP]
		- ROT90 - Rotate the image 90 degrees when rendering
		- CALCALPHA - Calculate an alpha from the RGB
		- STFIELD - Denotes this is a standard field
		- MOVIE - Use a movie for an image
		- CYCLIC - Repeat animation image
		- ANTI - Use anti-aliasing
		- NORMALMAP - Use image RGB values for normal mapping

@type ExtendModes: readonly dictionary
@var ExtendModes: Extend, clip, repeat or checker modes for image textures
		- EXTEND - Extends the color of the edge
		- CLIP - Return alpha 0.0 outside image
		- CLIPCUBE - Return alpha 0.0 around cube-shaped area around image
		- REPEAT - Repeat image vertically and horizontally
		- CHECKER - Repeat image in checkerboard pattern

@type Noise: readonly dictionary
@var Noise: Noise types and bases.  SINE, SAW and TRI are only used for
		marble and wood textures, while the remainder are used for all textures
		which has a noise basis function (for these textures, the constant should
		be used with the second noise basis setting).
			- SINE - Produce bands using sine wave (marble, wood textures)
			- SAW - Produce bands using saw wave (marble, wood textures)
			- TRI - Produce bands using triangle wave (marble, wood textures)
			- BLENDER - Original Blender algorithm
			- PERLIN - Ken Perlin's original (1985) algorithm
			- IMPROVEDPERLIN - Ken Perlin's newer (2002) algorithm
			- VORONOIF1 - none
			- VORONOIF2 - none
			- VORONOIF3 - none
			- VORONOIF4 - none
			- VORONOIF2F1 - none
			- VORONOICRACKLE - none
			- CELLNOISE - Steven Worley's cellular basis algorithm (1996)

@type BlendModes: readonly dictionary
@var BlendModes: The available texture blending modes:
		- MIX - mix texture with value
		- MULTIPLY - multiply texture with value
		- ADD - add texture to value
		- SUBTRACT - subtract texture from value
		- DIVIDE - divide value by texture
		- DARKEN - replace value with texture if texture is darker
		- DIFFERENCE - difference of texture from value
		- LIGHTEN - replace value with texture if texture is lighter
		- SCREEN - 'screen' mode

@type Mappings: readonly dictionary
@var Mappings: The available 2D texture coordinate mappings for images:
		- FLAT - flat projection
		- CUBE - cube projection
		- TUBE - cylindrical projection
		- SPHERE - spherical projection

@type Proj: readonly dictionary
@var Proj: The available projections per axis:
		- NONE - axis isn't used
		- X - axis is used as final x axis
		- Y - axis is used as final y axis
		- Z - axis is used as final z axis

@type STypes: readonly dictionary
@var STypes: Texture-type specific data. Depending on the value of
		Texture.type, certain groups will make sense. For instance, when a texture 
		is of type CLOUD, the CLD_xxx stypes can be used. Note that the first 
		value in each group is the default.
				1. Clouds type
						- CLD_DEFAULT - Monochromatic noise
						- CLD_COLOR - RGB noise
				2. Wood type
						- WOD_BANDS - Use standard wood texture
						- WOD_RINGS - Use wood rings
						- WOD_BANDNOISE - Add noise to standard wood
						- WOD_RINGNOISE - Add noise to rings
				3. Magic type
						- MAG_DEFAULT - Magic has no STypes
				4. Marble type
						- MBL_SOFT - Use soft marble
						- MBL_SHARP - Use more clearly defined marble
						- MBL_SHARPER - Use very clearly dfefined marble
				5. Blend type
						- BLN_LIN - Use a linear progression
						- BLN_QUAD - Use a quadratic progression
						- BLN_EASE - Uses a more complicated blend function
						- BLN_DIAG - Use a diagonal progression
						- BLN_SPHERE - Use a progression with the shape of a sphere
						- BLN_HALO - Use a quadratic progression with the shape of a sphere
				6. Stucci type
						- STC_PLASTIC - Standard stucci
						- STC_WALLIN - Creates dimples
						- STC_WALLOUT - Creates ridges
				7. Noise type
						- NSE_DEFAULT - Noise has no STypes
				8. Image type
						- IMG_DEFAULT - Image has no STypes
				9. Plugin type
						- PLG_DEFAULT - Plugin has no STypes
				10. Envmap type
						- ENV_STATIC - Calculate map only once
						- ENV_ANIM - Calculate map each rendering
						- ENV_LOAD - Load map from disk
				11. Musgrave type
						- MUS_MFRACTAL - Hetero Multifractal
						- MUS_RIDGEDMF - Ridged Multifractal
						- MUS_HYBRIDMF - Hybrid Multifractal
						- MUS_FBM - Fractal Brownian Motion
						- MUS_HTERRAIN - Hetero Terrain
				12. Voronoi type
						- VN_INT - Only calculate intensity
						- VN_COL1 - Color cells by position
						- VN_COL2 - Same as Col1 plus outline based on F2-F1
						- VN_COL3 - Same as Col2 multiplied by intensity
				13. Distorted noise type
						- DN_BLENDER - Original Blender algorithm
						- DN_PERLIN - Ken Perlin's original (1985) algorithm
						- DN_IMPROVEDPERLIN - Ken Perlin's newer (2002) algorithm
						- DN_VORONOIF1 - none
						- DN_VORONOIF2 - none
						- DN_VORONOIF3 - none
						- DN_VORONOIF4 - none
						- DN_VORONOIF2F1 - none
						- DN_VORONOICRACKLE - none
						- DN_CELLNOISE - Steven Worley's cellular basis algorithm (1996)

@var TexCo: Flags for MTex.texco.
		- ORCO - Use the original coordinates of the mesh (material texture only)
		- REFL - Use reflection vector as texture coordinates  (material texture only)
		- NOR - Use normal vector as texture coordinates  (material texture only)
		- GLOB - Use global coordinates for the texture coordinates
		- UV - Use UV coordinates for texture coordinates  (material texture only)
		- OBJECT - Use linked object's coordinates for texture coordinates
		- WIN - Use screen coordinates as texture coordinates  (material texture only)
		- VIEW - Use view coordinates for the texture (world and lamp texture only)
		- STICK - Use mesh sticky coordinates for the texture coordinates (material texture only)
		- STRESS - Use mesh stress coordinates for the texture coordinates (material texture only)
		- TANGENT - Use mesh tangent coordinates for the texture coordinates (material texture only)
		- ANGMAP - Uses 360 degree angular coordinates, e.g. for spherical light probes (world texture only)
		- HSPHERE - For 360 degree panorama sky, spherical mapped, only top half (world texture only)
		- HTUBE - For 360 degree panorama sky, cylindrical mapped, only top half (world texture only)
@type TexCo: readonly dictionary

@var MapTo: Flags for MTex.mapto
		- COL - Make the texture affect the basic color of the material
		- NOR - Make the texture affect the rendered normal
		- CSP - Make the texture affect the specularity color
		- CMIR - Make the texture affect the mirror color
		- REF - Make the texture affect the diffuse reflectivity value
		- SPEC - Make the texture affect the specularity value
		- HARD - Make the texture affect the hardness value
		- ALPHA - Make the texture affect the alpha value
		- EMIT - Make the texture affect the emit value
		- RAYMIR - Make the texture affect the mirror reflectivity value
		- DISP - Make the texture displace the mesh
		- TRANSLU - Make the texture affect the translucency value
		- AMB - Make the texture affect the ambient value
		- WARP - Make the texture affect texture coordinates for the following textures
@type MapTo: readonly dictionary

"""

def New (name = 'Tex'):
	"""
	Create a new Texture object.
	@type name: string
	@param name: The Texture name.
	@rtype: Blender Texture
	@return: The created Texture object.
	"""

def Get (name = None):
	"""
	Get the Texture object(s) from Blender.
	@type name: string
	@param name: The name of the Texture.
	@rtype: Blender Texture or a list of Blender Textures
	@return: It depends on the I{name} parameter:
			- (name): The Texture object with the given I{name};
			- ():     A list with all Texture objects in the current scene.
	"""

from IDProp import IDGroup, IDArray
class Texture:
	"""
	The Texture object
	==================
		This object gives access to Texture-specific data in Blender.

		Note that many of the attributes of this object are only relevant for
		specific texture types.

	@ivar animFrames:  Number of frames of a movie to use.
	Value is clamped to the range [0,300000].
	@type animFrames:  int
	@ivar animOffset:  Offsets the number of the first movie frame to use.
	Value is clamped to the range [-300000,300000].
	@type animOffset:  int
	@ivar animStart:  Starting frame of the movie to use.
	Value is clamped to the range [1,300000].
	@type animStart:  int
	@ivar anti:  Image anti-aliasing enabled.  Also see L{ImageFlags}.
	@type anti:  int
	@ivar brightness:  Changes the brightness of a texture's color.
	Value is clamped to the range [0.0,2.0].
	@type brightness:  float
	@ivar calcAlpha:  Calculation of image's alpha channel enabled. Also see L{ImageFlags}.
	@type calcAlpha:  int
	@ivar contrast:  Changes the contrast of a texture's color.
	Value is clamped to the range [0.01,5.0].
	@type contrast:  float
	@ivar crop:  Sets the cropping extents (for image textures).
	@type crop:  tuple of 4 ints
	@ivar cyclic:  Looping of animated frames enabled. Also see L{ImageFlags}.
	@type cyclic:  boolean
	@ivar distAmnt:  Amount of distortion (for distorted noise textures).
	Value is clamped to the range [0.0,10.0].
	@type distAmnt:  float
	@ivar distMetric:  The distance metric (for Voronoi textures).
	@type distMetric:  int
	@ivar exp:  Minkovsky exponent (for Minkovsky Voronoi textures).
	Value is clamped to the range [0.01,10.0].
	@type exp:  float
	@ivar extend:  Texture's 'Extend' mode (for image textures). See L{ExtendModes}.
	@type extend:  int
	@ivar fields:  Use of image's fields enabled. Also see L{ImageFlags}.
	@type fields:  int
	@ivar fieldsPerImage:  Number of fields per rendered frame.
	Value is clamped to the range [1,200].
	@type fieldsPerImage:  int
	@ivar filterSize:  The filter size (for image and envmap textures).
	Value is clamped to the range [0.1,25.0].
	@type filterSize:  float
	@ivar flags:  Texture's 'Flag' bitfield.  See L{Flags}.
	bitmask.
	@type flags:  int
	@ivar hFracDim:  Highest fractional dimension (for Musgrave textures).
	Value is clamped to the range [0.0001,2.0].
	@type hFracDim:  float
	@ivar iScale:  Intensity output scale (for Musgrave and Voronoi textures).
	Value is clamped to the range [0.0,10.0].
	@type iScale:  float
	@ivar image:  Texture's image object.
	@type image:  Blender Image (or None)
	@ivar imageFlags:  Texture's 'ImageFlags' bits.
	@type imageFlags:  int
	@ivar interpol:  Interpolate image's pixels to fit texture mapping enabled. Also see L{ImageFlags}.
	@type interpol:  int
	@ivar ipo:  Texture Ipo data.
	Contains the Ipo if one is assigned to the object, B{None} otherwise.  Setting to B{None} clears the current Ipo..
	@type ipo:  Blender Ipo
	@ivar lacunarity:  Gap between succesive frequencies (for Musgrave textures).
	Value is clamped to the range [0.0,6.0].
	@type lacunarity:  float
	@ivar mipmap:  Mipmaps enabled. Also see L{ImageFlags}.
	@type mipmap:  int
	@ivar movie:  Movie frames as images enabled. Also see L{ImageFlags}.
	@type movie:  int
	@ivar noiseBasis:  Noise basis type (wood, stucci, marble, clouds,
	Musgrave, distorted).  See L{Noise} dictionary.
	@type noiseBasis:  int
	@ivar noiseBasis2:  Additional noise basis type (wood, marble, distorted
	noise).  See L{Noise} dictionary.
	@type noiseBasis2:  int
	@ivar noiseDepth:  Noise depth (magic, marble, clouds).
	Value is clamped to the range [0,6].
	@type noiseDepth:  int
	@ivar noiseSize:  Noise size (wood, stucci, marble, clouds, Musgrave,
	distorted noise).
	Value is clamped to the range [0.0001,2.0].
	@type noiseSize:  float
	@ivar noiseType:  Noise type (for wood, stucci, marble, clouds textures).		Valid values are 'hard' or 'soft'.
	@type noiseType:  string 
	@ivar normalMap:  Use of image RGB values for normal mapping enabled. 
	Also see L{ImageFlags}.
	@type normalMap:  int
	@ivar octs:  Number of frequencies (for Musgrave textures).
	Value is clamped to the range [0.0,8.0].
	@type octs:  float
	@ivar offset:  Fractal offset (for hetero terrain and multifractal Musgrave textures).
	Value is clamped to the range [0.0,6.0].
	@type offset:  float
	@ivar gain:  Gain multiplier (for multifractal Musgrave textures).
	Value is clamped to the range [0.0,6.0].
	@type gain:  float
	@ivar repeat:  Repetition multiplier (for image textures).
	@type repeat:  tuple of 2 ints
	@ivar rgbCol:  RGB color tuple.
	@type rgbCol:  tuple of 3 floats
	@ivar rot90:  X/Y flip for rendering enabled. Also see L{ImageFlags}.
	@type rot90:  int
	@ivar saw:  Produce bands using saw wave (marble, wood textures). Also see L{Noise}.
	@type saw:  int
	@ivar sine:  Produce bands using sine wave (marble, wood textures). Also see L{Noise}.
	@type sine:  int
	@ivar stField:  Standard field deinterlacing enabled. Also see L{ImageFlags}.
	@type stField:  int
	@ivar stype:  Texture's 'SType' mode.  See L{STypes}.
	@type stype:  int
	@ivar tri:  Produce bands using triangle wave (marble, wood textures). Also see L{Noise}.
	@type tri:  int
	@ivar turbulence:  Turbulence (for magic, wood, stucci, marble textures).
	Value is clamped to the range [0.0,200.0].
	@type turbulence:  float
	@ivar type:  Texture's 'Type' mode. See L{Types}.
	Value must be in the range [0,13].
	@type type:  int
	@ivar useAlpha:  Use of image's alpha channel enabled. Also see L{ImageFlags}.
	@type useAlpha:  int
	@ivar weight1:  Weight 1 (for Voronoi textures).
	Value is clamped to the range [-2.0,2.0].
	@type weight1:  float
	@ivar weight2:  Weight 2 (for Voronoi textures).
	Value is clamped to the range [-2.0,2.0].
	@type weight2:  float
	@ivar weight3:  Weight 3 (for Voronoi textures).
	Value is clamped to the range [-2.0,2.0].
	@type weight3:  float
	@ivar weight4:  Weight 4 (for Voronoi textures).
	Value is clamped to the range [-2.0,2.0].
	@type weight4:  float
	@ivar colorband:  Texture colorband, a list of colors, 
	each color a list of 5 floats [0 - 1], [r,g,b,a,pos].
	The colorband can have between 1 and 31 colors.
	@type colorband:  list
	@ivar autoRefresh: Refresh image on frame changes enabled.
	@type autoRefresh:  boolean
	"""
	
	def getExtend():
		"""
		Get the extend mode of the texture. See L{setExtend}.
		@rtype: string.
		"""
	
	def getImage():
		"""
		Get the Image associated with this texture (or None).
		@rtype: Blender Image
		"""

	def getName():
		"""
		Get the name of this Texture object.
		@rtype: string
		"""

	def getType():
		"""
		Get this Texture's type.  See L{setType}.
		@rtype: string
		"""

	def setExtend(extendmode):
		"""
		Set the extend mode of this texture (only used for IMAGE textures)
		@param extendmode: The new extend mode. One of: 
				'Extend', 'Clip', 'ClipCube' and 'Repeat'
		@type extendmode: string
		"""

	def setFlags(f1=None, f2=None, f3=None, f4=None):
		"""
		Set this object's flags.
		@param f1, f2, f3, f4: Flags to be set (omitted flags are cleared). Can be any of 
				'FlipBlendXY', 'NegAlpha', 'CheckerOdd', and 'CheckerEven'
		@type f1, f2, f3, f4: string
		"""

	def setImage(image):
		"""
		Set the Image of this texture.
		@param image: The new Image.
		@type image: Blender Image or None.
		@warning: This sets the texture's type to 'Image' if it is not already.
		"""

	def setImageFlags(f1=None, f2=None, f3=None, etc=None):
		"""
		Set the Image flags (only makes sense for IMAGE textures). Omitted
		flags are cleared.
		@param f1, f2, f3, etc: Flag to set. See L{ImageFlags} for their meanings. Can be 
				any of: 'InterPol', 'UseAlpha', 'MipMap', 'Fields', 'Rot90',
				'CalcAlpha', 'Cyclic', 'Movie', 'StField', 'Anti' and 'NormalMap'
		@type f1, f2, f3, etc: string
		"""

	def setName(name):
		"""
		Set the name of this Texture object.
		@param name: The new name.
		@type name: string
		"""

	def setSType(stype):
		"""
		Set the SType.
		@param stype: The new stype. This can be any of the values listed in
				 L{STypes} or 'Default' which sets the stype to the default value.
		@type stype: string

		@note: the set of valid parameters is dependent on the current
		texture type.  Be sure to always set the texture type B{before}
		setting the texture's stype; otherwise an exception might occur.
		"""

	def setType(type):
		"""
		Set this Texture's type.
		@param type: The new type. Possible options are: 
				'None', 'Clouds', 'Wood', 'Marble', 'Magic', 'Blend', 'Stucci', 
				'Noise', 'Image', 'Plugin', 'EnvMap', 'Musgrave', 'Voronoi'
				and 'DistNoise'
		@type type: string
		"""
	def evaluate(coord):
		"""
		Evaluates the texture at this location and returns the result.
		
		The return value is a 4D vector where (x,y,z,w) are (red, green, blue, intensity)
		For greyscale textures, often intensity only will be used.
		@type coord: vector or tuple of 3 numbers
		"""
		
import id_generics
Texture.__doc__ += id_generics.attributes

class MTex:
	"""
	The MTex Object
	===============

	This object links a material to a texture. It allows the same texture to be
	used in several different ways.

    @ivar blendmode: Texture blending mode. See L{BlendModes}
    @type blendmode: int
    @ivar col: Color that the texture blends with.
    @type col: tuple
    @ivar colfac: Factor by which texture affects color.
    @type colfac: float
    @ivar correctNor: Correct normal mapping for Texture space and Object space (material only).
    @type correctNor: boolean
    @ivar dispfac: Factor by which texture affects displacement (material only).
    @type dispfac: float
    @ivar dvar: Value that the texture blends with when not blending colors.
    @type dvar: float
    @ivar fromDupli: Duplis instanced from verts, faces or particles, inherit texture coordinate from their parent (material only).
    @type fromDupli: boolean
    @ivar fromOrig: Duplis derive their object coordinates from the original objects transformation (material only).
    @type fromOrig: boolean
    @ivar mapping: Mapping of texture coordinates (flat, cube, etc.) (material only).  See L{Mappings}.
    @type mapping: int
    @ivar mapto: "Map to" field of texture (material only). OR'd values of L{MapTo}.
    @type mapto: int
    @ivar mtCol: How texture maps to color (material and lamp only).
    @type mtCol: int
    @ivar mtAlpha: How texture maps to alpha value (material only).
    @type mtAlpha: int
    @ivar mtAmb: How texture maps to ambient value (material only).
    @type mtAmb: int
    @ivar mtCmir: How texture maps to mirror color (material only).
    @type mtCmir: int
    @ivar mtCsp: How texture maps to specularity color (material only).
    @type mtCsp: int
    @ivar mtDisp: How texture maps to displacement (material only).
    @type mtDisp: int
    @ivar mtEmit: How texture maps to emit value (material only).
    @type mtEmit: int
    @ivar mtHard: How texture maps to hardness (material only).
    @type mtHard: int
    @ivar mtNor: How texture maps to normals (material only).
    @type mtNor: int
    @ivar mtRayMir: How texture maps to RayMir value (material only).
    @type mtRayMir: int
    @ivar mtRef: How texture maps to reflectivity (material only).
    @type mtRef: int
    @ivar mtSpec: How texture maps to specularity (material only).
    @type mtSpec: int
    @ivar mtTranslu: How texture maps to translucency (material only).
    @type mtTranslu: int
    @ivar mtWarp: How texture maps to warp (material only).
    @type mtWarp: int
    @ivar mtBlend: Texture affects color progression of background (world only).
    @type mtBlend: int
    @ivar mtHoriz: Texture affects color of the horizon (world only).
    @type mtHoriz: int
    @ivar mtZenUp: Texture affects color of the zenith above (world only).
    @type mtZenUp: int
    @ivar mtZenDown: Texture affects color of the zenith below (world only).
    @type mtZenDown: int
    @ivar neg: Negate texture values mode.
    @type neg: boolean
    @ivar norfac: Factor by which texture affects normal (material and world only).
    @type norfac: float
    @ivar noRGB: Convert texture RGB values to intensity values.
    @type noRGB: boolean
    @ivar object: Object whose space to use when texco is Object.
    @type object: Blender Object or None
    @ivar ofs: Offset to adjust texture space.
    @type ofs: tuple
    @ivar size: Size to scale texture space.
    @type size: tuple
    @ivar stencil: Stencil mode.
    @type stencil: boolean
    @ivar tex: The Texture this is linked to.
    @type tex: Blender Texture
    @ivar texco: Texture coordinates ("Map input"). See L{TexCo}.
    @type texco: int
    @ivar uvlayer: The name of the UV Layer this texture is mapped to (when left blank uses render layer) (material only).
    @type uvlayer: string
    @ivar varfac: Factor by which texture affects most variables (material and world only).
    @type varfac: float
    @ivar warpfac: Factor by which texture affects warp (material only).
    @type warpfac: float
    @ivar xproj: Projection of X axis to Texture space (material only). See L{Proj}
    @type xproj: int
    @ivar yproj: Projection of Y axis to Texture space (material only). See L{Proj}
    @type yproj: int
    @ivar zproj: Projection of Z axis to Texture space (material only). See L{Proj}
    @type zproj: int
	"""

	def getIpo():
		"""
		Get the Ipo associated with this texture object, if any.
		@rtype: Ipo
		@return: the wrapped ipo or None.
		"""

	def setIpo(ipo):
		"""
		Link an ipo to this texture object.
		@type ipo: Blender Ipo
		@param ipo: a "texture data" ipo.
		"""

	def clearIpo():
		"""
		Unlink the ipo from this texture object.
		@return: True if there was an ipo linked or False otherwise.
		"""
