2003-06-24 07:21:17 +00:00
|
|
|
# Blender.Lamp module and the Lamp PyType object
|
|
|
|
|
|
|
|
"""
|
2003-06-28 07:38:21 +00:00
|
|
|
The Blender.Lamp submodule.
|
|
|
|
|
2005-04-21 19:44:52 +00:00
|
|
|
B{New}: L{Lamp.clearScriptLinks} accepts a parameter now.
|
New scripts:
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
2004-07-03 05:17:04 +00:00
|
|
|
|
2003-06-28 07:38:21 +00:00
|
|
|
Lamp Data
|
|
|
|
=========
|
2003-06-24 07:21:17 +00:00
|
|
|
|
|
|
|
This module provides control over B{Lamp Data} objects in Blender.
|
|
|
|
|
|
|
|
Example::
|
|
|
|
|
|
|
|
from Blender import Lamp
|
|
|
|
l = Lamp.New('Spot') # create new 'Spot' lamp data
|
|
|
|
l.setMode('square', 'shadow') # set these two lamp mode flags
|
|
|
|
ob = Object.New('Lamp') # create new lamp object
|
|
|
|
ob.link(l) # link lamp obj with lamp data
|
2005-09-21 19:48:40 +00:00
|
|
|
|
|
|
|
@type Types: read-only dictionary
|
|
|
|
@var Types: The lamp types.
|
|
|
|
- 'Lamp': 0
|
|
|
|
- 'Sun' : 1
|
|
|
|
- 'Spot': 2
|
|
|
|
- 'Hemi': 3
|
|
|
|
- 'Area': 4
|
|
|
|
- 'Photon': 5
|
|
|
|
@type Modes: read-only dictionary
|
|
|
|
@var Modes: The lamp modes. Modes may be ORed together.
|
|
|
|
- 'Shadows'
|
|
|
|
- 'Halo'
|
|
|
|
- 'Layer'
|
|
|
|
- 'Quad'
|
|
|
|
- 'Negative'
|
|
|
|
- 'OnlyShadow'
|
|
|
|
- 'Sphere'
|
|
|
|
- 'Square'
|
2003-06-24 07:21:17 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
def New (type = 'Lamp', name = 'LampData'):
|
|
|
|
"""
|
|
|
|
Create a new Lamp Data object.
|
|
|
|
@type type: string
|
2004-10-09 05:41:03 +00:00
|
|
|
@param type: The Lamp type: 'Lamp', 'Sun', 'Spot', 'Hemi', 'Area', or 'Photon'.
|
2003-06-24 07:21:17 +00:00
|
|
|
@type name: string
|
|
|
|
@param name: The Lamp Data name.
|
|
|
|
@rtype: Blender Lamp
|
|
|
|
@return: The created Lamp Data object.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def Get (name = None):
|
|
|
|
"""
|
|
|
|
Get the Lamp Data object(s) from Blender.
|
|
|
|
@type name: string
|
|
|
|
@param name: The name of the Lamp Data.
|
|
|
|
@rtype: Blender Lamp or a list of Blender Lamps
|
2003-07-12 18:02:54 +00:00
|
|
|
@return: It depends on the I{name} parameter:
|
|
|
|
- (name): The Lamp Data object with the given I{name};
|
2003-06-24 07:21:17 +00:00
|
|
|
- (): A list with all Lamp Data objects in the current scene.
|
|
|
|
"""
|
|
|
|
|
|
|
|
class Lamp:
|
|
|
|
"""
|
|
|
|
The Lamp Data object
|
|
|
|
====================
|
|
|
|
This object gives access to Lamp-specific data in Blender.
|
2005-09-21 19:48:40 +00:00
|
|
|
|
|
|
|
@ivar B: Lamp color blue component.
|
|
|
|
Value is clamped to the range [0.0,1.0].
|
|
|
|
@type B: float
|
|
|
|
@ivar G: Lamp color green component.
|
|
|
|
Value is clamped to the range [0.0,1.0].
|
|
|
|
@type G: float
|
|
|
|
@ivar R: Lamp color red component.
|
|
|
|
Value is clamped to the range [0.0,1.0].
|
|
|
|
@type R: float
|
|
|
|
@ivar bias: Lamp shadow map sampling bias.
|
|
|
|
Value is clamped to the range [0.01,5.0].
|
|
|
|
@type bias: float
|
|
|
|
@ivar bufferSize: Lamp shadow buffer size.
|
|
|
|
Value is clamped to the range [512,5120].
|
|
|
|
@type bufferSize: int
|
|
|
|
@ivar clipEnd: Lamp shadow map clip end.
|
|
|
|
Value is clamped to the range [1.0,5000.0].
|
|
|
|
@type clipEnd: float
|
|
|
|
@ivar clipStart: Lamp shadow map clip start.
|
|
|
|
Value is clamped to the range [0.1,1000.0].
|
|
|
|
@type clipStart: float
|
|
|
|
@ivar col: Lamp RGB color triplet.
|
|
|
|
Components are clamped to the range [0.0,1.0].
|
|
|
|
@type col: RGB tuple
|
|
|
|
@ivar dist: Lamp clipping distance.
|
|
|
|
Value is clamped to the range [0.1,5000.0].
|
|
|
|
@type dist: float
|
|
|
|
@ivar energy: Lamp light intensity.
|
|
|
|
Value is clamped to the range [0.0,10.0].
|
|
|
|
@type energy: float
|
|
|
|
@ivar haloInt: Lamp spotlight halo intensity.
|
|
|
|
Value is clamped to the range [0.0,5.0].
|
|
|
|
@type haloInt: float
|
|
|
|
@ivar haloStep: Lamp volumetric halo sampling frequency.
|
|
|
|
Value is clamped to the range [0,12].
|
|
|
|
@type haloStep: int
|
|
|
|
@ivar ipo: Lamp Ipo.
|
|
|
|
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 mode: Lamp mode bitfield. See L{Modes} for values.
|
|
|
|
@type mode: int
|
|
|
|
@ivar name: Lamp data name.
|
|
|
|
@type name: str
|
|
|
|
@ivar quad1: Quad lamp linear distance attenuation.
|
|
|
|
Value is clamped to the range [0.0,1.0].
|
|
|
|
@type quad1: float
|
|
|
|
@ivar quad2: Quad lamp quadratic distance attenuation.
|
|
|
|
Value is clamped to the range [0.0,1.0].
|
|
|
|
@type quad2: float
|
|
|
|
@ivar samples: Lamp shadow map samples.
|
|
|
|
Value is clamped to the range [1,16].
|
|
|
|
@type samples: int
|
|
|
|
@ivar softness: Lamp shadow sample area size.
|
|
|
|
Value is clamped to the range [1.0,100.0].
|
|
|
|
@type softness: float
|
|
|
|
@ivar spotBlend: Lamp spotlight edge softness.
|
|
|
|
Value is clamped to the range [0.0,1.0].
|
|
|
|
@type spotBlend: float
|
|
|
|
@ivar spotSize: Lamp spotlight beam angle (in degrees).
|
|
|
|
Value is clamped to the range [1.0,180.0].
|
|
|
|
@type spotSize: float
|
|
|
|
@ivar type: Lamp type. See L{Types} for values.
|
|
|
|
@type type: int
|
|
|
|
@ivar users: Number of lamp users.
|
|
|
|
@type users: int
|
|
|
|
|
2003-06-24 07:21:17 +00:00
|
|
|
@warning: Most member variables assume values in some [Min, Max] interval.
|
|
|
|
When trying to set them, the given parameter will be clamped to lie in
|
|
|
|
that range: if val < Min, then val = Min, if val > Max, then val = Max.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getName():
|
|
|
|
"""
|
|
|
|
Get the name of this Lamp Data object.
|
|
|
|
@rtype: string
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setName(name):
|
|
|
|
"""
|
|
|
|
Set the name of this Lamp Data object.
|
|
|
|
@type name: string
|
|
|
|
@param name: The new name.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getType():
|
|
|
|
"""
|
|
|
|
Get this Lamp's type.
|
|
|
|
@rtype: int
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setType(type):
|
|
|
|
"""
|
|
|
|
Set this Lamp's type.
|
|
|
|
@type type: string
|
2004-10-09 05:41:03 +00:00
|
|
|
@param type: The Lamp type: 'Lamp', 'Sun', 'Spot', 'Hemi', 'Area', or 'Photon'
|
2003-06-24 07:21:17 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
def getMode():
|
|
|
|
"""
|
|
|
|
Get this Lamp's mode flags.
|
|
|
|
@rtype: int
|
|
|
|
@return: B{OR'ed value}. Use the Modes dictionary to check which flags
|
|
|
|
are 'on'.
|
|
|
|
|
|
|
|
Example::
|
|
|
|
flags = mylamp.getMode()
|
|
|
|
if flags & mylamp.Modes['Shadows']:
|
|
|
|
print "This lamp produces shadows"
|
|
|
|
else:
|
|
|
|
print "The 'Shadows' flag is off"
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setMode(m = None, m2 = None, m3 = None, m4 = None,
|
|
|
|
m5 = None, m6 = None, m7 = None, m8 = None):
|
|
|
|
"""
|
|
|
|
Set this Lamp's mode flags. Mode strings given are turned 'on'.
|
|
|
|
Those not provided are turned 'off', so lamp.setMode() -- without
|
|
|
|
arguments -- turns off all mode flags for Lamp lamp.
|
|
|
|
@type m: string
|
|
|
|
@param m: A mode flag. From 1 to 8 can be set at the same time.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getSamples():
|
|
|
|
"""
|
|
|
|
Get this lamp's samples value.
|
|
|
|
@rtype: int
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setSamples(samples):
|
|
|
|
"""
|
|
|
|
Set the samples value.
|
|
|
|
@type samples: int
|
|
|
|
@param samples: The new samples value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getBufferSize():
|
|
|
|
"""
|
|
|
|
Get this lamp's buffer size.
|
|
|
|
@rtype: int
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setBufferSize(bufsize):
|
|
|
|
"""
|
|
|
|
Set the buffer size value.
|
|
|
|
@type bufsize: int
|
|
|
|
@param bufsize: The new buffer size value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getHaloStep():
|
|
|
|
"""
|
|
|
|
Get this lamp's halo step value.
|
|
|
|
@rtype: int
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setHaloStep(hastep):
|
|
|
|
"""
|
|
|
|
Set the halo step value.
|
|
|
|
@type hastep: int
|
|
|
|
@param hastep: The new halo step value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getEnergy():
|
|
|
|
"""
|
|
|
|
Get this lamp's energy intensity value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setEnergy(energy):
|
|
|
|
"""
|
|
|
|
Set the energy intensity value.
|
|
|
|
@type energy: float
|
|
|
|
@param energy: The new energy value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getDist():
|
|
|
|
"""
|
|
|
|
Get this lamp's distance value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setDist(distance):
|
|
|
|
"""
|
|
|
|
Set the distance value.
|
|
|
|
@type distance: float
|
|
|
|
@param distance: The new distance value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getSpotSize():
|
|
|
|
"""
|
|
|
|
Get this lamp's spot size value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setSpotSize(spotsize):
|
|
|
|
"""
|
|
|
|
Set the spot size value.
|
|
|
|
@type spotsize: float
|
|
|
|
@param spotsize: The new spot size value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getSpotBlend():
|
|
|
|
"""
|
|
|
|
Get this lamp's spot blend value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setSpotBlend(spotblend):
|
|
|
|
"""
|
|
|
|
Set the spot blend value.
|
|
|
|
@type spotblend: float
|
|
|
|
@param spotblend: The new spot blend value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getClipStart():
|
|
|
|
"""
|
|
|
|
Get this lamp's clip start value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setClipStart(clipstart):
|
|
|
|
"""
|
|
|
|
Set the clip start value.
|
|
|
|
@type clipstart: float
|
|
|
|
@param clipstart: The new clip start value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getClipEnd():
|
|
|
|
"""
|
|
|
|
Get this lamp's clip end value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setClipEnd(clipend):
|
|
|
|
"""
|
|
|
|
Set the clip end value.
|
|
|
|
@type clipend: float
|
|
|
|
@param clipend: The new clip end value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getBias():
|
|
|
|
"""
|
|
|
|
Get this lamp's bias value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setBias(bias):
|
|
|
|
"""
|
|
|
|
Set the bias value.
|
|
|
|
@type bias: float
|
|
|
|
@param bias: The new bias value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getSoftness():
|
|
|
|
"""
|
|
|
|
Get this lamp's softness value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setSoftness(softness):
|
|
|
|
"""
|
|
|
|
Set the softness value.
|
|
|
|
@type softness: float
|
|
|
|
@param softness: The new softness value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getHaloInt():
|
|
|
|
"""
|
|
|
|
Get this lamp's halo intensity value.
|
|
|
|
@rtype: float
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setHaloInt(haloint):
|
|
|
|
"""
|
|
|
|
Set the halo intensity value.
|
|
|
|
@type haloint: float
|
|
|
|
@param haloint: The new halo intensity value.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getQuad1():
|
|
|
|
"""
|
|
|
|
Get this lamp's quad 1 value.
|
|
|
|
@rtype: float
|
|
|
|
@warning: this only applies to Lamps with the 'Quad' flag on.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setQuad1(quad1):
|
|
|
|
"""
|
|
|
|
Set the quad 1 value.
|
|
|
|
@type quad1: float
|
|
|
|
@warning: this only applies to Lamps with the 'Quad' flag on.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getQuad2():
|
|
|
|
"""
|
|
|
|
Get this lamp's quad 2 value.
|
|
|
|
@rtype: float
|
|
|
|
@warning: this only applies to Lamps with the 'Quad' flag on.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setQuad2(quad2):
|
|
|
|
"""
|
|
|
|
Set the quad 2 value.
|
|
|
|
@type quad2: float
|
|
|
|
@param quad2: The new quad 2 value.
|
|
|
|
@warning: this only applies to Lamps with the 'Quad' flag on.
|
|
|
|
"""
|
New scripts:
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
2004-07-03 05:17:04 +00:00
|
|
|
|
|
|
|
def getScriptLinks (event):
|
|
|
|
"""
|
|
|
|
Get a list with this Lamp's script links of type 'event'.
|
|
|
|
@type event: string
|
2005-05-22 07:22:34 +00:00
|
|
|
@param event: "FrameChanged", "Redraw" or "Render".
|
New scripts:
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
2004-07-03 05:17:04 +00:00
|
|
|
@rtype: list
|
|
|
|
@return: a list with Blender L{Text} names (the script links of the given
|
|
|
|
'event' type) or None if there are no script links at all.
|
|
|
|
"""
|
|
|
|
|
2005-04-21 19:44:52 +00:00
|
|
|
def clearScriptLinks (links = None):
|
New scripts:
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
2004-07-03 05:17:04 +00:00
|
|
|
"""
|
2005-04-21 19:44:52 +00:00
|
|
|
Delete script links from this Lamp. If no list is specified, all
|
|
|
|
script links are deleted.
|
|
|
|
@type links: list of strings
|
|
|
|
@param links: None (default) or a list of Blender L{Text} names.
|
New scripts:
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
2004-07-03 05:17:04 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
def addScriptLink (text, event):
|
|
|
|
"""
|
|
|
|
Add a new script link to this Lamp.
|
|
|
|
@type text: string
|
|
|
|
@param text: the name of an existing Blender L{Text}.
|
|
|
|
@type event: string
|
2005-05-22 07:22:34 +00:00
|
|
|
@param event: "FrameChanged", "Redraw" or "Render".
|
New scripts:
- hotkeys, obdatacopier and renameobjectbyblock, all from Jean-Michel Soler (jms);
- bevel_center by Loic Berthe, suggested for inclusion by jms;
- doc_browser, by Daniel Dunbar (Zr)
Thanks to them for the new contributions!
(I included doc_browser at 'Misc' because only users interested in script writing would actually use it, but it could also be under 'Help'. Opinions?)
BPython related:
- Added scriptlink methods to object, lamp, camera and world.
- Object: added object.makeTrack and object.clearTrack (old track method).
- sys: made sys.exists(path) return 0 for not found; 1 for file, 2 for dir and -1 for neither.
- doc updates and fixes.
- made ONLOAD event work. G.f's SCENESCRIPT bit was being zeroed in set_app_data.
- Blender: updated functions Load and Save to support the builtin importers and exporters besides .blend (dxf, videoscape, vrml 1.0, stl, ...)
- Draw: added mouse wheel events.
- Scene: added scene.play to play back animations (like ALT+A and SHIFT+ALT+A). Makes a good counter, too, when the 'win' attribute is set to a space that doesn't "animate".
The scene.play() addition and the fix to ONLOAD scriptlinks is part of the work for a Blender demo mode. It already works, but I'll still add support for Radiosity calculations and fix a thing in main(): it executes onload scripts too early (BIF_Init), giving funny results in alt+a animations and renderings when firing up Blender. Loading after the program is up has no such problems. When I finish I'll post examples of demo mode scripts.
2004-07-03 05:17:04 +00:00
|
|
|
"""
|
2004-07-26 21:44:55 +00:00
|
|
|
|
2004-07-27 14:18:32 +00:00
|
|
|
def getIpo():
|
2004-07-26 21:44:55 +00:00
|
|
|
"""
|
|
|
|
Get the Ipo associated with this Lamp object, if any.
|
|
|
|
@rtype: Ipo
|
|
|
|
@return: the wrapped ipo or None.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def setIpo(ipo):
|
|
|
|
"""
|
|
|
|
Link an ipo to this Lamp object.
|
|
|
|
@type ipo: Blender Ipo
|
|
|
|
@param ipo: a "lamp data" ipo.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def clearIpo():
|
|
|
|
"""
|
|
|
|
Unlink the ipo from this Lamp object.
|
|
|
|
@return: True if there was an ipo linked or False otherwise.
|
|
|
|
"""
|
2005-03-26 18:01:30 +00:00
|
|
|
|
|
|
|
def insertIpoKey(keytype):
|
|
|
|
"""
|
|
|
|
Inserts keytype values in lamp ipo at curframe. Uses module constants.
|
|
|
|
@type keytype: Integer
|
|
|
|
@param keytype:
|
|
|
|
-RGB
|
|
|
|
-ENERGY
|
|
|
|
-SPOTSIZE
|
|
|
|
-OFFSET
|
|
|
|
-SIZE
|
|
|
|
@return: py_none
|
|
|
|
"""
|