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.
79 lines
1.8 KiB
79 lines
1.8 KiB
package require vtk
|
|
package require vtkinteraction
|
|
|
|
# Create the RenderWindow, Renderer and both Actors
|
|
#
|
|
vtkRenderer ren1
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren1
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
|
|
# create room profile
|
|
#
|
|
vtkPoints points
|
|
points InsertPoint 0 0 0 0
|
|
points InsertPoint 1 1 0 0
|
|
points InsertPoint 2 1 1 0
|
|
points InsertPoint 3 2 1 0
|
|
|
|
vtkCellArray lines
|
|
lines InsertNextCell 4;#number of points
|
|
lines InsertCellPoint 0
|
|
lines InsertCellPoint 1
|
|
lines InsertCellPoint 2
|
|
lines InsertCellPoint 3
|
|
|
|
vtkPolyData profile
|
|
profile SetPoints points
|
|
profile SetLines lines
|
|
|
|
vtkTransform xfm
|
|
xfm Translate 0 0 8
|
|
xfm RotateZ 90
|
|
|
|
vtkTransformPolyDataFilter xfmPd
|
|
xfmPd SetInput profile
|
|
xfmPd SetTransform xfm
|
|
|
|
vtkAppendPolyData appendPD
|
|
appendPD AddInput profile
|
|
appendPD AddInput [xfmPd GetOutput]
|
|
|
|
# extrude profile to make wall
|
|
#
|
|
vtkRuledSurfaceFilter extrude
|
|
extrude SetInputConnection [appendPD GetOutputPort]
|
|
extrude SetResolution 51 51
|
|
extrude SetRuledModeToResample
|
|
|
|
vtkPolyDataMapper map
|
|
map SetInputConnection [extrude GetOutputPort]
|
|
|
|
vtkActor wall
|
|
wall SetMapper map
|
|
[wall GetProperty] SetColor 0.3800 0.7000 0.1600
|
|
|
|
|
|
# Add the actors to the renderer, set the background and size
|
|
#
|
|
ren1 AddActor wall
|
|
ren1 SetBackground 1 1 1
|
|
|
|
renWin SetSize 200 200
|
|
|
|
[ren1 GetActiveCamera] SetPosition 12.9841 -1.81551 8.82706
|
|
[ren1 GetActiveCamera] SetFocalPoint 0.5 1 4
|
|
[ren1 GetActiveCamera] SetViewAngle 30
|
|
[ren1 GetActiveCamera] SetViewUp 0.128644 -0.675064 -0.726456
|
|
[ren1 GetActiveCamera] SetClippingRange 7.59758 21.3643
|
|
|
|
renWin Render
|
|
# render the image
|
|
#
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
iren Initialize
|
|
|
|
# prevent the tk window from showing up then start the event loop
|
|
wm withdraw .
|
|
|
|
|