Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
2.3 KiB

2 years ago
# Test the button source
package require vtk
package require vtkinteraction
# The image to map on the button
vtkJPEGReader r
r SetFileName "$VTK_DATA_ROOT/Data/beach.jpg"
r Update
vtkTexture t
t SetInputConnection [r GetOutputPort]
set dims [[r GetOutput] GetDimensions]
set d1 [lindex $dims 0]
set d2 [lindex $dims 1]
# The first elliptical button
vtkEllipticalButtonSource bs
bs SetWidth 2
bs SetHeight 1
bs SetDepth 0.2
bs SetCircumferentialResolution 64
bs SetRadialRatio 1.1
bs SetShoulderResolution 8
bs SetTextureResolution 4
bs TwoSidedOn
vtkPolyDataMapper bMapper
bMapper SetInputConnection [bs GetOutputPort]
vtkActor b1
b1 SetMapper bMapper
b1 SetTexture t
# The second elliptical button
vtkEllipticalButtonSource bs2
bs2 SetWidth 2
bs2 SetHeight 1
bs2 SetDepth 0.2
bs2 SetCircumferentialResolution 64
bs2 SetRadialRatio 1.1
bs2 SetShoulderResolution 8
bs2 SetTextureResolution 4
bs2 TwoSidedOn
bs2 SetCenter 2 0 0
bs2 SetTextureStyleToFitImage
bs2 SetTextureDimensions $d1 $d2
vtkPolyDataMapper b2Mapper
b2Mapper SetInputConnection [bs2 GetOutputPort]
vtkActor b2
b2 SetMapper b2Mapper
b2 SetTexture t
# The third rectangular button
vtkRectangularButtonSource bs3
bs3 SetWidth 1.5
bs3 SetHeight 0.75
bs3 SetDepth 0.2
bs3 TwoSidedOn
bs3 SetCenter 0 1 0
bs3 SetTextureDimensions $d1 $d2
vtkPolyDataMapper b3Mapper
b3Mapper SetInputConnection [bs3 GetOutputPort]
vtkActor b3
b3 SetMapper b3Mapper
b3 SetTexture t
# The fourth rectangular button
vtkRectangularButtonSource bs4
bs4 SetWidth 1.5
bs4 SetHeight 0.75
bs4 SetDepth 0.2
bs4 TwoSidedOn
bs4 SetCenter 2 1 0
bs4 SetTextureStyleToFitImage
bs4 SetTextureDimensions $d1 $d2
vtkPolyDataMapper b4Mapper
b4Mapper SetInputConnection [bs4 GetOutputPort]
vtkActor b4
b4 SetMapper b4Mapper
b4 SetTexture t
# Create the RenderWindow, Renderer and Interactive Renderer
#
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
ren1 AddActor b1
ren1 AddActor b2
ren1 AddActor b3
ren1 AddActor b4
ren1 SetBackground 0 0 0
renWin SetSize 250 150
renWin Render
[ren1 GetActiveCamera] Zoom 1.5
renWin Render
iren AddObserver UserEvent {wm deiconify .vtkInteract}
# prevent the tk window from showing up then start the event loop
wm withdraw .