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.
117 lines
3.2 KiB
117 lines
3.2 KiB
package require vtk
|
|
package require vtkinteraction
|
|
package require vtktesting
|
|
|
|
# Create five instances of vtkPlatonicSolidSource
|
|
# corresponding to each of the five Platonic solids.
|
|
#
|
|
vtkPlatonicSolidSource tet
|
|
tet SetSolidTypeToTetrahedron
|
|
vtkPolyDataMapper tetMapper
|
|
tetMapper SetInputConnection [tet GetOutputPort]
|
|
vtkActor tetActor
|
|
tetActor SetMapper tetMapper
|
|
|
|
vtkPlatonicSolidSource cube
|
|
cube SetSolidTypeToCube
|
|
vtkPolyDataMapper cubeMapper
|
|
cubeMapper SetInputConnection [cube GetOutputPort]
|
|
vtkActor cubeActor
|
|
cubeActor SetMapper cubeMapper
|
|
cubeActor AddPosition 2.0 0 0
|
|
|
|
vtkPlatonicSolidSource oct
|
|
oct SetSolidTypeToOctahedron
|
|
vtkPolyDataMapper octMapper
|
|
octMapper SetInputConnection [oct GetOutputPort]
|
|
vtkActor octActor
|
|
octActor SetMapper octMapper
|
|
octActor AddPosition 4.0 0 0
|
|
|
|
vtkPlatonicSolidSource icosa
|
|
icosa SetSolidTypeToIcosahedron
|
|
vtkPolyDataMapper icosaMapper
|
|
icosaMapper SetInputConnection [icosa GetOutputPort]
|
|
vtkActor icosaActor
|
|
icosaActor SetMapper icosaMapper
|
|
icosaActor AddPosition 6.0 0 0
|
|
|
|
vtkPlatonicSolidSource dode
|
|
dode SetSolidTypeToDodecahedron
|
|
vtkPolyDataMapper dodeMapper
|
|
dodeMapper SetInputConnection [dode GetOutputPort]
|
|
vtkActor dodeActor
|
|
dodeActor SetMapper dodeMapper
|
|
dodeActor AddPosition 8.0 0 0
|
|
|
|
# Create rendering stuff
|
|
#
|
|
vtkRenderer ren1
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren1
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
|
|
# Add the actors to the renderer, set the background and size
|
|
#
|
|
ren1 AddActor tetActor
|
|
ren1 AddActor cubeActor
|
|
ren1 AddActor octActor
|
|
ren1 AddActor icosaActor
|
|
ren1 AddActor dodeActor
|
|
|
|
# Create a lookup table with colors for each face
|
|
#
|
|
vtkMath math
|
|
vtkLookupTable lut
|
|
lut SetNumberOfColors 20
|
|
lut Build
|
|
lut SetTableValue 0 1 0 0 1
|
|
lut SetTableValue 1 0 1 0 1
|
|
lut SetTableValue 2 1 1 0 1
|
|
lut SetTableValue 3 0 0 1 1
|
|
lut SetTableValue 4 1 0 1 1
|
|
lut SetTableValue 5 0 1 1 1
|
|
eval lut SetTableValue 6 $spring_green 1.0
|
|
eval lut SetTableValue 7 $lavender 1.0
|
|
eval lut SetTableValue 8 $mint_cream 1.0
|
|
eval lut SetTableValue 9 $violet 1.0
|
|
eval lut SetTableValue 10 $ivory_black 1.0
|
|
eval lut SetTableValue 11 $coral 1.0
|
|
eval lut SetTableValue 12 $pink 1.0
|
|
eval lut SetTableValue 13 $salmon 1.0
|
|
eval lut SetTableValue 14 $sepia 1.0
|
|
eval lut SetTableValue 15 $carrot 1.0
|
|
eval lut SetTableValue 16 $gold 1.0
|
|
eval lut SetTableValue 17 $forest_green 1.0
|
|
eval lut SetTableValue 18 $turquoise 1.0
|
|
eval lut SetTableValue 19 $plum 1.0
|
|
|
|
lut SetTableRange 0 19
|
|
tetMapper SetLookupTable lut
|
|
tetMapper SetScalarRange 0 19
|
|
cubeMapper SetLookupTable lut
|
|
cubeMapper SetScalarRange 0 19
|
|
octMapper SetLookupTable lut
|
|
octMapper SetScalarRange 0 19
|
|
icosaMapper SetLookupTable lut
|
|
icosaMapper SetScalarRange 0 19
|
|
dodeMapper SetLookupTable lut
|
|
dodeMapper SetScalarRange 0 19
|
|
|
|
set cam [ren1 GetActiveCamera]
|
|
$cam SetPosition 3.89696 7.20771 1.44123
|
|
$cam SetFocalPoint 3.96132 0 0
|
|
$cam SetViewUp -0.0079335 0.196002 -0.980571
|
|
$cam SetClippingRange 5.42814 9.78848
|
|
|
|
ren1 SetBackground 0 0 0
|
|
renWin SetSize 400 150
|
|
iren Initialize
|
|
|
|
# render the image
|
|
#
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
|
|
# prevent the tk window from showing up then start the event loop
|
|
wm withdraw .
|
|
|