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.

179 lines
5.2 KiB

2 years ago
package require vtk
package require vtkinteraction
vtkRenderer ren1
vtkRenderWindow renWin
renWin AddRenderer ren1
renWin SetSize 300 300
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
vtkCamera camera
camera ParallelProjectionOn
camera SetViewUp 0 1 0
camera SetFocalPoint 12 10.5 15
camera SetPosition -70 15 34
camera ComputeViewPlaneNormal
ren1 SetActiveCamera camera
# Create the reader for the data
#vtkStructuredPointsReader reader
vtkGaussianCubeReader reader
reader SetFileName "$VTK_DATA_ROOT/Data/m4_TotalDensity.cube"
reader SetHBScale 1.1
reader SetBScale 10
reader Update
set range [[[[reader GetGridOutput] GetPointData] GetScalars] GetRange]
set min [lindex $range 0]
set max [lindex $range 1]
vtkImageShiftScale readerSS
readerSS SetInput [reader GetGridOutput]
readerSS SetShift [expr $min * -1]
readerSS SetScale [expr 255 / ($max - $min)]
readerSS SetOutputScalarTypeToUnsignedChar
vtkOutlineFilter bounds
bounds SetInput [reader GetGridOutput]
vtkPolyDataMapper boundsMapper
boundsMapper SetInputConnection [bounds GetOutputPort]
vtkActor boundsActor
boundsActor SetMapper boundsMapper
[boundsActor GetProperty] SetColor 0 0 0
vtkContourFilter contour
contour SetInput [reader GetGridOutput]
eval contour GenerateValues 5 0 .05
vtkPolyDataMapper contourMapper
contourMapper SetInputConnection [contour GetOutputPort]
eval contourMapper SetScalarRange 0 .1
[contourMapper GetLookupTable] SetHueRange 0.32 0
vtkActor contourActor
contourActor SetMapper contourMapper
[contourActor GetProperty] SetOpacity .5
# Create transfer mapping scalar value to opacity
vtkPiecewiseFunction opacityTransferFunction
opacityTransferFunction AddPoint 0 0.01
opacityTransferFunction AddPoint 255 0.35
opacityTransferFunction ClampingOn
# Create transfer mapping scalar value to color
vtkColorTransferFunction colorTransferFunction
colorTransferFunction AddHSVPoint 0.0 0.66 1.0 1.0
colorTransferFunction AddHSVPoint 50.0 0.33 1.0 1.0
colorTransferFunction AddHSVPoint 100.0 0.00 1.0 1.0
# The property describes how the data will look
vtkVolumeProperty volumeProperty
volumeProperty SetColor colorTransferFunction
volumeProperty SetScalarOpacity opacityTransferFunction
volumeProperty SetInterpolationTypeToLinear
# The mapper / ray cast function know how to render the data
vtkVolumeRayCastCompositeFunction compositeFunction
vtkVolumeRayCastMapper volumeMapper
#vtkVolumeTextureMapper2D volumeMapper
volumeMapper SetVolumeRayCastFunction compositeFunction
volumeMapper SetInputConnection [readerSS GetOutputPort]
# The volume holds the mapper and the property and
# can be used to position/orient the volume
vtkVolume volume
volume SetMapper volumeMapper
volume SetProperty volumeProperty
ren1 AddVolume volume
#ren1 AddActor contourActor
ren1 AddActor boundsActor
######################################################################
vtkSphereSource Sphere
Sphere SetCenter 0 0 0
Sphere SetRadius 1
Sphere SetThetaResolution 16
Sphere SetStartTheta 0
Sphere SetEndTheta 360
Sphere SetPhiResolution 16
Sphere SetStartPhi 0
Sphere SetEndPhi 180
vtkGlyph3D Glyph
Glyph SetInputConnection [reader GetOutputPort]
Glyph SetOrient 1
Glyph SetColorMode 1
#Glyph ScalingOn
Glyph SetScaleMode 2
Glyph SetScaleFactor .6
Glyph SetSource [Sphere GetOutput]
vtkPolyDataMapper AtomsMapper
AtomsMapper SetInputConnection [Glyph GetOutputPort]
AtomsMapper SetImmediateModeRendering 1
AtomsMapper UseLookupTableScalarRangeOff
AtomsMapper SetScalarVisibility 1
AtomsMapper SetScalarModeToDefault
vtkActor Atoms
Atoms SetMapper AtomsMapper
[Atoms GetProperty] SetRepresentationToSurface
[Atoms GetProperty] SetInterpolationToGouraud
[Atoms GetProperty] SetAmbient 0.15
[Atoms GetProperty] SetDiffuse 0.85
[Atoms GetProperty] SetSpecular 0.1
[Atoms GetProperty] SetSpecularPower 100
[Atoms GetProperty] SetSpecularColor 1 1 1
[Atoms GetProperty] SetColor 1 1 1
vtkTubeFilter Tube
Tube SetInputConnection [reader GetOutputPort]
Tube SetNumberOfSides 16
Tube SetCapping 0
Tube SetRadius 0.2
Tube SetVaryRadius 0
Tube SetRadiusFactor 10
vtkPolyDataMapper BondsMapper
BondsMapper SetInputConnection [Tube GetOutputPort]
BondsMapper SetImmediateModeRendering 1
BondsMapper UseLookupTableScalarRangeOff
BondsMapper SetScalarVisibility 1
BondsMapper SetScalarModeToDefault
vtkActor Bonds
Bonds SetMapper BondsMapper
[Bonds GetProperty] SetRepresentationToSurface
[Bonds GetProperty] SetInterpolationToGouraud
[Bonds GetProperty] SetAmbient 0.15
[Bonds GetProperty] SetDiffuse 0.85
[Bonds GetProperty] SetSpecular 0.1
[Bonds GetProperty] SetSpecularPower 100
[Bonds GetProperty] SetSpecularColor 1 1 1
[Bonds GetProperty] SetColor 1 1 1
ren1 AddActor Bonds
ren1 AddActor Atoms
####################################################
ren1 SetBackground 1 1 1
ren1 ResetCamera
renWin Render
proc TkCheckAbort {} {
set foo [renWin GetEventPending]
if {$foo != 0} {renWin SetAbortRender 1}
}
renWin AddObserver "AbortCheckEvent" {TkCheckAbort}
iren AddObserver UserEvent {wm deiconify .vtkInteract}
iren Initialize
wm withdraw .