/[escript]/temp_trunk_copy/pyvisi/py_src/light.py
ViewVC logotype

Contents of /temp_trunk_copy/pyvisi/py_src/light.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1197 - (show annotations)
Mon Jun 18 02:08:34 2007 UTC (13 years, 11 months ago) by jongui
Original Path: trunk/pyvisi/py_src/light.py
File MIME type: text/x-python
File size: 4297 byte(s)
Update the way movies are generated. Please refer to the examples. 

The user can now either specify the image range(first and last images inclusive):
mov.imageRange(input_directory = PYVISI_EXAMPLE_IMAGES_PATH,
        first_image = IMAGE_NAME + "000938.jpg",
		last_image = IMAGE_NAME + "000948.jpg")
mov.makeMovie(os.path.join(PYVISI_EXAMPLE_IMAGES_PATH, "movie.mpg"))

or the user can specify a list of images:

lst = ['image1.jpg', 'image5.jpg', 'image7.jpg]
mov.imageList(input_directory = PYVISI_EXAMPLE_IMAGES_PATH, image_list = lst)
mov.makeMovie(os.path.join(PYVISI_EXAMPLE_IMAGES_PATH, "movie.mpg"))


1 """
2 @var __author__: name of author
3 @var __copyright__: copyrights
4 @var __license__: licence agreement
5 @var __url__: url entry point on documentation
6 @var __version__: version
7 @var __date__: date of the version
8 """
9
10 __author__="John Ngui, john.ngui@uq.edu.au"
11 __copyright__=""" Copyright (c) 2006 by ACcESS MNRF
12 http://www.access.edu.au
13 Primary Business: Queensland, Australia"""
14 __license__="""Licensed under the Open Software License version 3.0
15 http://www.opensource.org/licenses/osl-3.0.php"""
16 __url__="http://www.iservo.edu.au/esys"
17 __version__="$Revision$"
18 __date__="$Date$"
19
20
21 import vtk
22 from position import GlobalPosition
23 from constant import Viewport
24
25 class Light:
26 """
27 Class that defines a light. A light controls the lighting for the
28 rendered object and works in a similar way to L{Camera <camera.Camera>}.
29 """
30
31 # The SOUTH_WEST default viewport is used when there is only one viewport.
32 # This saves the user from specifying the viewport when there is only one.
33 def __init__(self, scene, viewport = Viewport.SOUTH_WEST):
34 """
35 Initialise the light.
36
37 @type scene: L{Scene <scene.Scene>} object
38 @param scene: Scene in which components are to be added to
39 @type viewport: L{Viewport <constant.Viewport>} constant
40 @param viewport: Viewport in which objects are to be rendered on
41 """
42
43 self.__viewport = viewport
44 self.__vtk_light = vtk.vtkLight()
45
46 # Keeps track whether light has been modified.
47 self.__modified = True
48 # Keeps track whether the modification to the light was due to the
49 # instantiation. If it is, then __setupLight() method is called.
50 self.__initialization = True
51 scene._addVisualizationModules(self)
52
53 def __setupLight(self, scene):
54 """
55 Set up the light and associate it with the renderer.
56
57 @type scene: L{Scene <scene.Scene>} object
58 @param scene: Scene in which objects are to be rendered on
59 """
60
61 scene._addLight(self.__viewport, self.__vtk_light)
62
63 def setColor(self, color):
64 """
65 Set the light color.
66
67 @type color: L{Color <constant.Color>} constant
68 @param color: Light color
69 """
70
71 self.__vtk_light.SetColor(color)
72 self.__modified = True
73
74 def setFocalPoint(self, position):
75 """
76 Set the focal point of the light.
77
78 @type position: L{GlobalPosition <position.GlobalPosition>} object
79 @param position: Light focal point
80 """
81
82 self.__vtk_light.SetFocalPoint(position._getGlobalPosition())
83 self.__modified = True
84
85 def setPosition(self, position):
86 """
87 Set the position of the light.
88
89 @type position: L{GlobalPosition <position.GlobalPosition>} object
90 @param position: Light position
91 """
92
93 self.__vtk_light.SetPosition(position._getGlobalPosition())
94 self.__modified = True
95
96 # Elevation and azimuth is set to zero so that users do not
97 # have to change both at the same time.
98 def setAngle(self, elevation = 0, azimuth = 0):
99 """
100 An alternative to set the position and focal point of the light
101 by using the elevation and azimuth.
102
103 @type elevation: Number
104 @param elevation: Degree to rotate the light to the top and bottom
105 @type azimuth: Number
106 @param azimuth: Degree to rotate the light to the left and right
107 """
108
109 # NOTE: The elevation angle of light does not appear to suffer the same
110 # constraint as the elevation angle of camera where the elevation
111 # angle is constraint between 90/-90.
112 self.__vtk_light.SetDirectionAngle(elevation, azimuth)
113 self.__modified = True
114
115 def setIntensity(self, intensity):
116 """
117 Set the intensity (brightness) of the light.
118
119 @type intensity: Number
120 @param intensity: Intensity (brightness) of the light
121 """
122
123 self.__vtk_light.SetIntensity(intensity)
124 self.__modified = True
125
126 def _isModified(self):
127 """
128 Return whether the Light has been modified.
129
130 @rtype: Boolean
131 @return: True or False
132 """
133
134 if (self.__modified == True):
135 return True
136 else:
137 return False
138
139 def _render(self, scene):
140 """
141 Render the light.
142
143 @type scene: L{Scene <scene.Scene>} object
144 @param scene: Scene in which objects are to be rendered on
145 """
146
147 if(self._isModified() == True):
148 # Will only be true once only when the light is instantiated.
149 if(self.__initialization == True):
150 self.__setupLight(scene)
151 self.__initialization == False
152
153 self.__modified = False
154
155

  ViewVC Help
Powered by ViewVC 1.1.26