This file is indexed.

/usr/include/vtk-7.1/vtkAttributesErrorMetric.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
156
157
158
159
160
161
162
163
164
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkAttributesErrorMetric.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   vtkAttributesErrorMetric
 * @brief    Objects that compute
 * attribute-based error during cell tessellation.
 *
 *
 * It is a concrete error metric, based on an attribute criterium:
 * the variation of the active attribute/component value from a linear ramp
 *
 * @sa
 * vtkGenericCellTessellator vtkGenericSubdivisionErrorMetric
*/

#ifndef vtkAttributesErrorMetric_h
#define vtkAttributesErrorMetric_h

#include "vtkCommonDataModelModule.h" // For export macro
#include "vtkGenericSubdivisionErrorMetric.h"

class vtkGenericAttributeCollection;
class vtkGenericDataSet;

class VTKCOMMONDATAMODEL_EXPORT vtkAttributesErrorMetric : public vtkGenericSubdivisionErrorMetric
{
public:
  /**
   * Construct the error metric with a default relative attribute accuracy
   * equal to 0.1.
   */
  static vtkAttributesErrorMetric *New();

  //@{
  /**
   * Standard VTK type and error macros.
   */
  vtkTypeMacro(vtkAttributesErrorMetric,vtkGenericSubdivisionErrorMetric);
  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
  //@}

  //@{
  /**
   * Absolute tolerance of the active scalar (attribute+component).
   * Subdivision is required if the square distance between the real attribute
   * at the mid point on the edge and the interpolated attribute is greater
   * than AbsoluteAttributeTolerance.
   * This is the attribute accuracy.
   * 0.01 will give better result than 0.1.
   */
  vtkGetMacro(AbsoluteAttributeTolerance, double);
  //@}

  /**
   * Set the absolute attribute accuracy to `value'. See
   * GetAbsoluteAttributeTolerance() for details.
   * It is particularly useful when some concrete implementation of
   * vtkGenericAttribute does not support GetRange() request, called
   * internally in SetAttributeTolerance(). It may happen when the
   * implementation support higher order attributes but
   * cannot compute the range.
   * \pre valid_range_value: value>0
   */
  void SetAbsoluteAttributeTolerance(double value);

  //@{
  /**
   * Relative tolerance of the active scalar (attribute+component).
   * Subdivision is required if the square distance between the real attribute
   * at the mid point on the edge and the interpolated attribute is greater
   * than AttributeTolerance.
   * This is the attribute accuracy.
   * 0.01 will give better result than 0.1.
   */
  vtkGetMacro(AttributeTolerance, double);
  //@}

  /**
   * Set the relative attribute accuracy to `value'. See
   * GetAttributeTolerance() for details.
   * \pre valid_range_value: value>0 && value<1
   */
  void SetAttributeTolerance(double value);

  /**
   * Does the edge need to be subdivided according to the distance between
   * the value of the active attribute/component at the midpoint and the mean
   * value between the endpoints?
   * The edge is defined by its `leftPoint' and its `rightPoint'.
   * `leftPoint', `midPoint' and `rightPoint' have to be initialized before
   * calling RequiresEdgeSubdivision().
   * Their format is global coordinates, parametric coordinates and
   * point centered attributes: xyx rst abc de...
   * `alpha' is the normalized abscissa of the midpoint along the edge.
   * (close to 0 means close to the left point, close to 1 means close to the
   * right point)
   * \pre leftPoint_exists: leftPoint!=0
   * \pre midPoint_exists: midPoint!=0
   * \pre rightPoint_exists: rightPoint!=0
   * \pre clamped_alpha: alpha>0 && alpha<1
   * \pre valid_size: sizeof(leftPoint)=sizeof(midPoint)=sizeof(rightPoint)
   * =GetAttributeCollection()->GetNumberOfPointCenteredComponents()+6
   */
  int RequiresEdgeSubdivision(double *leftPoint, double *midPoint, double *rightPoint,
                              double alpha) VTK_OVERRIDE;

  /**
   * Return the error at the mid-point. The type of error depends on the state
   * of the concrete error metric. For instance, it can return an absolute
   * or relative error metric.
   * See RequiresEdgeSubdivision() for a description of the arguments.
   * \pre leftPoint_exists: leftPoint!=0
   * \pre midPoint_exists: midPoint!=0
   * \pre rightPoint_exists: rightPoint!=0
   * \pre clamped_alpha: alpha>0 && alpha<1
   * \pre valid_size: sizeof(leftPoint)=sizeof(midPoint)=sizeof(rightPoint)
   * =GetAttributeCollection()->GetNumberOfPointCenteredComponents()+6
   * \post positive_result: result>=0
   */
  double GetError(double *leftPoint, double *midPoint,
                  double *rightPoint, double alpha) VTK_OVERRIDE;

protected:
  vtkAttributesErrorMetric();
  ~vtkAttributesErrorMetric() VTK_OVERRIDE;

  /**
   * Compute the square absolute attribute tolerance, only if the cached value
   * is obsolete.
   */
  void ComputeSquareAbsoluteAttributeTolerance();

  double AttributeTolerance;

  double SquareAbsoluteAttributeTolerance; // cached value computed from
  // AttributeTolerance and active attribute/component

  double AbsoluteAttributeTolerance;
  int DefinedByAbsolute;

  vtkTimeStamp SquareAbsoluteAttributeToleranceComputeTime;

  double Range; // cached value computed from active attribute/component

  vtkGenericAttributeCollection *AttributeCollection;

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

#endif