/usr/share/vtk/Annotation/Tcl/labeledMesh.tcl is in vtk-examples 5.8.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | # This example demonstrates the use of vtkLabeledDataMapper. This class
# is used for displaying numerical data from an underlying data set. In
# the case of this example, the underlying data are the point and cell
# ids.
#
# First we include the VTK Tcl packages which will make available
# all of the vtk commands to Tcl
#
package require vtk
package require vtkinteraction
# Create a selection window. We will display the point and cell ids that
# lie within this window.
set xmin 200
set xLength 100
set xmax [expr $xmin + $xLength]
set ymin 200
set yLength 100
set ymax [expr $ymin + $yLength]
vtkPoints pts
pts InsertPoint 0 $xmin $ymin 0
pts InsertPoint 1 $xmax $ymin 0
pts InsertPoint 2 $xmax $ymax 0
pts InsertPoint 3 $xmin $ymax 0
vtkCellArray rect
rect InsertNextCell 5
rect InsertCellPoint 0
rect InsertCellPoint 1
rect InsertCellPoint 2
rect InsertCellPoint 3
rect InsertCellPoint 0
vtkPolyData selectRect
selectRect SetPoints pts
selectRect SetLines rect
vtkPolyDataMapper2D rectMapper
rectMapper SetInput selectRect
vtkActor2D rectActor
rectActor SetMapper rectMapper
# Create a sphere and its associated mapper and actor.
vtkSphereSource sphere
vtkPolyDataMapper sphereMapper
sphereMapper SetInputConnection [sphere GetOutputPort]
sphereMapper GlobalImmediateModeRenderingOn
vtkActor sphereActor
sphereActor SetMapper sphereMapper
# Generate data arrays containing point and cell ids
vtkIdFilter ids
ids SetInputConnection [sphere GetOutputPort]
ids PointIdsOn
ids CellIdsOn
ids FieldDataOn
# Create the renderer here because vtkSelectVisiblePoints needs it.
vtkRenderer ren1
# Create labels for points
vtkSelectVisiblePoints visPts
visPts SetInputConnection [ids GetOutputPort]
visPts SetRenderer ren1
visPts SelectionWindowOn
visPts SetSelection $xmin [expr $xmin + $xLength] \
$ymin [expr $ymin + $yLength]
# Create the mapper to display the point ids. Specify the
# format to use for the labels. Also create the associated actor.
vtkLabeledDataMapper ldm
ldm SetInputConnection [visPts GetOutputPort]
# ldm SetLabelFormat "%g"
ldm SetLabelModeToLabelFieldData
vtkActor2D pointLabels
pointLabels SetMapper ldm
# Create labels for cells
vtkCellCenters cc
cc SetInputConnection [ids GetOutputPort]
vtkSelectVisiblePoints visCells
visCells SetInputConnection [cc GetOutputPort]
visCells SetRenderer ren1
visCells SelectionWindowOn
visCells SetSelection $xmin [expr $xmin + $xLength] \
$ymin [expr $ymin + $yLength]
# Create the mapper to display the cell ids. Specify the
# format to use for the labels. Also create the associated actor.
vtkLabeledDataMapper cellMapper
cellMapper SetInputConnection [visCells GetOutputPort]
# cellMapper SetLabelFormat "%g"
cellMapper SetLabelModeToLabelFieldData
[cellMapper GetLabelTextProperty] SetColor 0 1 0
vtkActor2D cellLabels
cellLabels SetMapper cellMapper
# Create the RenderWindow and RenderWindowInteractor
#
vtkRenderWindow renWin
renWin AddRenderer ren1
vtkRenderWindowInteractor iren
iren SetRenderWindow renWin
# Add the actors to the renderer; set the background and size;
# render
ren1 AddActor sphereActor
ren1 AddActor2D rectActor
ren1 AddActor2D pointLabels
ren1 AddActor2D cellLabels
ren1 SetBackground 1 1 1
renWin SetSize 500 500
renWin Render
# Set the user method (bound to key 'u')
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
# Withdraw the default tk window.
wm withdraw .
# Create a tcl procedure to move the selection window across the data set.
proc MoveWindow {} {
for {set y 100} {$y < 300} {incr y 25} {
for {set x 100} {$x < 300} {incr x 25} {
PlaceWindow $x $y
}
}
}
# Create a tcl procedure to draw the selection window at each location it
# is moved to.
proc PlaceWindow {xmin ymin} {
global xLength yLength
set xmax [expr $xmin + $xLength]
set ymax [expr $ymin + $yLength]
visPts SetSelection $xmin $xmax $ymin $ymax
visCells SetSelection $xmin $xmax $ymin $ymax
pts InsertPoint 0 $xmin $ymin 0
pts InsertPoint 1 $xmax $ymin 0
pts InsertPoint 2 $xmax $ymax 0
pts InsertPoint 3 $xmin $ymax 0
# Call Modified because InsertPoints does not modify vtkPoints
# (for performance reasons).
pts Modified;
renWin Render
}
# Move the selection window across the data set.
MoveWindow
# Put the selection window in the center of the render window.
# This works because the xmin = ymin = 200, xLength = yLength = 100, and
# the render window size is 500 x 500.
PlaceWindow $xmin $ymin
|