This file is indexed.

/usr/include/vtk-7.1/vtkParallelopipedWidget.h is in libvtk7-dev 7.1.1+dfsg1-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
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkParallelopipedWidget.h

  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
  All rights reserved.
  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.

     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notice for more information.

=========================================================================*/
/**
 * @class   vtkParallelopipedWidget
 * @brief   a widget to manipulate 3D parallelopipeds
 *
 *
 * This widget was designed with the aim of visualizing / probing cuts on
 * a skewed image data / structured grid.
 *
 * @par Interaction:
 * The widget allows you to create a parallelopiped (defined by 8 handles).
 * The widget is initially placed by using the "PlaceWidget" method in the
 * representation class. After the widget has been created, the following
 * interactions may be used to manipulate it :
 * 1) Click on a handle and drag it around moves the handle in space, while
 *    keeping the same axis alignment of the parallelopiped
 * 2) Dragging a handle with the shift button pressed resizes the piped
 *    along an axis.
 * 3) Control-click on a handle creates a chair at that position. (A chair
 *    is a depression in the piped that allows you to visualize cuts in the
 *    volume).
 * 4) Clicking on a chair and dragging it around moves the chair within the
 *    piped.
 * 5) Shift-click on the piped enables you to translate it.
 *
*/

#ifndef vtkParallelopipedWidget_h
#define vtkParallelopipedWidget_h

#include "vtkInteractionWidgetsModule.h" // For export macro
#include "vtkAbstractWidget.h"

class vtkParallelopipedRepresentation;
class vtkHandleWidget;
class vtkWidgetSet;

class VTKINTERACTIONWIDGETS_EXPORT vtkParallelopipedWidget : public vtkAbstractWidget
{

  friend class vtkWidgetSet;

public:
  /**
   * Instantiate the object.
   */
  static vtkParallelopipedWidget *New();

  vtkTypeMacro(vtkParallelopipedWidget,vtkAbstractWidget);
  void PrintSelf(ostream& os, vtkIndent indent);

  /**
   * Override the superclass method. This is a composite widget, (it internally
   * consists of handle widgets). We will override the superclass method, so
   * that we can pass the enabled state to the internal widgets as well.
   */
  virtual void SetEnabled(int);

  /**
   * Specify an instance of vtkWidgetRepresentation used to represent this
   * widget in the scene. Note that the representation is a subclass of vtkProp
   * so it can be added to the renderer independent of the widget.
   */
  void SetRepresentation(vtkParallelopipedRepresentation *r)
  {
    this->Superclass::SetWidgetRepresentation(
        reinterpret_cast<vtkWidgetRepresentation*>(r));
  }

  /**
   * Return the representation as a vtkParallelopipedRepresentation.
   */
  vtkParallelopipedRepresentation *GetParallelopipedRepresentation()
    {return reinterpret_cast<vtkParallelopipedRepresentation*>(this->WidgetRep);}

  //@{
  /**
   * Enable/disable the creation of a chair on this widget. If off,
   * chairs cannot be created.
   */
  vtkSetMacro(EnableChairCreation,int);
  vtkGetMacro(EnableChairCreation,int);
  vtkBooleanMacro(EnableChairCreation,int);
  //@}

  /**
   * Create the default widget representation if one is not set.
   */
  void CreateDefaultRepresentation();

  /**
   * Methods to change the whether the widget responds to interaction.
   * Overridden to pass the state to component widgets.
   */
  virtual void SetProcessEvents(int);

protected:
  vtkParallelopipedWidget();
  ~vtkParallelopipedWidget();

  static void RequestResizeCallback             (vtkAbstractWidget* );
  static void RequestResizeAlongAnAxisCallback  (vtkAbstractWidget* );
  static void RequestChairModeCallback          (vtkAbstractWidget* );
  static void TranslateCallback                 (vtkAbstractWidget* );
  static void OnMouseMoveCallback               (vtkAbstractWidget* );
  static void OnLeftButtonUpCallback            (vtkAbstractWidget* );

  // Control whether chairs can be created
  int EnableChairCreation;

  //@{
  void BeginTranslateAction ( vtkParallelopipedWidget *dispatcher);
  void TranslateAction ( vtkParallelopipedWidget *dispatcher);
  //@}

  // helper methods for cursor management
  void SetCursor(int state);

  // To break reference count loops
  void ReportReferences(vtkGarbageCollector* collector) VTK_OVERRIDE;

  // The positioning handle widgets
  vtkHandleWidget **HandleWidgets;

  /**
   * Events invoked by this widget
   */
  enum WidgetEventIds
  {
    RequestResizeEvent = 10000,
    RequestResizeAlongAnAxisEvent,
    RequestChairModeEvent
  };

  vtkWidgetSet* WidgetSet;

private:
  vtkParallelopipedWidget(const vtkParallelopipedWidget&) VTK_DELETE_FUNCTION;
  void operator=(const vtkParallelopipedWidget&) VTK_DELETE_FUNCTION;
};

#endif