This file is indexed.

/usr/include/tulip/GlGraphRenderingParameters.h is in libtulip-dev 4.4.0dfsg2-2.

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
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
/*
 *
 * This file is part of Tulip (www.tulip-software.org)
 *
 * Authors: David Auber and the Tulip development Team
 * from LaBRI, University of Bordeaux 1 and Inria Bordeaux - Sud Ouest
 *
 * Tulip is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License
 * as published by the Free Software Foundation, either version 3
 * of the License, or (at your option) any later version.
 *
 * Tulip is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU General Public License for more details.
 *
 */

#ifndef Tulip_GLGRAPHRENDERINGPARAMETERS_H
#define Tulip_GLGRAPHRENDERINGPARAMETERS_H

#include <tulip/Color.h>
#include <tulip/DataSet.h>
#include <tulip/tulipconf.h>

namespace tlp {

class DoubleProperty;
class BooleanProperty;

/**
 * @ingroup OpenGL
 * @brief That class defines all the parameters used by GlGraphComposite to render a graph
 *
 * @see GlGraphComposite
 */
class TLP_GL_SCOPE GlGraphRenderingParameters {

public:
  /**
   * @brief Constructor
   */
  GlGraphRenderingParameters();

  /**
   * @brief Get parameters into a DataSet structure
   */
  DataSet getParameters() const;

  /**
   * @brief Set parameters with a DataSet structure
   */
  void setParameters(const DataSet &);

  /**
   * @brief activate or deactivate anlialiasing
   */
  void setAntialiasing(const bool state);

  /**
   * @brief Return true if antialiasing is activated else false.
   */
  bool isAntialiased()const;

  /**
   * @brief Activate or deactivate displaying of arrows along the graph's edges.
   */
  void setViewArrow(const bool state);

  /**
   * @brief Return true if arrows drawing is activated else false.
   */
  bool isViewArrow()const;

  /**
   * @brief Activate or deactivate displaying of labels on nodes.
   */
  void setViewNodeLabel(const bool state);

  /**
   * @brief Return true if drawing of nodes' labels is activated.
   */
  bool isViewNodeLabel() const;
  /**
   * @brief Activate or deactivate displaying of labels on nodes.
   */
  void setViewEdgeLabel(const bool state);

  /**
   * @brief Return true if drawing of nodes' labels is activated.
   */
  bool isViewEdgeLabel() const;

  /**
   * @brief Activate or deactivate displaying of labels outside the screen.
   */
  void setViewOutScreenLabel(const bool state);

  /**
   * @brief Return true if drawing of outscreen labels is activated.
   */
  bool isViewOutScreenLabel() const;

  /**
   * @brief Activate or deactivate interpolation of nodes colors along edge
   */
  void setEdgeColorInterpolate(const bool state);

  /**
   * @brief Return true if color interpolation is activated
   */
  bool isEdgeColorInterpolate() const;

  /**
   * @brief Activate or deactivate interpolation of nodes colors along edge
   */
  void setEdgeSizeInterpolate(const bool state);

  /**
   * @brief Return true if color interpolation is activated
   */
  bool isEdgeSizeInterpolate() const;

  /**
   * @brief Return the type of fonts used in the renderer(0=3D,1=bitmap,2=texture)
   */
  unsigned int getFontsType() const;

  /**
   * @brief Set fonts type used in the renderer (0=3D,1=bitmap,2=texture)
   */
  void setFontsType(unsigned int type);

  /**
   * @brief Set the path for the texture loading
   */
  void setTexturePath(const std::string& path);

  /**
   * @brief Return the absolute path used for texture loading
   */
  std::string getTexturePath() const;

  /**
   * @brief Set the absolute path used for the fonts loading
   */
  void setFontsPath(const std::string& path);

  /**
   * @brief Return the absolute path used for the fonts loading
   */
  std::string getFontsPath() const;

  /**
   * @brief If true and if labels are activated label inside meta nodes will be displayed
   */
  void setViewMetaLabel(const bool state);

  /**
   * @brief Return the true if viewMetaLabels is enable else false
   */
  bool isViewMetaLabel() const;

  /**
   * @brief If true edges are displayed.
   */
  void setDisplayEdges(const bool state);

  /**
   * @brief Return true if edges are displayed.
   */
  bool isDisplayEdges() const;

  /**
   * @brief If true nodes are displayed.
   */
  void setDisplayNodes(const bool state);

  /**
   * @brief Return true if nodes are displayed.
   */
  bool isDisplayNodes() const;

  /**
   * @brief If true meta-nodes are displayed.
   */
  void setDisplayMetaNodes(const bool state);

  /**
   * @brief Return true if meta-nodes are displayed.
   */
  bool isDisplayMetaNodes() const;

  /**
   * @brief set stencil number for selected nodes
   *
   * Stencil is an OpenGl system to ensure that other entity can't be displayed above this entity. It's a "guaranted visibility" system.
   * A small number causes a guaranted visibility
   * Default value in Tulip is 0xFFFF (greater integer)
   * And when we have stencil on entity value is 0x2
   */
  void setSelectedNodesStencil(const int stencil);

  /**
   * @brief get stencil number for selected nodes
   */
  int getSelectedNodesStencil() const;

  /**
   * @brief set stencil number for selected meta-nodes
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setSelectedMetaNodesStencil(const int stencil);

  /**
   * @brief get stencil number for selected meta-nodes
   */
  int getSelectedMetaNodesStencil() const;

  /**
   * @brief set stencil number for selected edges
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setSelectedEdgesStencil(const int stencil);

  /**
   * @brief get stencil number for selected edges
   */
  int getSelectedEdgesStencil() const;

  /**
   * @brief set stencil number for nodes
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setNodesStencil(const int stencil);

  /**
   * @brief get stencil number for nodes
   */
  int getNodesStencil() const;

  /**
   * @brief set stencil number for meta-nodes
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setMetaNodesStencil(const int stencil);

  /**
   * @brief get stencil number for meta-nodes
   */
  int getMetaNodesStencil() const;

  /**
   * @brief set stencil number for edges
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setEdgesStencil(const int stencil);

  /**
   * @brief get stencil number for edges
   */
  int getEdgesStencil() const;

  /**
   * @brief set stencil number for nodes label
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setNodesLabelStencil(const int stencil);

  /**
   * @brief get stencil number for nodes label
   */
  int getNodesLabelStencil() const;

  /**
   * @brief set stencil number for meta-nodes label
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setMetaNodesLabelStencil(const int stencil);

  /**
   * @brief get stencil number for meta-nodes label
   */
  int getMetaNodesLabelStencil() const;

  /**
   * @brief set stencil number for edges label
   *
   * See setSelectedNodesStencil() documentation for more details on stencil number
   */
  void setEdgesLabelStencil(const int stencil);

  /**
   * @brief get stencil number for edges label
   */
  int getEdgesLabelStencil() const;

  /**
   * @brief If true node and edges are ordered according to the viewMetric property
   */
  void setElementOrdered(const bool state);

  /**
   * @brief return true if element ordering is activated
   */
  bool isElementOrdered() const;

  /**
   * @brief Defines which property is used for the element ordering.
   *
   * @param property The property to use to order the elements.
   * @return void
   **/
  void setElementOrderingProperty(tlp::DoubleProperty* property);

  /**
   * @brief Gets the property used for element ordering. Setting it to NULL will use viewMetric if the ordering is enabled.
   *
   * @return :DoubleProperty* The Property curretly used.
   **/
  tlp::DoubleProperty* getElementOrderingProperty() const;

  /**
   * @brief If true node and edges are ordered according to the distance with camera
   */
  void setElementZOrdered(const bool state);

  /**
   * @brief return true if element Z ordering is activated
   */
  bool isElementZOrdered() const;

  /**
   * @brief if true use 3D displaying of edges instead of 2D lines on ALL edges
   */
  void setEdge3D(const bool state);

  /**
   * @brief return true if 3D drawing of edges is activated
   */
  bool isEdge3D() const;

  /**
   * @brief Get the size of the border that is added to any label when using bitmap fonts.
   *
   * @deprecated Use getLabelsDensity instead
   */
  unsigned int _DEPRECATED getLabelsBorder() const;

  /**
   * @brief Get the size of label border
   *
   * Get the size of the border that is added to any label when
   * using bitmap fonts. Setting this parameter to a high value
   * enables de reduce the label density in the final drawing.
   * Default value is set to 2 which enables readable labels.
   * @deprecated Use setLabelsDensity instead
   */
  void _DEPRECATED setLabelsBorder(const unsigned int);

  /**
   * @brief set if Edge max size is block to node size
   */
  void setEdgesMaxSizeToNodesSize(const bool b);

  /**
   * @brief return if Edge max size is block to node size
   */
  bool getEdgesMaxSizeToNodesSize() const;

  /**
   * @brief if true draw graph with feedback information (very low)
   */
  void setFeedbackRender(bool feedback);

  /**
   * @brief return true if the graph is draw with feedback information
   */
  bool getFeedbackRender() const;

  /**
   * @brief Change the selection color
   */
  void setSelectionColor(const Color &color);

  /**
   * @brief return the selection color
   */
  Color getSelectionColor() const;

  /**
   * @brief return if labels are scaled to node size
   */
  bool isLabelScaled() const;

  /**
   * Set if labels are scaled to node size
   */
  void setLabelScaled(bool state);

  /**
   * @brief return if labels are rendered with a fixed font size (dynamic size otherwise)
   */
  bool isLabelFixedFontSize() const;

  /**
   * Set if labels must be rendered with a fixed font size (dynamic size otherwise)
   */
  void setLabelFixedFontSize(bool state);

  /**
   * @brief Return labels -density
   *
   * This density must be in interval -100 100
   * -100 : No labels
   * 0    : No overlap
   * 100  : All labels
   */
  int getLabelsDensity() const;

  /**
   * @brief Set labels density
   *
   * This density must be in interval -100 100
   * -100 : No labels
   * 0    : No overlap
   * 100  : All labels
   */
  void setLabelsDensity(int density);

  /**
   * @brief return min size of label : this min size is only used if labels are not scaled and are not rendered with a fixed font size
   */
  int getMinSizeOfLabel() const;

  /**
   * @brief Set min size of label : this min size is only used if labels are not scaled and are not rendered with a fixed font size
   */
  void setMinSizeOfLabel(int size);

  /**
   * @brief return max size of label : this max size is only used if labels are not scaled and are not rendered with a fixed font size
   */
  int getMaxSizeOfLabel() const;

  /**
   * @brief Set max size of label : this max size is only used if labels are not scaled and are not rendered with a fixed font size
   */
  void setMaxSizeOfLabel(int size);

  /**
   * @brief return if labels are billboarded
   */
  bool getLabelsAreBillboarded() const {
    return _labelsAreBillboarded;
  }

  /**
   * @brief Set if labels are billboarded
   */
  void setLabelsAreBillboarded(bool billboarded) {
    _labelsAreBillboarded=billboarded;
  }

  /**
   * @brief This property is use to filter nodes/edges display, for a node/edge if this property is false : the node/edge will not be diplayed
   *
   * @Warning : this property will not be saved in DataSet
   */
  void setDisplayFilteringProperty(BooleanProperty *filteringProperty) {
    _displayFilteringProperty=filteringProperty;
  }

  /**
   * @brief Get the boolean property use to filtering displaying of nodes/edges
   */
  BooleanProperty * getDisplayFilteringProperty() const {
    return _displayFilteringProperty;
  }

private:

  bool _antialiased;
  bool _viewArrow;
  bool _viewNodeLabel;
  bool _viewEdgeLabel;
  bool _viewMetaLabel;
  bool _viewOutScreenLabel;
  bool _elementOrdered;
  bool _edgeColorInterpolate;
  bool _edge3D;
  bool _edgeSizeInterpolate;
  bool _displayEdges;
  bool _displayNodes;
  bool _displayMetaNodes;
  bool _elementZOrdered;
  int _selectedNodesStencil;
  int _selectedMetaNodesStencil;
  int _selectedEdgesStencil;
  int _nodesStencil;
  int _metaNodesStencil;
  int _edgesStencil;
  int _nodesLabelStencil;
  int _metaNodesLabelStencil;
  int _edgesLabelStencil;
  bool _labelScaled;
  bool _labelFixedFontSize;
  int _labelMinSize;
  int _labelMaxSize;
  int _labelsDensity;
  bool _labelsAreBillboarded;
  std::string _fontsPath;
  std::string _texturePath;
  bool _edgesMaxSizeToNodesSize;
  bool _feedbackRender;
  Color _selectionColor;
  BooleanProperty *_displayFilteringProperty;
  DoubleProperty* _elementOrderingProperty;
};

/** \brief Class to get the default selection color
 */
class TLP_GL_SCOPE GlDefaultSelectionColorManager {
public:
  static void setManager(GlDefaultSelectionColorManager *);
  static tlp::Color getDefaultSelectionColor();
  virtual tlp::Color defaultSelectionColor()=0;

private:
  static GlDefaultSelectionColorManager* manager;
};
}

#endif // Tulip_GLGRAPH_H