vtk-ruby 5.0.4.0-x86-mswin32-60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/VTK/common.rb +7 -0
- data/lib/VTK/common.rb.rule +1 -0
- data/lib/VTK/filtering.rb +7 -0
- data/lib/VTK/filtering.rb.rule +1 -0
- data/lib/VTK/genericfiltering.rb +7 -0
- data/lib/VTK/genericfiltering.rb.rule +1 -0
- data/lib/VTK/graphics.rb +7 -0
- data/lib/VTK/graphics.rb.rule +1 -0
- data/lib/VTK/gtk.rb +5 -0
- data/lib/VTK/gtk.rb.rule +1 -0
- data/lib/VTK/gtk/GtkGLExtVTKRenderWindow.rb +635 -0
- data/lib/VTK/gtk/GtkGLExtVTKRenderWindow.rb.rule +1 -0
- data/lib/VTK/gtk/GtkGLExtVTKRenderWindowInteractor.rb +355 -0
- data/lib/VTK/gtk/GtkGLExtVTKRenderWindowInteractor.rb.rule +1 -0
- data/lib/VTK/gtk/GtkVTKRenderWindow.rb +615 -0
- data/lib/VTK/gtk/GtkVTKRenderWindow.rb.rule +1 -0
- data/lib/VTK/gtk/GtkVTKRenderWindowInteractor.rb +336 -0
- data/lib/VTK/gtk/GtkVTKRenderWindowInteractor.rb.rule +1 -0
- data/lib/VTK/hybrid.rb +7 -0
- data/lib/VTK/hybrid.rb.rule +1 -0
- data/lib/VTK/imaging.rb +7 -0
- data/lib/VTK/imaging.rb.rule +1 -0
- data/lib/VTK/io.rb +7 -0
- data/lib/VTK/io.rb.rule +1 -0
- data/lib/VTK/parallel.rb +7 -0
- data/lib/VTK/parallel.rb.rule +1 -0
- data/lib/VTK/rendering.rb +7 -0
- data/lib/VTK/rendering.rb.rule +1 -0
- data/lib/VTK/tk.rb +4 -0
- data/lib/VTK/tk.rb.rule +1 -0
- data/lib/VTK/tk/vtkLoadRubyTkWidgets.rb +54 -0
- data/lib/VTK/tk/vtkLoadRubyTkWidgets.rb.rule +1 -0
- data/lib/VTK/tk/vtkTkImageViewerWidget.rb +377 -0
- data/lib/VTK/tk/vtkTkImageViewerWidget.rb.rule +1 -0
- data/lib/VTK/tk/vtkTkPhotoImage.rb +28 -0
- data/lib/VTK/tk/vtkTkPhotoImage.rb.rule +1 -0
- data/lib/VTK/tk/vtkTkRenderWidget.rb +486 -0
- data/lib/VTK/tk/vtkTkRenderWidget.rb.rule +1 -0
- data/lib/VTK/tk/vtkTkRenderWindowInteractor.rb +394 -0
- data/lib/VTK/tk/vtkTkRenderWindowInteractor.rb.rule +1 -0
- data/lib/VTK/util.rb +6 -0
- data/lib/VTK/util.rb.rule +1 -0
- data/lib/VTK/util/colors.rb +223 -0
- data/lib/VTK/util/colors.rb.rule +1 -0
- data/lib/VTK/util/misc.rb +68 -0
- data/lib/VTK/util/misc.rb.rule +1 -0
- data/lib/VTK/util/vtkConstants.rb +123 -0
- data/lib/VTK/util/vtkConstants.rb.rule +1 -0
- data/lib/VTK/util/vtkImageExportToArray.rb +96 -0
- data/lib/VTK/util/vtkImageExportToArray.rb.rule +1 -0
- data/lib/VTK/util/vtkImageImportFromArray.rb +116 -0
- data/lib/VTK/util/vtkImageImportFromArray.rb.rule +1 -0
- data/lib/VTK/volumerendering.rb +7 -0
- data/lib/VTK/volumerendering.rb.rule +1 -0
- data/lib/VTK/vtkCommon.dll +0 -0
- data/lib/VTK/vtkCommon.exp +0 -0
- data/lib/VTK/vtkCommon.lib +0 -0
- data/lib/VTK/vtkCommonRuby.dll +0 -0
- data/lib/VTK/vtkCommonRuby.exp +0 -0
- data/lib/VTK/vtkCommonRuby.lib +0 -0
- data/lib/VTK/vtkCommonRubyD.dll +0 -0
- data/lib/VTK/vtkCommonRubyD.exp +0 -0
- data/lib/VTK/vtkCommonRubyD.lib +0 -0
- data/lib/VTK/vtkDICOMParser.dll +0 -0
- data/lib/VTK/vtkDICOMParser.exp +0 -0
- data/lib/VTK/vtkDICOMParser.lib +0 -0
- data/lib/VTK/vtkFiltering.dll +0 -0
- data/lib/VTK/vtkFiltering.exp +0 -0
- data/lib/VTK/vtkFiltering.lib +0 -0
- data/lib/VTK/vtkFilteringRuby.dll +0 -0
- data/lib/VTK/vtkFilteringRuby.exp +0 -0
- data/lib/VTK/vtkFilteringRuby.lib +0 -0
- data/lib/VTK/vtkFilteringRubyD.dll +0 -0
- data/lib/VTK/vtkFilteringRubyD.exp +0 -0
- data/lib/VTK/vtkFilteringRubyD.lib +0 -0
- data/lib/VTK/vtkGenericFiltering.dll +0 -0
- data/lib/VTK/vtkGenericFiltering.exp +0 -0
- data/lib/VTK/vtkGenericFiltering.lib +0 -0
- data/lib/VTK/vtkGenericFilteringRuby.dll +0 -0
- data/lib/VTK/vtkGenericFilteringRuby.exp +0 -0
- data/lib/VTK/vtkGenericFilteringRuby.lib +0 -0
- data/lib/VTK/vtkGenericFilteringRubyD.dll +0 -0
- data/lib/VTK/vtkGenericFilteringRubyD.exp +0 -0
- data/lib/VTK/vtkGenericFilteringRubyD.lib +0 -0
- data/lib/VTK/vtkGraphics.dll +0 -0
- data/lib/VTK/vtkGraphics.exp +0 -0
- data/lib/VTK/vtkGraphics.lib +0 -0
- data/lib/VTK/vtkGraphicsRuby.dll +0 -0
- data/lib/VTK/vtkGraphicsRuby.exp +0 -0
- data/lib/VTK/vtkGraphicsRuby.lib +0 -0
- data/lib/VTK/vtkGraphicsRubyD.dll +0 -0
- data/lib/VTK/vtkGraphicsRubyD.exp +0 -0
- data/lib/VTK/vtkGraphicsRubyD.lib +0 -0
- data/lib/VTK/vtkHybrid.dll +0 -0
- data/lib/VTK/vtkHybrid.exp +0 -0
- data/lib/VTK/vtkHybrid.lib +0 -0
- data/lib/VTK/vtkHybridRuby.dll +0 -0
- data/lib/VTK/vtkHybridRuby.exp +0 -0
- data/lib/VTK/vtkHybridRuby.lib +0 -0
- data/lib/VTK/vtkHybridRubyD.dll +0 -0
- data/lib/VTK/vtkHybridRubyD.exp +0 -0
- data/lib/VTK/vtkHybridRubyD.lib +0 -0
- data/lib/VTK/vtkIO.dll +0 -0
- data/lib/VTK/vtkIO.exp +0 -0
- data/lib/VTK/vtkIO.lib +0 -0
- data/lib/VTK/vtkIORuby.dll +0 -0
- data/lib/VTK/vtkIORuby.exp +0 -0
- data/lib/VTK/vtkIORuby.lib +0 -0
- data/lib/VTK/vtkIORubyD.dll +0 -0
- data/lib/VTK/vtkIORubyD.exp +0 -0
- data/lib/VTK/vtkIORubyD.lib +0 -0
- data/lib/VTK/vtkImaging.dll +0 -0
- data/lib/VTK/vtkImaging.exp +0 -0
- data/lib/VTK/vtkImaging.lib +0 -0
- data/lib/VTK/vtkImagingRuby.dll +0 -0
- data/lib/VTK/vtkImagingRuby.exp +0 -0
- data/lib/VTK/vtkImagingRuby.lib +0 -0
- data/lib/VTK/vtkImagingRubyD.dll +0 -0
- data/lib/VTK/vtkImagingRubyD.exp +0 -0
- data/lib/VTK/vtkImagingRubyD.lib +0 -0
- data/lib/VTK/vtkNetCDF.dll +0 -0
- data/lib/VTK/vtkNetCDF.exp +0 -0
- data/lib/VTK/vtkNetCDF.lib +0 -0
- data/lib/VTK/vtkParallel.dll +0 -0
- data/lib/VTK/vtkParallel.exp +0 -0
- data/lib/VTK/vtkParallel.lib +0 -0
- data/lib/VTK/vtkParallelRuby.dll +0 -0
- data/lib/VTK/vtkParallelRuby.exp +0 -0
- data/lib/VTK/vtkParallelRuby.lib +0 -0
- data/lib/VTK/vtkParallelRubyD.dll +0 -0
- data/lib/VTK/vtkParallelRubyD.exp +0 -0
- data/lib/VTK/vtkParallelRubyD.lib +0 -0
- data/lib/VTK/vtkParseOGLExt.exe +0 -0
- data/lib/VTK/vtkRendering.dll +0 -0
- data/lib/VTK/vtkRendering.exp +0 -0
- data/lib/VTK/vtkRendering.lib +0 -0
- data/lib/VTK/vtkRenderingRuby.dll +0 -0
- data/lib/VTK/vtkRenderingRuby.exp +0 -0
- data/lib/VTK/vtkRenderingRuby.lib +0 -0
- data/lib/VTK/vtkRenderingRubyD.dll +0 -0
- data/lib/VTK/vtkRenderingRubyD.exp +0 -0
- data/lib/VTK/vtkRenderingRubyD.lib +0 -0
- data/lib/VTK/vtkVREncodeString.exe +0 -0
- data/lib/VTK/vtkVolumeRendering.dll +0 -0
- data/lib/VTK/vtkVolumeRendering.exp +0 -0
- data/lib/VTK/vtkVolumeRendering.lib +0 -0
- data/lib/VTK/vtkVolumeRenderingRuby.dll +0 -0
- data/lib/VTK/vtkVolumeRenderingRuby.exp +0 -0
- data/lib/VTK/vtkVolumeRenderingRuby.lib +0 -0
- data/lib/VTK/vtkVolumeRenderingRubyD.dll +0 -0
- data/lib/VTK/vtkVolumeRenderingRubyD.exp +0 -0
- data/lib/VTK/vtkVolumeRenderingRubyD.lib +0 -0
- data/lib/VTK/vtkWidgets.dll +0 -0
- data/lib/VTK/vtkWidgets.exp +0 -0
- data/lib/VTK/vtkWidgets.lib +0 -0
- data/lib/VTK/vtkWidgetsRuby.dll +0 -0
- data/lib/VTK/vtkWidgetsRuby.exp +0 -0
- data/lib/VTK/vtkWidgetsRuby.lib +0 -0
- data/lib/VTK/vtkWidgetsRubyD.dll +0 -0
- data/lib/VTK/vtkWidgetsRubyD.exp +0 -0
- data/lib/VTK/vtkWidgetsRubyD.lib +0 -0
- data/lib/VTK/vtkWrapRuby.exe +0 -0
- data/lib/VTK/vtkWrapRubyInit.exe +0 -0
- data/lib/VTK/vtk_dummy.rb +3 -0
- data/lib/VTK/vtkexoIIc.dll +0 -0
- data/lib/VTK/vtkexoIIc.exp +0 -0
- data/lib/VTK/vtkexoIIc.lib +0 -0
- data/lib/VTK/vtkexpat.dll +0 -0
- data/lib/VTK/vtkexpat.exp +0 -0
- data/lib/VTK/vtkexpat.lib +0 -0
- data/lib/VTK/vtkfreetype.dll +0 -0
- data/lib/VTK/vtkfreetype.exp +0 -0
- data/lib/VTK/vtkfreetype.lib +0 -0
- data/lib/VTK/vtkftgl.dll +0 -0
- data/lib/VTK/vtkftgl.exp +0 -0
- data/lib/VTK/vtkftgl.lib +0 -0
- data/lib/VTK/vtkjpeg.dll +0 -0
- data/lib/VTK/vtkjpeg.exp +0 -0
- data/lib/VTK/vtkjpeg.lib +0 -0
- data/lib/VTK/vtkpng.dll +0 -0
- data/lib/VTK/vtkpng.exp +0 -0
- data/lib/VTK/vtkpng.lib +0 -0
- data/lib/VTK/vtkruby.exe +0 -0
- data/lib/VTK/vtksys.dll +0 -0
- data/lib/VTK/vtksys.exp +0 -0
- data/lib/VTK/vtksys.lib +0 -0
- data/lib/VTK/vtksysEncodeExecutable.exe +0 -0
- data/lib/VTK/vtksysProcessFwd9x.exe +0 -0
- data/lib/VTK/vtktiff.dll +0 -0
- data/lib/VTK/vtktiff.exp +0 -0
- data/lib/VTK/vtktiff.lib +0 -0
- data/lib/VTK/vtkzlib.dll +0 -0
- data/lib/VTK/vtkzlib.exp +0 -0
- data/lib/VTK/vtkzlib.lib +0 -0
- data/lib/VTK/widgets.rb +7 -0
- data/lib/VTK/widgets.rb.rule +1 -0
- data/lib/setup.rb +104 -0
- data/lib/vtk.rb +35 -0
- data/lib/vtk_dummy.rb +3 -0
- metadata +256 -0
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
@@ -0,0 +1,336 @@
|
|
1
|
+
"""
|
2
|
+
Description:
|
3
|
+
|
4
|
+
Provides a pyGtk vtkRenderWindowInteractor widget. This embeds a
|
5
|
+
vtkRenderWindow inside a GTK widget && uses the
|
6
|
+
vtkGenericRenderWindowInteractor for the event handling. This is
|
7
|
+
vtkGenericRenderWindowInteractor end
|
8
|
+
based on vtkTkRenderWindow.py.
|
9
|
+
|
10
|
+
The class uses the gtkgl.GtkGLArea widget (gtkglarea). This avoids
|
11
|
+
The end
|
12
|
+
a lot of problems with flicker.
|
13
|
+
|
14
|
+
There is a working example at the bottom.
|
15
|
+
|
16
|
+
Created by Prabhu Ramachandran, April 2002.
|
17
|
+
|
18
|
+
Bugs:
|
19
|
+
|
20
|
+
(*) There is a focus related problem. Tkinter has a focus object
|
21
|
+
that handles focus events. I dont know of an equivalent object
|
22
|
+
under GTK. So, when an 'enter_notify_event' is received on the
|
23
|
+
GtkVTKRenderWindow I grab the focus but I dont know what to do when
|
24
|
+
I get a 'leave_notify_event'.
|
25
|
+
|
26
|
+
(*) Will !work under Win32 because it uses the XID of a window in
|
27
|
+
OnRealize. Suggestions to fix this will be appreciated.
|
28
|
+
|
29
|
+
"""
|
30
|
+
|
31
|
+
require 'vtk'
|
32
|
+
|
33
|
+
|
34
|
+
class GtkVTKRenderWindowInteractor(gtkgl.GtkGLArea)
|
35
|
+
|
36
|
+
""" Embeds a vtkRenderWindow into a pyGTK widget && uses
|
37
|
+
vtkGenericRenderWindowInteractor for the event handling. This
|
38
|
+
vtkGenericRenderWindowInteractor end
|
39
|
+
class embeds the RenderWindow correctly. A __getattr__ hook is
|
40
|
+
end
|
41
|
+
provided that makes the class behave like a
|
42
|
+
provided that makes the end
|
43
|
+
vtkGenericRenderWindowInteractor."""
|
44
|
+
|
45
|
+
def __init__(self, *args)
|
46
|
+
l = list(args)
|
47
|
+
attr = (gtkgl.RGBA, gtkgl.DOUBLEBUFFER)
|
48
|
+
l.insert(0, self)
|
49
|
+
l.insert(1, attr)
|
50
|
+
apply(gtkgl.GtkGLArea.__init__, l)
|
51
|
+
self._RenderWindow = Vtk::RenderWindow.new
|
52
|
+
|
53
|
+
# private attributes
|
54
|
+
self.__Created = 0
|
55
|
+
self._ActiveButton = 0
|
56
|
+
|
57
|
+
self._Iren = Vtk::GenericRenderWindowInteractor.new
|
58
|
+
self._Iren.SetRenderWindow(self._RenderWindow)
|
59
|
+
|
60
|
+
self._Iren.AddObserver('CreateTimerEvent', self.CreateTimer)
|
61
|
+
self._Iren.AddObserver('DestroyTimerEvent', self.DestroyTimer)
|
62
|
+
self.ConnectSignals
|
63
|
+
|
64
|
+
# need this to be able to handle key_press events.
|
65
|
+
self.set_flags(gtk.CAN_FOCUS)
|
66
|
+
# default size
|
67
|
+
self.set_usize(300, 300)
|
68
|
+
end
|
69
|
+
|
70
|
+
def set_usize(self, w, h)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
gtkgl.GtkGLArea.set_usize(self, w, h)
|
74
|
+
self._RenderWindow.SetSize(w, h)
|
75
|
+
self._Iren.SetSize(w, h)
|
76
|
+
self._Iren.ConfigureEvent
|
77
|
+
|
78
|
+
def ConnectSignals(self)
|
79
|
+
self.connect("realize", self.OnRealize)
|
80
|
+
self.connect("expose_event", self.OnExpose)
|
81
|
+
self.connect("configure_event", self.OnConfigure)
|
82
|
+
self.connect("button_press_event", self.OnButtonDown)
|
83
|
+
self.connect("button_release_event", self.OnButtonUp)
|
84
|
+
self.connect("motion_notify_event", self.OnMouseMove)
|
85
|
+
self.connect("enter_notify_event", self.OnEnter)
|
86
|
+
self.connect("leave_notify_event", self.OnLeave)
|
87
|
+
self.connect("key_press_event", self.OnKeyPress)
|
88
|
+
self.connect("delete_event", self.OnDestroy)
|
89
|
+
self.add_events(GDK.EXPOSURE_MASK| GDK.BUTTON_PRESS_MASK |
|
90
|
+
GDK.BUTTON_RELEASE_MASK |
|
91
|
+
GDK.KEY_PRESS_MASK |
|
92
|
+
GDK.POINTER_MOTION_MASK |
|
93
|
+
GDK.POINTER_MOTION_HINT_MASK |
|
94
|
+
GDK.ENTER_NOTIFY_MASK | GDK.LEAVE_NOTIFY_MASK)
|
95
|
+
end
|
96
|
+
|
97
|
+
def __getattr__(self, attr)
|
98
|
+
"""Makes the object behave like a
|
99
|
+
vtkGenericRenderWindowInteractor"""
|
100
|
+
if attr == '__vtk__'
|
101
|
+
return lambda t=self._Iren: t
|
102
|
+
elsif hasattr(self._Iren, attr) return getattr(self._Iren, attr)
|
103
|
+
else raise AttributeError, self.__class__.__name__ + \
|
104
|
+
" has no attribute named " + attr
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def CreateTimer(self, obj, event)
|
109
|
+
gtk.timeout_add(10, self._Iren.TimerEvent)
|
110
|
+
end
|
111
|
+
|
112
|
+
def DestroyTimer(self, obj, event)
|
113
|
+
"""The timer is a one shot timer so will expire automatically."""
|
114
|
+
return 1
|
115
|
+
end
|
116
|
+
|
117
|
+
def GetRenderWindow(self)
|
118
|
+
return self._RenderWindow
|
119
|
+
end
|
120
|
+
|
121
|
+
def Render(self)
|
122
|
+
if self.__Created
|
123
|
+
self._RenderWindow.Render
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
def OnRealize(self, *args)
|
128
|
+
if self.__Created == 0
|
129
|
+
# you can't get the xid without the window being realized.
|
130
|
+
self.realize
|
131
|
+
win_id = str(self.get_window.xid)
|
132
|
+
self._RenderWindow.SetWindowInfo(win_id)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
self._Iren.Initialize
|
136
|
+
self.__Created = 1
|
137
|
+
return gtk.TRUE
|
138
|
+
|
139
|
+
def OnConfigure(self, wid, event=nil)
|
140
|
+
sz = self._RenderWindow.GetSize
|
141
|
+
if (event.width != sz[0]) || (event.height != sz[1])
|
142
|
+
self._Iren.SetSize(event.width, event.height)
|
143
|
+
self._Iren.ConfigureEvent
|
144
|
+
end
|
145
|
+
return gtk.TRUE
|
146
|
+
end
|
147
|
+
|
148
|
+
def OnExpose(self, *args)
|
149
|
+
self.Render
|
150
|
+
return gtk.TRUE
|
151
|
+
end
|
152
|
+
|
153
|
+
def OnDestroy(self, event=nil)
|
154
|
+
self.hide
|
155
|
+
del self._RenderWindow
|
156
|
+
self.destroy
|
157
|
+
return gtk.TRUE
|
158
|
+
end
|
159
|
+
|
160
|
+
def _GetCtrlShift(self, event)
|
161
|
+
ctrl, shift = 0, 0
|
162
|
+
if ((event.state & GDK.CONTROL_MASK) == GDK.CONTROL_MASK)
|
163
|
+
ctrl = 1
|
164
|
+
end
|
165
|
+
if ((event.state & GDK.SHIFT_MASK) == GDK.SHIFT_MASK)
|
166
|
+
shift = 1
|
167
|
+
end
|
168
|
+
return ctrl, shift
|
169
|
+
end
|
170
|
+
|
171
|
+
def OnButtonDown(self, wid, event)
|
172
|
+
"""Mouse button pressed."""
|
173
|
+
m = self.get_pointer
|
174
|
+
ctrl, shift = self._GetCtrlShift(event)
|
175
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
176
|
+
chr(0), 0, nil)
|
177
|
+
button = event.button
|
178
|
+
if button == 3
|
179
|
+
self._Iren.RightButtonPressEvent
|
180
|
+
return gtk.TRUE
|
181
|
+
end
|
182
|
+
end
|
183
|
+
elif button == 1
|
184
|
+
self._Iren.LeftButtonPressEvent
|
185
|
+
return gtk.TRUE
|
186
|
+
elend
|
187
|
+
elif button == 2
|
188
|
+
self._Iren.MiddleButtonPressEvent
|
189
|
+
return gtk.TRUE
|
190
|
+
else:
|
191
|
+
return gtk.FALSE
|
192
|
+
|
193
|
+
def OnButtonUp(self, wid, event)
|
194
|
+
"""Mouse button released."""
|
195
|
+
m = self.get_pointer
|
196
|
+
ctrl, shift = self._GetCtrlShift(event)
|
197
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
198
|
+
chr(0), 0, nil)
|
199
|
+
button = event.button
|
200
|
+
if button == 3
|
201
|
+
self._Iren.RightButtonReleaseEvent
|
202
|
+
return gtk.TRUE
|
203
|
+
end
|
204
|
+
end
|
205
|
+
elend
|
206
|
+
elif button == 1
|
207
|
+
self._Iren.LeftButtonReleaseEvent
|
208
|
+
return gtk.TRUE
|
209
|
+
elend
|
210
|
+
elif button == 2
|
211
|
+
self._Iren.MiddleButtonReleaseEvent
|
212
|
+
return gtk.TRUE
|
213
|
+
|
214
|
+
return gtk.FALSE
|
215
|
+
|
216
|
+
def OnMouseMove(self, wid, event)
|
217
|
+
"""Mouse has moved."""
|
218
|
+
m = self.get_pointer
|
219
|
+
ctrl, shift = self._GetCtrlShift(event)
|
220
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
221
|
+
chr(0), 0, nil)
|
222
|
+
self._Iren.MouseMoveEvent
|
223
|
+
return gtk.TRUE
|
224
|
+
end
|
225
|
+
|
226
|
+
def OnEnter(self, wid, event)
|
227
|
+
"""Entering the vtkRenderWindow."""
|
228
|
+
self.grab_focus
|
229
|
+
m = self.get_pointer
|
230
|
+
ctrl, shift = self._GetCtrlShift(event)
|
231
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
232
|
+
chr(0), 0, nil)
|
233
|
+
self._Iren.EnterEvent
|
234
|
+
return gtk.TRUE
|
235
|
+
end
|
236
|
+
|
237
|
+
def OnLeave(self, wid, event)
|
238
|
+
"""Leaving the vtkRenderWindow."""
|
239
|
+
m = self.get_pointer
|
240
|
+
ctrl, shift = self._GetCtrlShift(event)
|
241
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
242
|
+
chr(0), 0, nil)
|
243
|
+
self._Iren.LeaveEvent
|
244
|
+
return gtk.TRUE
|
245
|
+
end
|
246
|
+
|
247
|
+
def OnKeyPress(self, wid, event)
|
248
|
+
"""Key pressed."""
|
249
|
+
m = self.get_pointer
|
250
|
+
ctrl, shift = self._GetCtrlShift(event)
|
251
|
+
end
|
252
|
+
elend
|
253
|
+
keycode, keysym = event.keyval, event.string
|
254
|
+
key = chr(0)
|
255
|
+
if keycode < 256
|
256
|
+
key = chr(keycode)
|
257
|
+
end
|
258
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
259
|
+
key, 0, keysym)
|
260
|
+
self._Iren.KeyPressEvent
|
261
|
+
self._Iren.CharEvent
|
262
|
+
return gtk.TRUE
|
263
|
+
|
264
|
+
def OnKeyRelease(self, wid, event)
|
265
|
+
"Key released."
|
266
|
+
m = self.get_pointer
|
267
|
+
ctrl, shift = self._GetCtrlShift(event)
|
268
|
+
end
|
269
|
+
keycode, keysym = event.keyval, event.string
|
270
|
+
key = chr(0)
|
271
|
+
if keycode < 256
|
272
|
+
key = chr(keycode)
|
273
|
+
end
|
274
|
+
self._Iren.SetEventInformationFlipY(m[0], m[1], ctrl, shift,
|
275
|
+
key, 0, keysym)
|
276
|
+
self._Iren.KeyReleaseEvent
|
277
|
+
return gtk.TRUE
|
278
|
+
|
279
|
+
def Initialize(self)
|
280
|
+
end
|
281
|
+
if self.__Created
|
282
|
+
end
|
283
|
+
self._Iren.Initialize
|
284
|
+
|
285
|
+
|
286
|
+
def main
|
287
|
+
# The main window
|
288
|
+
window = gtk.GtkWindow(gtk.WINDOW_TOPLEVEL)
|
289
|
+
window.set_title("A GtkVTKRenderWindow Demo!")
|
290
|
+
window.connect("destroy", gtk.mainquit)
|
291
|
+
window.connect("delete_event", gtk.mainquit)
|
292
|
+
window.set_border_width(10)
|
293
|
+
|
294
|
+
# A VBox into which widgets are packed.
|
295
|
+
vbox = gtk.GtkVBox(spacing=3)
|
296
|
+
window.add(vbox)
|
297
|
+
vbox.show
|
298
|
+
|
299
|
+
# The GtkVTKRenderWindow
|
300
|
+
gvtk = GtkVTKRenderWindowInteractor
|
301
|
+
#gvtk.SetDesiredUpdateRate(1000)
|
302
|
+
gvtk.set_usize(400, 400)
|
303
|
+
vbox.pack_start(gvtk)
|
304
|
+
gvtk.show
|
305
|
+
gvtk.Initialize
|
306
|
+
gvtk.Start
|
307
|
+
# prevents 'q' from exiting the app.
|
308
|
+
gvtk.AddObserver("ExitEvent", lambda o,e,x=nil: x)
|
309
|
+
|
310
|
+
# The VTK stuff.
|
311
|
+
cone = Vtk::ConeSource.new
|
312
|
+
cone.SetResolution(80)
|
313
|
+
coneMapper = Vtk::PolyDataMapper.new
|
314
|
+
coneMapper.SetInput(cone.GetOutput)
|
315
|
+
#coneActor = Vtk::LODActor.new
|
316
|
+
coneActor = Vtk::Actor.new
|
317
|
+
coneActor.SetMapper(coneMapper)
|
318
|
+
coneActor.GetProperty.SetColor(0.5, 0.5, 1.0)
|
319
|
+
ren = Vtk::Renderer.new
|
320
|
+
gvtk.GetRenderWindow.AddRenderer(ren)
|
321
|
+
ren.AddActor(coneActor)
|
322
|
+
|
323
|
+
# A simple quit button
|
324
|
+
quit = gtk.GtkButton("Quit!")
|
325
|
+
quit.connect("clicked", gtk.mainquit)
|
326
|
+
vbox.pack_start(quit)
|
327
|
+
quit.show
|
328
|
+
|
329
|
+
# show the main window && start event processing.
|
330
|
+
window.show
|
331
|
+
gtk.mainloop
|
332
|
+
end
|
333
|
+
|
334
|
+
|
335
|
+
if __name__ == "__main__"
|
336
|
+
main
|
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
data/lib/VTK/hybrid.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
data/lib/VTK/imaging.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
data/lib/VTK/io.rb
ADDED
data/lib/VTK/io.rb.rule
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
data/lib/VTK/parallel.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
data/lib/VTK/tk.rb
ADDED
data/lib/VTK/tk.rb.rule
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# generated from CMake
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
require 'tk'
|
3
|
+
|
4
|
+
def Vtk.LoadRubyTkWidgets
|
5
|
+
=begin
|
6
|
+
vtkLoadRubyTkWidgets(interp) -- load vtk-tk widget extensions
|
7
|
+
|
8
|
+
This is a mess of mixed python and tcl code that searches for the
|
9
|
+
shared object file that contains the python-vtk-tk widgets. Both
|
10
|
+
the ruby path and the tcl path are searched.
|
11
|
+
=end
|
12
|
+
name = 'vtkRenderingRubyTkWidgets'
|
13
|
+
pkgname = name.downcase.capitalize
|
14
|
+
|
15
|
+
# find out if the file is already loaded
|
16
|
+
loaded = Tk.tk_call('info', 'loaded')
|
17
|
+
if loaded.include?(pkgname)
|
18
|
+
return false
|
19
|
+
end
|
20
|
+
|
21
|
+
# create the platform-dependent file name
|
22
|
+
prefix = ''
|
23
|
+
if Config::CONFIG['arch']=~/linux/
|
24
|
+
prefix = 'lib'
|
25
|
+
end
|
26
|
+
extension = Tk.tk_call('info', 'sharedlibextension')
|
27
|
+
filename = prefix+name+extension
|
28
|
+
|
29
|
+
# create an extensive list of paths to search
|
30
|
+
pathlist = $LOAD_PATH
|
31
|
+
# add tcl paths, ensure that {} is handled properly
|
32
|
+
auto_paths = Tk::AUTO_PATH.to_a
|
33
|
+
pathlist += auto_paths
|
34
|
+
|
35
|
+
# a common place for these sorts of things
|
36
|
+
if Config::CONFIG['arch']=~/linux/
|
37
|
+
pathlist += ['/usr/local/lib']
|
38
|
+
end
|
39
|
+
|
40
|
+
# attempt to load
|
41
|
+
for path in pathlist
|
42
|
+
fullpath = File.join(path, filename)
|
43
|
+
begin
|
44
|
+
Tk.load_tcllibrary(fullpath, pkgname)
|
45
|
+
return true
|
46
|
+
rescue
|
47
|
+
next
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# re-generate the error
|
52
|
+
Tk.tk_call('load', filename)
|
53
|
+
return nil
|
54
|
+
end
|