439 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			439 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Blender.Ipo module and the Ipo PyType object
 | |
| 
 | |
| """
 | |
| The Blender.Ipo submodule
 | |
| 
 | |
| B{New}: 
 | |
|   -  Ipo updates to both the program and Bpython access.
 | |
|   -  access to Blender's new Ipo driver capabilities.
 | |
|   -  Ipo now supports the mapping operator [] to access IpoCurves
 | |
| 
 | |
| This module provides access to the Ipo Data in Blender. An Ipo is composed of
 | |
| several IpoCurves, and an IpoCurve are composed of several BezTriples.
 | |
| 
 | |
| Example::
 | |
|   from Blender import Ipo
 | |
| 
 | |
|   ob = Ipo.Get('ObIpo')          # retrieves an Ipo object
 | |
|   ob.name = 'ipo1'				 # change the Ipo's name
 | |
|   icu = ipo[Ipo.OB_LOCX]         # request X Location Ipo curve object
 | |
|   if icu != None and len(icu.bezierPoints) > 0: # if curve exists and has BezTriple points
 | |
|      val = icu[2.5]              # get the curve's value at time 2.5
 | |
|      icu[Ipo.OB_lOCX] = None     # delete the ipo curve
 | |
|   
 | |
| Each type of Ipo has different types Ipocurves.  With the exception of Shape
 | |
| Key Ipos, constants are used to specify all Ipocurves.  There are two ways
 | |
| to tell which Ipo curves go with which Ipo type:
 | |
|   - all constants start with a two-character identifier for their Ipo type;
 | |
|   for example, "OB_LOCX" is the LocX curve for an Object Ipo
 | |
|   - each Ipo now has a read-only attribute L{Ipo.curveConsts}, which returns 
 | |
|   the valid Ipo curve types for that specific Ipo
 | |
| 
 | |
| The valid IpoCurve constants are:
 | |
|       1. Material Ipo: MA_R, MA_G, MA_B, MA_SPECR, MA_SPECG, MA_SPECB,
 | |
|       MA_MIRR, MA_MIRG, MA_MIRB, MA_REF, MA_ALPHA, MA_EMIT, MA_AMB,
 | |
|       MA_SPEC, MA_HARD, MA_SPTRA, MA_IOR, MA_MODE, MA_HASIZE, MA_TRANSLU,
 | |
|       MA_RAYMIR, MA_FRESMIR, MA_FRESMIRI, MA_FRESTRA, MA_FRESTRAI,
 | |
|       MA_TRAGLOW, MA_OFSX, MA_OFSY, MA_OFSZ, MA_SIZEX, MA_SIZEY, MA_SIZEZ,
 | |
|       MA_TEXR, MA_TEXG, MA_TEXB, MA_DEFVAR, MA_COL, MA_NOR, MA_VAR, MA_DISP
 | |
|       2. Lamp Ipo: LA_ENERG, LA_R, LA_G, LA_B, LA_DIST, LA_SPOSI, LA_SPOBL,
 | |
|       LA_QUAD1, LA_QUAD2, LA_HAINT, LA_OFSX, LA_OFSY, LA_OFSZ, LA_SIZEX,
 | |
|       LA_SIZEY, LA_SIZEZ, LA_TEXR, LA_TEXG, LA_TEXB, LA_DEFVAR, LA_COL
 | |
|       3. World Ipo: WO_HORR, WO_HORG, WO_HORB, WO_ZENR, WO_ZENG, WO_ZENB,
 | |
|       WO_EXPOS, WO_MISI, WO_MISDI, WO_MISSTA, WO_MISHI, WO_STARR,
 | |
|       WO_STARB, WO_STARG, WO_STARDI, WO_STARSI, WO_OFSX, WO_OFSY,
 | |
|       WO_OFSZ, WO_SIZEX, WO_SIZEY, WO_SIZEZ, WO_TEXR, WO_TEXG,
 | |
|       WO_TEXB, WO_DEFVAR, WO_COL, WO_NOR, WO_VAR
 | |
|       4. Camera Ipo: CA_LENS, CA_CLSTA, CA_CLEND, CA_APERT, CA_FDIST
 | |
|       5. Object Ipo: OB_LOCX, OB_LOCY, OB_LOCZ, OB_DLOCX, OB_DLOCY, OB_DLOCZ,
 | |
|       OB_ROTX, OB_ROTY, OB_ROTZ, OB_DROTX, OB_DROTY, OB_DROTZ,
 | |
|       OB_SIZEX, OB_SIZEY, OB_SIZEZ, OB_DSIZEX, OB_DSIZEY, OB_DSIZEZ,
 | |
|       OB_LAYER, OB_TIME, OB_COLR, OB_COLG, OB_COLB, OB_COLA,
 | |
|       OB_FSTRENG, OB_FFALL, OB_RDAMP, OB_DAMPING, OB_PERM
 | |
|       6. Curve Ipo: CU_SPEED
 | |
|       7. Constraint Ipo: CO_INF
 | |
|       8. Texture Ipo: TE_NSIZE, TE_NDEPTH, TE_NTYPE, TE_TURB, TE_VNW1, TE_VNW2,
 | |
|       TE_VNW3, TE_VNW4, TE_MINKMEXP, TE_DISTM, TE_COLT, TE_ISCALE,
 | |
|       TE_DISTA, TE_MGTYPE, TE_MGH, TE_LACU, TE_OCT, TE_MGOFF,
 | |
|       TE_MGGAIN, TE_NBASE1, TE_NBASE2, TE_COLR, TE_COLG, TE_COLB,
 | |
|       TE_BRIGHT, TE_CONTRAS
 | |
|       9. Pose/Action Ipo: PO_LOCX, PO_LOCY, PO_LOCZ, PO_SIZEX, PO_SIZEY,
 | |
|       PO_SIZEZ, PO_QUATW, PO_QUATX, PO_QUATY, PO_QUATZ
 | |
|       10. Sequence Ipo: SQ_FAC
 | |
| 
 | |
| Shape Key Ipos are handled differently from other Ipos.  The user can rename
 | |
| the curves, so string are used to access them instead of constants.  The
 | |
| L{Ipo.curveConsts} attribute for Shape Key Ipos returns a list of all defined
 | |
| key names.
 | |
| """
 | |
| 
 | |
| def New (type, name):
 | |
|   """
 | |
|   Creates a new Ipo.
 | |
|   @type type: string
 | |
|   @type name: string
 | |
|   @param type: The Ipo's blocktype. Depends on the object the Ipo will be
 | |
|       linked to. Currently supported types are Object, Camera, World,
 | |
|       Material, Texture, Lamp, Action, Constraint, Sequence, Curve, Key.
 | |
|   @param name: The name for this Ipo.
 | |
|   @rtype: Blender Ipo
 | |
|   @return: The created Ipo.
 | |
|   """
 | |
| 
 | |
| def Get (name = None):
 | |
|   """
 | |
|   Get the Ipo from Blender.
 | |
|   @type name: string
 | |
|   @param name: The name of the requested Ipo, or nothing.
 | |
|   @rtype: Blender Ipo or a list of Blender Ipos
 | |
|   @return: It depends on the 'name' parameter:
 | |
|       - (name): The Ipo with the given name;
 | |
|       - (): A list with all Ipos in the current scene.
 | |
|   """
 | |
| 
 | |
| class Ipo:
 | |
|   """
 | |
|   The Ipo object
 | |
|   ==============
 | |
|   This object gives access to Ipo data from all objects in Blender.
 | |
|   @Note: Blender Materials, Lamps and Worlds have I{texture channels} which
 | |
|   allow the user to assign textures to them.  The Blender Ipo Window allows
 | |
|   the user to access the IpoCurves for these channels by specifying a number
 | |
|   between 0 and 9 (the number appears next to the Ipo type in the window
 | |
|   header).  Prior to Version 2.42, the BPy API did not allow users to access
 | |
|   these texture channels in a predictable manner.  A new attribute named
 | |
|   L{channel} was added to the API in Version 2.42 to correct this problem.
 | |
| 
 | |
|   The current channel setting has an effect on the operators B{[]}, B{len()} 
 | |
|   and others.  For example, suppose a Material has three IpoCurves 
 | |
|   (R, G, and B), and two texture channels (numbered 0 and 1), and furthermore
 | |
|   channel 0 has one Ipocurve (Col).  The IpoCurve Col can only be
 | |
|   "seen" through the API when B{ipo.channel} is 0.  Setting B{ipo.channel} to
 | |
|   1 will cause this curve to be ignored by B{len(ipo)}::
 | |
| 
 | |
|     from Blender import Ipo
 | |
| 
 | |
|     ipo = Ipo.Get('MatIpo')
 | |
|     for channel in xrange(2):
 | |
|         ipo.channel = channel
 | |
|         print 'channel is',channel
 | |
| 	    print ' len is',len(ipo)
 | |
|         names = dict([(x[1],x[0]) for x in ipo.curveConsts.items()])
 | |
|         for curve in [Ipo.MA_R,Ipo.MA_COL]:
 | |
|             print ' ',names[curve],'is',curve in ipo
 | |
| 
 | |
|   will output::
 | |
|     channel is 0
 | |
|     len is 4
 | |
|       MA_R is True
 | |
|       MA_COL is True
 | |
|     channel is 1
 | |
|     len is 3
 | |
|       MA_R is True
 | |
|       MA_COL is False
 | |
| 
 | |
|   @ivar name: The Ipo datablock's name
 | |
|   @type name: string
 | |
|   @ivar curves: Ipo curves currently defined for the Ipo.
 | |
|   @type curves: list of Ipocurves.
 | |
|   @ivar curveConsts: The valid Ipo curves for this Ipo.  These can be used
 | |
|   by the [] mapping operator.  The value 
 | |
|   depends on the Ipo curve type.  If the Ipo is any type other than a Key or
 | |
|   Shape Ipo, this attribute returns a set of constants that can be
 | |
|   used to specify a particular curve.  For Key or Shape Ipos, the attribute
 | |
|   returns a list of all defined keys by name.  
 | |
|   @type curveConsts: constant or list of strings. Read-only.
 | |
|   @ivar channel: the current texture channel for Blender object which support
 | |
|   textures (materials, lamps and worlds).  Returns None if the Ipo does
 | |
|   not support texture channels. Value must be in the range [0,9].
 | |
|   @type channel: int or None
 | |
|   """
 | |
| 
 | |
|   def __contains__():
 | |
|     """
 | |
|     The "in" operator for Ipos. It returns B{True} if the specified 
 | |
|     IpoCurve exists for the Ipo.  This operator B{should not} be used to 
 | |
|     test for whether a curve constant is valid for a particular Ipo type.
 | |
|     Many constants for different Ipo types have the same value, and it is
 | |
|     the constant's value used internally.
 | |
|     No exceptions are raised if the argument is not a valid curve constant or
 | |
|     or string, nor does the operator return B{True} when the curve
 | |
|     constant is valid but does not currently exist.  As such, it should only be
 | |
|     used to test for specific curves when the Ipo type is known::
 | |
|       ipo = Object.Get('Cube').ipo # get Object-type Ipo 
 | |
|       if ipo:
 | |
|         print Ipo.OB_LOCX in ipo # prints "True" if 'LocX' curve exists
 | |
|         print Ipo.MA_R in ipo    # also prints "True" since MA_R and OB_LOCX are have the same value
 | |
|         print 'hiccup' in ipo    # always prints "False" since argument is not a constant
 | |
| 
 | |
|     @return: see above.
 | |
|     @rtype: Boolean
 | |
|     """
 | |
| 
 | |
|   def __getitem__():
 | |
|     """
 | |
|     This operator is similar to the Python dictionary mapping operator [],
 | |
|     except that the user cannot assign arbitrary keys.  Each Ipo type has
 | |
|     a pre-defined set of IpoCurves which may or may not exist at a given time.      This operator
 | |
|     will either return an IpoCurve object if the specified curve exists,
 | |
|     return None if the curve does not exists, or throws a KeyError exception
 | |
|     if the curve is not valid for this Ipo type.
 | |
|     @return: an IpoCurve object if it exists
 | |
|     @rtype: IpoCurve or None
 | |
|     @raise KeyError: an undefined IpoCurve was specified for the Ipo
 | |
|     """
 | |
| 
 | |
|   def __iter__():
 | |
|     """
 | |
|     Iterator for Ipos.  It returns all the defined IpoCurve objects associated 
 | |
|     with the Ipo.  For example::
 | |
|        from Blender import Ipo
 | |
| 
 | |
|        ipo = Ipo.Get()
 | |
|        if len(ipo) > 0:
 | |
|          ipo = ipo[0]
 | |
|          print 'ipo name is',ipo.name
 | |
|          for icu in ipo:
 | |
|            print ' curve name is',icu.name
 | |
|     might result in::
 | |
|        ipo name is ObIpo
 | |
|          curve name is LocX
 | |
|          curve name is LocY
 | |
|          curve name is LocZ
 | |
| 
 | |
|     @return: an IpoCurve object
 | |
|     @rtype: IpoCurve
 | |
|     """
 | |
| 
 | |
|   def __len__():
 | |
|     """
 | |
|     Returns the number of curves defined for the Ipo.
 | |
|     @return: number of defined IpoCurves
 | |
|     @rtype: int
 | |
|     """
 | |
| 
 | |
|   def getName():
 | |
|     """
 | |
|     Gets the name of the Ipo (B{deprecated}).  See the L{name} attribute.
 | |
|     @rtype: string
 | |
|     @return: the name of the Ipo.
 | |
|     """
 | |
| 
 | |
|   def setName(newname):
 | |
|     """
 | |
|     Sets the name of the Ipo (B{deprecated}).  See the L{name} attribute.
 | |
|     @type newname: string
 | |
|     @rtype: None
 | |
|     @return: None
 | |
|     """
 | |
| 
 | |
|   def getCurves():
 | |
|     """
 | |
|     Gets all the IpoCurves of the Ipo (B{deprecated}).  Use the
 | |
|     L{iterator operator []<__iter__>} instead.
 | |
|     @rtype: list of IpoCurves
 | |
|     @return: A list (possibly empty) containing all the IpoCurves associated
 | |
|     to the Ipo object.
 | |
|     """
 | |
| 
 | |
|   def getCurve(curve):
 | |
|     """
 | |
|     Return the specified IpoCurve (B{deprecated}).  Use the L{mapping
 | |
|     operator B{[]}<__getitem__>} instead.
 | |
|     If the curve does not exist in the Ipo,
 | |
|     None is returned.  I{curve} can be either a string or an integer,
 | |
|     denoting either the name of the Ipo curve or its internal adrcode.
 | |
|     The possible Ipo curve names are:
 | |
|     
 | |
|       1. Camera Ipo:  Lens, ClSta, ClEnd, Apert, FDist.
 | |
|       2. Material Ipo: R, G, B, SpecR, SpecG, SpecB, MirR, MirG, MirB, Ref,
 | |
|       Alpha, Emit, Amb, Spec, Hard, SpTra, Ior, Mode, HaSize, Translu,
 | |
|       RayMir, FresMir, FresMirI, FresTra, FresTraI, TraGlow, OfsX, OfsY,
 | |
|       OfsZ, SizeX, SizeY, SizeZ, texR, texG, texB, DefVar, Col, Nor, Var,
 | |
|       Disp.
 | |
|       3. Object Ipo: LocX, LocY, LocZ, dLocX, dLocY, dLocZ, RotX, RotY, RotZ,
 | |
|       dRotX, dRotY, dRotZ, SizeX, SizeY, SizeZ, dSizeX, dSizeY, dSizeZ,
 | |
|       Layer, Time, ColR, ColG, ColB, ColA, FStreng, FFall, Damping,
 | |
|       RDamp, Perm.
 | |
|       4. Lamp Ipo: Energ, R, G, B, Dist, SpoSi, SpoBl, Quad1, Quad2, HaInt.
 | |
|       5. World Ipo: HorR, HorG, HorB, ZenR, ZenG, ZenB, Expos, Misi, MisDi,
 | |
|       MisSta, MisHi, StaR, StaG, StaB, StarDi, StarSi, OfsX, OfsY, OfsZ,
 | |
|       SizeX, SizeY, SizeZ, TexR, TexG, TexB, DefVar, Col, Nor, Var.
 | |
|       5. World Ipo: HorR, HorG, HorB, ZenR, ZenG, ZenB, Expos, Misi, MisDi,
 | |
|       MisSta, MisHi, StarR, StarB, StarG, StarDi, StarSi, OfsX, OfsY, OfsZ,i
 | |
|       SizeX, SizeY, SizeZ, texR, texG, texB, DefVar, Col, Nor, Var.
 | |
|       6. Texture Ipo: NSize, NDepth, NType, Turb, Vnw1, Vnw2, Vnw3, Vnw4,
 | |
|       MinkMExp, DistM, ColT, iScale, DistA, MgType, MgH, Lacu, Oct,
 | |
|       MgOff, MgGain, NBase1, NBase2.
 | |
|       7. Curve Ipo: Speed.
 | |
|       8. Action Ipo: LocX, LocY, LocZ, SizeX, SizeY, SizeZ, QuatX, QuatY,
 | |
|       QuatZ, QuatW.
 | |
|       9. Sequence Ipo: Fac.
 | |
|       10. Constraint Ipo: Inf.
 | |
| 
 | |
|     The adrcode for the Ipo curve can also be given; this is useful for
 | |
|     accessing curves for Shape Key Ipos.  The adrcodes for Shape Key Ipo are
 | |
|     numbered consecutively starting at 0.
 | |
|     @type curve : string or int
 | |
|     @rtype: IpoCurve object
 | |
|     @return: the corresponding IpoCurve, or None.
 | |
|     @raise ValueError: I{curve} is not a valid name or adrcode for this Ipo
 | |
|     type.
 | |
|     """
 | |
| 
 | |
|   def addCurve(curvename):
 | |
|     """
 | |
|     Add a new curve to the Ipo object. The possible values for I{curvename} are:
 | |
|       1. Camera Ipo:  Lens, ClSta, ClEnd, Apert, FDist.
 | |
|       2. Material Ipo: R, G, B, SpecR, SpecG, SpecB, MirR, MirG, MirB, Ref,
 | |
|       Alpha, Emit, Amb, Spec, Hard, SpTra, Ior, Mode, HaSize, Translu,
 | |
|       RayMir, FresMir, FresMirI, FresTra, FresTraI, TraGlow, OfsX, OfsY,
 | |
|       OfsZ, SizeX, SizeY, SizeZ, texR, texG, texB, DefVar, Col, Nor, Var,
 | |
|       Disp.
 | |
|       3. Object Ipo: LocX, LocY, LocZ, dLocX, dLocY, dLocZ, RotX, RotY, RotZ,
 | |
|       dRotX, dRotY, dRotZ, SizeX, SizeY, SizeZ, dSizeX, dSizeY, dSizeZ,
 | |
|       Layer, Time, ColR, ColG, ColB, ColA, FStreng, FFall, Damping,
 | |
|       RDamp, Perm.
 | |
|       4. Lamp Ipo: Energ, R, G, B, Dist, SpoSi, SpoBl, Quad1, Quad2, HaInt.
 | |
|       5. World Ipo: HorR, HorG, HorB, ZenR, ZenG, ZenB, Expos, Misi, MisDi,
 | |
|       MisSta, MisHi, StaR, StaG, StaB, StarDi, StarSi, OfsX, OfsY, OfsZ,
 | |
|       SizeX, SizeY, SizeZ, TexR, TexG, TexB, DefVar, Col, Nor, Var.
 | |
|       5. World Ipo: HorR, HorG, HorB, ZenR, ZenG, ZenB, Expos, Misi, MisDi,
 | |
|       MisSta, MisHi, StarR, StarB, StarG, StarDi, StarSi, OfsX, OfsY, OfsZ,i
 | |
|       SizeX, SizeY, SizeZ, texR, texG, texB, DefVar, Col, Nor, Var.
 | |
|       6. Texture Ipo: NSize, NDepth, NType, Turb, Vnw1, Vnw2, Vnw3, Vnw4,
 | |
|       MinkMExp, DistM, ColT, iScale, DistA, MgType, MgH, Lacu, Oct,
 | |
|       MgOff, MgGain, NBase1, NBase2.
 | |
|       7. Curve Ipo: Speed.
 | |
|       8. Action Ipo: LocX, LocY, LocZ, SizeX, SizeY, SizeZ, QuatX, QuatY,
 | |
|       QuatZ, QuatW.
 | |
|       9. Sequence Ipo: Fac.
 | |
|       10. Constraint Ipo: Inf.
 | |
| 
 | |
|     For Key IPOs, the name must be an existing KeyBlock name.  Use
 | |
|     L{curveConsts} to determine the set of valid names.
 | |
| 
 | |
|     @type curvename : string
 | |
|     @rtype: IpoCurve object
 | |
|     @return: the corresponding IpoCurve, or None.
 | |
|     @raise ValueError: I{curvename} is not valid or already exists
 | |
|     """
 | |
| 
 | |
|   def delCurve(curvename):
 | |
|     """
 | |
|     Delete an existing curve from the Ipo object (B{deprecated}).
 | |
|     Use the L{mapping operator B{[]}<__getitem__>} instead::
 | |
|        from Blender import Ipo
 | |
| 
 | |
|        ipo = Ipo.Get('ObIpo')
 | |
|        ipo[Ipo.LOCX] = None
 | |
| 
 | |
|     @type curvename : string
 | |
|     @rtype: None
 | |
|     @return: None.
 | |
|     """
 | |
| 
 | |
|   def getBlocktype():
 | |
|     """
 | |
|     Gets the blocktype of the Ipo.
 | |
|     @rtype: int
 | |
|     @return: the blocktype of the Ipo.
 | |
|     """
 | |
| 
 | |
|   def setBlocktype(newblocktype):
 | |
|     """
 | |
|     Sets the blocktype of the Ipo.
 | |
|     @type newblocktype: int 
 | |
|     @rtype: None
 | |
|     @return: None
 | |
|     @warn: 'newblocktype' should not be changed unless you really know what
 | |
|        you are doing ...
 | |
|     """
 | |
| 
 | |
|   def getRctf():
 | |
|     """
 | |
|     Gets the rctf of the Ipo.
 | |
|     Kind of bounding box...
 | |
|     @rtype: list of floats
 | |
|     @return: the rctf of the Ipo.
 | |
|     """
 | |
| 
 | |
|   def setRctf(newrctf):
 | |
|     """
 | |
|     Sets the rctf of the Ipo.
 | |
|     @type newrctf: four floats.
 | |
|     @rtype: None
 | |
|     @return: None
 | |
|     @warn: rctf should not be changed unless you really know what you are
 | |
|        doing ...
 | |
|     """
 | |
| 
 | |
|   def getNcurves():
 | |
|     """
 | |
|     Gets the number of curves of the Ipo (B{deprecated}).  Use
 | |
|     L{len(ipo)<__len__>} instead.
 | |
|     @rtype: int 
 | |
|     @return: the number of curve of the Ipo.
 | |
|     """
 | |
|     
 | |
|   def getCurveBP(curvepos):
 | |
|     """
 | |
|     This method is unsupported.  BPoint Ipo curves are not implemented.
 | |
|     Calling this method throws a NotImplementedError exception.
 | |
|     @raise NotImplementedError: this method B{always} raises an exception
 | |
|     """
 | |
|  
 | |
|   def getBeztriple(curvepos,pointpos):
 | |
|     """
 | |
|     Gets a beztriple of the Ipo (B{deprecated}).  B{Note}:
 | |
|     Use L{IpoCurve.bezierPoints<IpoCurve.IpoCurve.bezierPoints>} instead.
 | |
|     @type curvepos: int
 | |
|     @param curvepos: the position of the curve in the Ipo.
 | |
|     @type pointpos: int
 | |
|     @param pointpos: the position of the point in the curve.
 | |
|     @rtype: list of 9 floats
 | |
|     @return: the beztriple of the Ipo, or an error is raised.
 | |
|     """
 | |
| 
 | |
|   def setBeztriple(curvepos,pointpos,newbeztriple):
 | |
|     """
 | |
|     Sets the beztriple of the Ipo (B{deprecated}).  B{Note}: use 
 | |
|     L{IpoCurve.bezierPoints<IpoCurve.IpoCurve.bezierPoints>} to get a
 | |
|     BezTriple point, then use the
 | |
|     L{BezTriple} API to set the point's attributes.
 | |
|     @type curvepos: int
 | |
|     @param curvepos: the position of the curve in the Ipo.
 | |
|     @type pointpos: int
 | |
|     @param pointpos: the position of the point in the curve.
 | |
|     @type newbeztriple: list of 9 floats
 | |
|     @param newbeztriple: the new value for the point
 | |
|     @rtype: None
 | |
|     @return: None
 | |
|     """
 | |
|     
 | |
|   def getCurveCurval(curvepos):
 | |
|     """
 | |
|     Gets the current value of a curve of the Ipo (B{deprecated}). B{Note}:
 | |
|     new scripts should use L{IpoCurve.evaluate()<IpoCurve.IpoCurve.evaluate>}.
 | |
|     @type curvepos: int or string
 | |
|     @param curvepos: the position of the curve in the Ipo or the name of the
 | |
|         curve
 | |
|     @rtype: float
 | |
|     @return: the current value of the selected curve of the Ipo.
 | |
|     """
 | |
| 
 | |
|   def EvaluateCurveOn(curvepos,time):
 | |
|     """
 | |
|     Gets the value at a specific time of a curve of the Ipo (B{deprecated}).
 | |
|     B{Note}: new scripts should use 
 | |
|     L{IpoCurve.evaluate()<IpoCurve.IpoCurve.evaluate>}.
 | |
|     @type curvepos: int
 | |
|     @param curvepos: the position of the curve in the Ipo.
 | |
|     @type time: float
 | |
|     @param time: the desired time.
 | |
|     @rtype: float
 | |
|     @return: the current value of the selected curve of the Ipo at the given
 | |
|     time.
 | |
|     """
 | |
| 
 | 
