File: TestLinearRayIntegration.tcl

package info (click to toggle)
vtk 5.0.4-1.1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 51,084 kB
  • ctags: 70,426
  • sloc: cpp: 524,166; ansic: 220,276; tcl: 43,377; python: 14,037; perl: 3,102; java: 1,436; yacc: 1,033; sh: 339; lex: 248; makefile: 197; asm: 154
file content (81 lines) | stat: -rw-r--r-- 2,490 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
package require vtk
package require vtkinteraction

# Create the standard renderer, render window
# and interactor
vtkRenderer ren1
vtkRenderWindow renWin
    renWin AddRenderer ren1
vtkRenderWindowInteractor iren
    iren SetRenderWindow renWin
    iren SetDesiredUpdateRate 3

# Create a small mesh.  The coarser and more opaque the mesh, the easier it
# is to see rendering errors.
vtkImageMandelbrotSource input
    input SetWholeExtent 0 2 0 2 0 2
    input SetSizeCX 2 2 2 2
    input SetMaximumNumberOfIterations 10

# make sure we have only tetrahedra
vtkDataSetTriangleFilter trifilter
    trifilter SetInputConnection [input GetOutputPort]

# Create transfer mapping scalar value to opacity
vtkPiecewiseFunction opacityTransferFunction
    opacityTransferFunction AddPoint  0   0.0
    opacityTransferFunction AddPoint  10  1.0

# Create transfer mapping scalar value to color
vtkColorTransferFunction colorTransferFunction
    colorTransferFunction AddRGBPoint     0  1.0 0.0 1.0
    colorTransferFunction AddRGBPoint     2  0.0 0.0 1.0
    colorTransferFunction AddRGBPoint     4  0.0 1.0 1.0
    colorTransferFunction AddRGBPoint     6  0.0 1.0 0.0
    colorTransferFunction AddRGBPoint     8  1.0 1.0 0.0
    colorTransferFunction AddRGBPoint    10  1.0 0.0 0.0

# The property describes how the data will look
vtkVolumeProperty volumeProperty
    volumeProperty SetColor colorTransferFunction
    volumeProperty SetScalarOpacity opacityTransferFunction
    volumeProperty ShadeOff
    volumeProperty SetInterpolationTypeToLinear
    volumeProperty SetScalarOpacityUnitDistance 0.75

# The mapper / ray cast function / ray integrator know how to render the data
vtkUnstructuredGridVolumeRayCastMapper volumeMapper
    volumeMapper SetInputConnection [trifilter GetOutputPort]

vtkUnstructuredGridLinearRayIntegrator rayIntegrator
    volumeMapper SetRayIntegrator rayIntegrator

# 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
renWin SetSize 300 300

[ren1 GetActiveCamera] Azimuth 20.0
[ren1 GetActiveCamera] Elevation 15.0
[ren1 GetActiveCamera] Zoom 1.2

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 .