This file is indexed.

/usr/share/vtk/GUI/Tcl/StreamlinesWithLineWidget.tcl is in vtk-examples 5.8.0-17.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
package require vtk
package require vtkinteraction
package require vtktesting

# This example demonstrates how to use the vtkLineWidget to seed
# and manipulate streamlines. Two line widgets are created. One is
# invoked by pressing 'W', the other by pressing 'L'. Both can exist
# together.

# Start by loading some data.
#
vtkPLOT3DReader pl3d
    pl3d SetXYZFileName "$VTK_DATA_ROOT/Data/combxyz.bin"
    pl3d SetQFileName "$VTK_DATA_ROOT/Data/combq.bin"
    pl3d SetScalarFunctionNumber 100
    pl3d SetVectorFunctionNumber 202
    pl3d Update

# The line widget is used seed the streamlines.
#
vtkLineWidget lineWidget
vtkPolyData seeds
lineWidget SetInput [pl3d GetOutput]
lineWidget SetAlignToYAxis
lineWidget PlaceWidget
lineWidget GetPolyData seeds
lineWidget ClampToBoundsOn

vtkRungeKutta4 rk4
vtkStreamLine streamer
    streamer SetInputConnection [pl3d GetOutputPort]
    streamer SetSource seeds
    streamer SetMaximumPropagationTime 100
    streamer SetIntegrationStepLength .2
    streamer SetStepLength .001
    streamer SetNumberOfThreads 1
    streamer SetIntegrationDirectionToForward
    streamer VorticityOn
    streamer SetIntegrator rk4
vtkRibbonFilter rf
    rf SetInputConnection [streamer GetOutputPort]
    rf SetWidth 0.1
    rf SetWidthFactor 5
vtkPolyDataMapper streamMapper
    streamMapper SetInputConnection [rf GetOutputPort]
    eval streamMapper SetScalarRange [[pl3d GetOutput] GetScalarRange]
vtkActor streamline
    streamline SetMapper streamMapper
    streamline VisibilityOff

# The second line widget is used seed more streamlines.
#
vtkLineWidget lineWidget2
vtkPolyData seeds2
lineWidget2 SetInput [pl3d GetOutput]
lineWidget2 PlaceWidget
lineWidget2 GetPolyData seeds2
lineWidget2 SetKeyPressActivationValue L

vtkStreamLine streamer2
    streamer2 SetInputConnection [pl3d GetOutputPort]
    streamer2 SetSource seeds2
    streamer2 SetMaximumPropagationTime 100
    streamer2 SetIntegrationStepLength .2
    streamer2 SetStepLength .001
    streamer2 SetNumberOfThreads 1
    streamer2 SetIntegrationDirectionToForward
    streamer2 VorticityOn
    streamer2 SetIntegrator rk4
vtkRibbonFilter rf2
    rf2 SetInputConnection [streamer2 GetOutputPort]
    rf2 SetWidth 0.1
    rf2 SetWidthFactor 5
vtkPolyDataMapper streamMapper2
    streamMapper2 SetInputConnection [rf2 GetOutputPort]
    eval streamMapper2 SetScalarRange [[pl3d GetOutput] GetScalarRange]
vtkActor streamline2
    streamline2 SetMapper streamMapper2
    streamline2 VisibilityOff

vtkStructuredGridOutlineFilter outline
    outline SetInputConnection [pl3d GetOutputPort]
vtkPolyDataMapper outlineMapper
    outlineMapper SetInputConnection [outline GetOutputPort]
vtkActor outlineActor
    outlineActor SetMapper outlineMapper

# Create the RenderWindow, Renderer and both Actors
#
vtkRenderer ren1
vtkRenderWindow renWin
    renWin AddRenderer ren1
vtkRenderWindowInteractor iren
    iren SetRenderWindow renWin

# Associate the line widget with the interactor
lineWidget SetInteractor iren
lineWidget AddObserver StartInteractionEvent BeginInteraction
lineWidget AddObserver InteractionEvent GenerateStreamlines

lineWidget2 SetInteractor iren
lineWidget2 AddObserver StartInteractionEvent BeginInteraction2
lineWidget2 AddObserver EndInteractionEvent GenerateStreamlines2

# Add the actors to the renderer, set the background and size
#
ren1 AddActor outlineActor
ren1 AddActor streamline
ren1 AddActor streamline2

ren1 SetBackground 1 1 1
renWin SetSize 300 300
ren1 SetBackground 0.1 0.2 0.4

set cam1 [ren1 GetActiveCamera]
$cam1 SetClippingRange 3.95297 50
$cam1 SetFocalPoint 9.71821 0.458166 29.3999
$cam1 SetPosition 2.7439 -37.3196 38.7167
$cam1 SetViewUp -0.16123 0.264271 0.950876

# render the image
#
iren AddObserver UserEvent {wm deiconify .vtkInteract}
renWin Render

# Prevent the tk window from showing up then start the event loop.
wm withdraw .

# Actually generate streamlines.
proc BeginInteraction {} {
    streamline VisibilityOn
}

proc GenerateStreamlines {} {
    lineWidget GetPolyData seeds 
}

proc BeginInteraction2 {} {
    streamline2 VisibilityOn
}

proc GenerateStreamlines2 {} {
    lineWidget2 GetPolyData seeds2
}