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.
86 lines
1.8 KiB
86 lines
1.8 KiB
package require vtk
|
|
package require vtkinteraction
|
|
|
|
|
|
# Lets create a data set.
|
|
vtkImageData data
|
|
data SetExtent 0 31 0 31 0 31
|
|
data SetScalarTypeToFloat
|
|
|
|
# First the data array:
|
|
vtkImageGaussianSource gauss
|
|
gauss SetWholeExtent 0 30 0 30 0 30
|
|
gauss SetCenter 18 12 20
|
|
gauss SetMaximum 1.0
|
|
gauss SetStandardDeviation 10.0
|
|
gauss Update
|
|
|
|
set a [[[gauss GetOutput] GetPointData] GetScalars]
|
|
$a SetName "Gauss"
|
|
[data GetCellData] SetScalars $a
|
|
|
|
gauss Delete
|
|
|
|
|
|
# Now the material array:
|
|
vtkImageEllipsoidSource ellipse
|
|
ellipse SetWholeExtent 0 30 0 30 0 30
|
|
ellipse SetCenter 11 12 13
|
|
ellipse SetRadius 5 9 13
|
|
ellipse SetInValue 1
|
|
ellipse SetOutValue 0
|
|
ellipse SetOutputScalarTypeToInt
|
|
ellipse Update
|
|
|
|
set m [[[ellipse GetOutput] GetPointData] GetScalars]
|
|
$m SetName "Material"
|
|
[data GetCellData] AddArray $m
|
|
|
|
ellipse Delete
|
|
|
|
vtkCutMaterial cut
|
|
cut SetInput data
|
|
cut SetMaterialArrayName "Material"
|
|
cut SetMaterial 1
|
|
cut SetArrayName "Gauss"
|
|
cut SetUpVector 1 0 0
|
|
cut Update
|
|
|
|
|
|
vtkPolyDataMapper mapper2
|
|
mapper2 SetInputConnection [cut GetOutputPort]
|
|
mapper2 SetScalarRange 0 1
|
|
#apper2 SetScalarModeToUseCellFieldData
|
|
#apper2 SetColorModeToMapScalars
|
|
#apper2 ColorByArrayComponent "vtkGhostLevels" 0
|
|
|
|
vtkActor actor2
|
|
actor2 SetMapper mapper2
|
|
actor2 SetPosition 1.5 0 0
|
|
|
|
vtkRenderer ren
|
|
ren AddActor actor2
|
|
|
|
vtkRenderWindow renWin
|
|
renWin AddRenderer ren
|
|
|
|
set p [cut GetCenterPoint]
|
|
set n [cut GetNormal]
|
|
set cam [ren GetActiveCamera]
|
|
eval $cam SetFocalPoint $p
|
|
eval $cam SetViewUp [cut GetUpVector]
|
|
$cam SetPosition [expr [lindex $n 0] + [lindex $p 0]] \
|
|
[expr [lindex $n 1] + [lindex $p 1]] \
|
|
[expr [lindex $n 2] + [lindex $p 2]]
|
|
ren ResetCamera
|
|
|
|
|
|
|
|
|
|
vtkRenderWindowInteractor iren
|
|
iren SetRenderWindow renWin
|
|
iren Initialize
|
|
iren AddObserver UserEvent {wm deiconify .vtkInteract}
|
|
|
|
wm withdraw .
|
|
|
|
|