1 |
""" |
2 |
@author: John Ngui |
3 |
@author: Lutz Gross |
4 |
""" |
5 |
|
6 |
import vtk |
7 |
|
8 |
class Light: |
9 |
""" |
10 |
Class that controls the light and its settings. |
11 |
""" |
12 |
|
13 |
def __init__(self, scene): |
14 |
""" |
15 |
@type scene: L{Scene <scene.Scene>} object |
16 |
@param scene: Scene in which components are to be added to |
17 |
""" |
18 |
|
19 |
self.scene = scene |
20 |
self.vtk_light = None |
21 |
|
22 |
self.setLight() |
23 |
|
24 |
def setLight(self): |
25 |
""" |
26 |
Set up the light and associate it with the renderer. |
27 |
""" |
28 |
self.vtk_light = vtk.vtkLight() |
29 |
self.scene.getRenderer().AddLight(self.vtk_light) |
30 |
|
31 |
def setColor(self, colorMap): |
32 |
""" |
33 |
Set the color of the light. |
34 |
|
35 |
@type colorMap: L{ColorMap <colormap.ColorMap>} object |
36 |
@param colorMap: Color of the light |
37 |
""" |
38 |
|
39 |
self.vtk_light.SetColor(colorMap.getR(), colorMap.getG(), |
40 |
colorMap.getB()) |
41 |
|
42 |
|
43 |
def setFocalPoint(self, position): |
44 |
""" |
45 |
Set the focal point of the light. |
46 |
|
47 |
@type position: L{Position <geo.Position>} object |
48 |
@param position: Light focal point position |
49 |
""" |
50 |
|
51 |
self.vtk_light.SetFocalPoint(position.getXCoor(), position.getYCoor(), |
52 |
position.getZCoor()) |
53 |
|
54 |
def setPosition(self, position): |
55 |
""" |
56 |
Set the position of the light. |
57 |
|
58 |
@type position: L{Position <geo.Position>} object |
59 |
@param position: Light position |
60 |
""" |
61 |
|
62 |
self.vtk_light.SetPosition(position.getXCoor(), position.getYCoor(), |
63 |
position.getZCoor()) |
64 |
|
65 |
def setIntensity(self, intensity): |
66 |
""" |
67 |
Set the intensity (brightness) of the light. |
68 |
|
69 |
@type intensity: Number |
70 |
@param intensity: intensity (brightness) of the light |
71 |
""" |
72 |
|
73 |
self.vtk_light.SetIntensity(intensity) |
74 |
|
75 |
|
76 |
|