This file is indexed.

/usr/share/Coin/draggerDefaults/handleBoxDragger.iv is in libcoin80-runtime 3.1.4~abc9f50+dfsg1-1.

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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
#Inventor V2.1 ascii

# Standard common material definitions.

DEF HANDLEBOX_INACTIVE_MATERIAL Material { diffuseColor 0.5 0.5 0.5  emissiveColor 0.5 0.5 0.5 }
DEF HANDLEBOX_ACTIVE_MATERIAL Material { diffuseColor 0.5 0.5 0  emissiveColor 0.5 0.5 0 }
DEF HANDLEBOX_FEEDBACK_MATERIAL Material { diffuseColor 0.5 0 0.5  emissiveColor 0.5 0 0.5 }


##########################################################################

# This is the sides of the handlebox. They are rendered with facesets,
# so they can be picked and thereby activate the handlebox for
# dragging. The faces are made invisible (i.e. rendered with lines) so
# we can see through the box in case the geometry is within it (which
# is the most common way of using the dragger).

# The 8 corners of the cube. We need to use individual faces so we
# know which one was picked for interaction.
DEF HANDLEBOX_TRANSLATOR_COORDS Coordinate3 {
   point [
    1 1 1, 1 1 -1, -1 1 -1, -1 1 1,
    1 -1 1, 1 -1 -1, -1 -1 -1, -1 -1 1,
   ]
}

DEF HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE Group {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_TRANSLATOR_COORDS
   DrawStyle { style LINES }
}
DEF HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE Group {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_TRANSLATOR_COORDS
   DrawStyle { style LINES }
}

DEF handleBoxTranslator1 Separator {
   USE HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE
   DEF HANDLEBOX_TRANSLATOR_TOPFACE IndexedFaceSet { coordIndex [ 0, 1, 2, 3, -1 ] }
}
DEF handleBoxTranslator1Active Separator {
   USE HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE
   USE HANDLEBOX_TRANSLATOR_TOPFACE
}

DEF handleBoxTranslator2 Separator {
   USE HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE
   DEF HANDLEBOX_TRANSLATOR_BOTTOMFACE IndexedFaceSet { coordIndex [ 4, 7, 6, 5, -1 ] }
}
DEF handleBoxTranslator2Active Separator {
   USE HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE
   USE HANDLEBOX_TRANSLATOR_BOTTOMFACE
}

DEF handleBoxTranslator3 Separator {
   USE HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE
   DEF HANDLEBOX_TRANSLATOR_LEFTFACE IndexedFaceSet { coordIndex [ 3, 2, 6, 7, -1 ] }
}
DEF handleBoxTranslator3Active Separator {
   USE HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE
   USE HANDLEBOX_TRANSLATOR_LEFTFACE
}

DEF handleBoxTranslator4 Separator {
   USE HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE
   DEF HANDLEBOX_TRANSLATOR_RIGHTFACE IndexedFaceSet { coordIndex [ 0, 4, 5, 1, -1 ] }
}
DEF handleBoxTranslator4Active Separator {
   USE HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE
   USE HANDLEBOX_TRANSLATOR_RIGHTFACE
}

DEF handleBoxTranslator5 Separator {
   USE HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE
   DEF HANDLEBOX_TRANSLATOR_FRONTFACE IndexedFaceSet { coordIndex [ 0, 3, 7, 4, -1 ] }
}
DEF handleBoxTranslator5Active Separator {
   USE HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE
   USE HANDLEBOX_TRANSLATOR_FRONTFACE
}

DEF handleBoxTranslator6 Separator {
   USE HANDLEBOX_TRANSLATOR_INACTIVE_APPEARANCE
   DEF HANDLEBOX_TRANSLATOR_BACKFACE IndexedFaceSet { coordIndex [ 1, 5, 6, 2, -1 ] }
}
DEF handleBoxTranslator6Active Separator {
   USE HANDLEBOX_TRANSLATOR_ACTIVE_APPEARANCE
   USE HANDLEBOX_TRANSLATOR_BACKFACE
}


##########################################################################

# Markers for translation dragging with the boxside faces.

DEF HANDLEBOX_DIRECTIONMARKER Group {
   USE HANDLEBOX_FEEDBACK_MATERIAL
   Coordinate3 { point [ 0 0 0, 0 0.5 0 ] }
   IndexedLineSet { coordIndex [ 0, 1, -1 ] }
   Translation { translation 0 0.5 0 }
   Cone { bottomRadius 0.04  height 0.08 }
}

DEF handleBoxArrow1 Separator {
   USE HANDLEBOX_DIRECTIONMARKER
}
DEF handleBoxArrow2 Separator {
   RotationXYZ { axis Z angle 3.14 }
   USE HANDLEBOX_DIRECTIONMARKER
}
DEF handleBoxArrow3 Separator {
   RotationXYZ { axis Z angle 1.57 }
   USE HANDLEBOX_DIRECTIONMARKER
}
DEF handleBoxArrow4 Separator {
   RotationXYZ { axis Z angle -1.57 }
   USE HANDLEBOX_DIRECTIONMARKER
}
DEF handleBoxArrow5 Separator {
   RotationXYZ { axis X angle 1.57 }
   USE HANDLEBOX_DIRECTIONMARKER
}
DEF handleBoxArrow6 Separator {
   RotationXYZ { axis X angle -1.57 }
   USE HANDLEBOX_DIRECTIONMARKER
}

##########################################################################

# Geometry for the markers in the corners of the handlebox. Dragging
# them typically yields a uniform scale operation.

DEF HANDLEBOX_SOLIDMARKER Cube { width 0.1  height 0.1  depth 0.1 }

# Up, right, front
DEF HANDLEBOX_CORNER_URF Group {
   Translation { translation 1 1 1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform1 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_URF
}
DEF handleBoxUniform1Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_URF
}

# Up, right, back
DEF HANDLEBOX_CORNER_URB Group {
   Translation { translation 1 1 -1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform2 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_URB
}
DEF handleBoxUniform2Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_URB
}

# Down, right, front
DEF HANDLEBOX_CORNER_DRF Group {
   Translation { translation 1 -1 1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform3 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DRF
}
DEF handleBoxUniform3Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DRF
}

# Down, right, back
DEF HANDLEBOX_CORNER_DRB Group {
   Translation { translation 1 -1 -1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform4 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DRB
}
DEF handleBoxUniform4Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DRB
}

# Up, left, front
DEF HANDLEBOX_CORNER_ULF Group {
   Translation { translation -1 1 1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform5 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_ULF
}
DEF handleBoxUniform5Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_ULF
}

# Up, left, back
DEF HANDLEBOX_CORNER_ULB Group {
   Translation { translation -1 1 -1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform6 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_ULB
}
DEF handleBoxUniform6Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_ULB
}

# Down, left, front
DEF HANDLEBOX_CORNER_DLF Group {
   Translation { translation -1 -1 1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform7 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DLF
}
DEF handleBoxUniform7Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DLF
}

# Down, left, back
DEF HANDLEBOX_CORNER_DLB Group {
   Translation { translation -1 -1 -1 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxUniform8 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DLB
}
DEF handleBoxUniform8Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_CORNER_DLB
}


##########################################################################

# The specifications below is for the 6 lines radiating from the
# center point of the box. Interaction with them typically applies
# scaling to the geometry connected to the box.


# The 6 endpoints of the extrusion line markers, plus the startpoint.
DEF HANDLEBOX_EXTRUSION_COORDS Coordinate3 {
   point [
    0 0 0,
    1.3 0 0, -1.3 0 0,
    0 1.3 0, 0 -1.3 0,
    0 0 1.3, 0 0 -1.3
   ]
}

DEF HANDLEBOX_EXTRUSION_MARKER_UP Group {
   USE HANDLEBOX_EXTRUSION_COORDS
   IndexedLineSet { coordIndex [ 0, 3, -1 ] }
   Translation { translation 0 1.3 0 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxExtruder1 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_UP
}
DEF handleBoxExtruder1Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_UP
}

DEF HANDLEBOX_EXTRUSION_MARKER_DOWN Group {
   USE HANDLEBOX_EXTRUSION_COORDS
   IndexedLineSet { coordIndex [ 0, 4, -1 ] }
   Translation { translation 0 -1.3 0 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxExtruder2 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_DOWN
}
DEF handleBoxExtruder2Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_DOWN
}

DEF HANDLEBOX_EXTRUSION_MARKER_LEFT Group {
   USE HANDLEBOX_EXTRUSION_COORDS
   IndexedLineSet { coordIndex [ 0, 2, -1 ] }
   Translation { translation -1.3 0 0 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxExtruder3 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_LEFT
}
DEF handleBoxExtruder3Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_LEFT
}

DEF HANDLEBOX_EXTRUSION_MARKER_RIGHT Group {
   USE HANDLEBOX_EXTRUSION_COORDS
   IndexedLineSet { coordIndex [ 0, 1, -1 ] }
   Translation { translation 1.3 0 0 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxExtruder4 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_RIGHT
}
DEF handleBoxExtruder4Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_RIGHT
}

DEF HANDLEBOX_EXTRUSION_MARKER_FRONT Group {
   USE HANDLEBOX_EXTRUSION_COORDS
   IndexedLineSet { coordIndex [ 0, 5, -1 ] }
   Translation { translation 0 0 1.3 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxExtruder5 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_FRONT
}
DEF handleBoxExtruder5Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_FRONT
}

DEF HANDLEBOX_EXTRUSION_MARKER_BACK Group {
   USE HANDLEBOX_EXTRUSION_COORDS
   IndexedLineSet { coordIndex [ 0, 6, -1 ] }
   Translation { translation 0 0 -1.3 }
   USE HANDLEBOX_SOLIDMARKER
}
DEF handleBoxExtruder6 Separator {
   USE HANDLEBOX_INACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_BACK
}
DEF handleBoxExtruder6Active Separator {
   USE HANDLEBOX_ACTIVE_MATERIAL
   USE HANDLEBOX_EXTRUSION_MARKER_BACK
}