This file is indexed.

/usr/include/paraview/vtkSMViewLayoutProxy.h is in paraview-dev 5.0.1+dfsg1-4.

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
/*=========================================================================

  Program:   ParaView
  Module:    $RCSfile$

  Copyright (c) Kitware, Inc.
  All rights reserved.
  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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.

=========================================================================*/
// .NAME vtkSMViewLayoutProxy - vtkSMViewLayoutProxy is used by ParaView to layout
// multiple views in a 2D KD-Tree layout.
//
// .SECTION Description
// vtkSMViewLayoutProxy is used by ParaView to layout multiple views in a 2D
// KD-Tree layout. This is proxy, hence can be registered with the proxy manager
// just like other regular proxies; participates in xml state saving/restoring,
// undo-redo, etc. Users can affects the GUI layout using this proxy instance
// from Python as well.
//
// Every time the vtkSMViewLayoutProxy changes so that it would affect the UI,
// this class fires vtkCommand::ConfigureEvent.
//
// View proxies that are to laid out in an layout should be "assigned" to a
// particular cell in a vtkSMViewLayoutProxy instance. vtkSMViewLayoutProxy
// takes over the responsibility of updating the view's \c Position property
// correctly. 
//
// Although, currently, there are no safe guards against assigning a view to
// more than one layout, this is strictly prohibited and can cause unexpected
// problems at run-time.

#ifndef vtkSMViewLayoutProxy_h
#define vtkSMViewLayoutProxy_h

#include "vtkPVServerManagerRenderingModule.h" //needed for exports
#include "vtkSMProxy.h"

class vtkSMViewProxy;
class vtkImageData;

class VTKPVSERVERMANAGERRENDERING_EXPORT vtkSMViewLayoutProxy : public vtkSMProxy
{
public:
  static vtkSMViewLayoutProxy* New();
  vtkTypeMacro(vtkSMViewLayoutProxy, vtkSMProxy);
  void PrintSelf(ostream& os, vtkIndent indent);

  enum Direction
    {
    NONE,
    VERTICAL,
    HORIZONTAL
    };

  // Description:
  // Split a frame at the given \c location. Location must point to an existing cell
  // that's not split. If the location does not exist or is already split, then
  // returns -1, to indicate failure. Otherwise returns the index of the left (or
  // top) child node. The index for the sibling can be computed as (ret_val +
  // 1). \c fraction indicates a value in the range [0.0, 1.0] at which the cell
  // is split. If a View is set at the given location, it will be moved to the
  // left (or top) child after the split.
  int Split(int location, int direction, double fraction);
  int SplitVertical(int location, double fraction)
    { return this->Split(location, VERTICAL, fraction); }
  int SplitHorizontal(int location, double fraction)
    { return this->Split(location, HORIZONTAL, fraction); }

  // Description:
  // Assign a view at a particular location. Note that the view's position may
  // be changed by Split() calls. Returns true on success.
  bool AssignView(int location, vtkSMViewProxy* view);

  // Description:
  // Similar to AssignView() except that is location specified is not available,
  // then this method treats the location merely as a hint and tries to find a
  // suitable place. First, if any empty cell is available, then that is used.
  // Second, if no empty cell is available and \c location is a valid cell, then
  // we either split the cell or traverse down the sub-tree from the cell and
  // split a cell to make room for the view. Thus, this method will always
  // assign the view to a frame. Returns the assigned location.
  int AssignViewToAnyCell(vtkSMViewProxy* view, int location_hint);

  // Description:
  // Removes a view. Returns the location of the cell emptied by the view, if
  // any, otherwise -1.
  int RemoveView(vtkSMViewProxy* view);
  bool RemoveView(int index);

  // Description:
  // Collapses a cell. Only leaf cells without any assigned views can be collapsed.
  // If the cell has a sibling, then that sibling is assigned to the parent
  // node and the sibling cell is destroyed as well. Returns true on success,
  // else false.
  bool Collapse(int location);

  // Description:
  // Swaps the cells at the two locations. Both locations must be leaf locations
  // i.e. cannot be split-cells.
  bool SwapCells(int location1, int location2);

  // Description:
  // Update the split fraction for a split cell. If IsSplitCell(location)
  // returns false, this method does not update the fraction.
  bool SetSplitFraction(int location, double fraction);

  // Description:
  // One can maximize a particular (non-split) cell. Note the maximized state is
  // restored as soon as the layout is changed or when RestoreMaximizedState()
  // is called. Returns false if the cell at the location cannot be maximized
  // since it's a split cell or invalid cell, true otherwise.
  bool MaximizeCell(int location);

  // Description:
  // Restores the maximized state.
  void RestoreMaximizedState();

  // Description:
  // Returns the maximized cell, if any. Returns -1 if no cell is currently
  // maximized.
  vtkGetMacro(MaximizedCell, int);

  // Description:
  // Returns true if the cell identified by the location is a split cell.
  bool IsSplitCell(int location);

  // Description:
  // Returns the split direction for a split cell at the given location.
  Direction GetSplitDirection(int location);

  // Description:
  // Returns the split-fraction for a split cell at the given location.
  double GetSplitFraction(int location);

  // Description:
  // Returns the index for the first child of the given location. This does not
  // do any validity checks for the location, nor that of the child.
  static int GetFirstChild(int location)
    { return 2*location + 1; }

  // Description:
  // Returns the index for the second child of the given location. This does not
  // do any validity checks for the location, nor that of the child.
  static int GetSecondChild(int location)
    { return 2*location + 2; }

  // Description:
  // Returns the parent index.
  static int GetParent(int location)
    { return (location > 0?  ( (location - 1) / 2 ) : -1); }

  // Description:
  // Returns the view, if any, assigned to the given cell location.
  vtkSMViewProxy* GetView(int location);

  // Description:
  // Returns the location for the view, of any. Returns -1 if the view is not
  // found.
  int GetViewLocation(vtkSMViewProxy*);

  // Description:
  // Updates positions for all views using the layout and current sizes.
  // This method is called automatically when the layout changes or the
  // "ViewSize" property on the assigned views changes.
  void UpdateViewPositions();

  // Description:
  // When in tile-display configuration, only 1 view-layout is shown on the
  // tile-display (for obvious reasons). To show any particular layout on the
  // tile display, simply call this method.
  void ShowViewsOnTileDisplay();

  // Description:
  // Captures an image from the layout (including all the views in the layout.
  vtkImageData* CaptureWindow(int magnification);

  // Description:
  // Overridden to save custom XML state.
  virtual vtkPVXMLElement* SaveXMLState(vtkPVXMLElement* root)
    { return this->Superclass::SaveXMLState(root); }
  virtual vtkPVXMLElement* SaveXMLState(
    vtkPVXMLElement* root, vtkSMPropertyIterator* iter);

  // Description:
  // Overridden to load custom XML state.
  virtual int LoadXMLState(vtkPVXMLElement* element, vtkSMProxyLocator* locator);

  // Description:
  // Resets the layout.
  void Reset();

  // Description:
  // Helper method to locate a layout, if any that contains the specified view
  // proxy.
  static vtkSMViewLayoutProxy* FindLayout(vtkSMViewProxy*, const char* reggroup="layouts");

  // Description:
  // Set border size/color to use when capturing multiview images.
  static void SetMultiViewImageBorderColor(double r, double g, double b);
  static void SetMultiViewImageBorderWidth(int width);
  static const double* GetMultiViewImageBorderColor();
  static int GetMultiViewImageBorderWidth();

//BTX
protected:
  vtkSMViewLayoutProxy();
  ~vtkSMViewLayoutProxy();

  // Description:
  // Called to load state from protobuf message.
  virtual void LoadState(
    const vtkSMMessage* message, vtkSMProxyLocator* locator);

  // Description:
  // Although this class is a proxy, it's not really a proxy in the traditional
  // sense. So instead of using UpdateVTKObjects() to push state changes to the
  // server (or undo-redo stack), this new method is provided.
  virtual void UpdateState();

  // Description:
  // Starting with the cell-index, tries to find an empty cell in the sub-tree.
  // Returns -1 if none found. May return \c root, if root is indeed an empty
  // cell. Note this assumes that root is valid.
  int GetEmptyCell(int root);

  // Description:
  // Starting with the root, finds a splittable cell. Assumes \c root is valid.
  int GetSplittableCell(int root, Direction& suggested_direction);

  int MaximizedCell;
private:
  vtkSMViewLayoutProxy(const vtkSMViewLayoutProxy&); // Not implemented
  void operator=(const vtkSMViewLayoutProxy&); // Not implemented

  class vtkInternals;
  vtkInternals* Internals;

  bool SetBlockUpdate(bool new_value)
    {
    bool temp = this->BlockUpdate;
    this->BlockUpdate = new_value;
    return temp;
    }

  bool BlockUpdate;

  static double MultiViewImageBorderColor[3];
  static int MultiViewImageBorderWidth;

//ETX
};

#endif