/usr/include/vtk-5.8/vtkHyperOctreeSampleFunction.h is in libvtk5-dev 5.8.0-5.
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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkHyperOctreeSampleFunction.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.
=========================================================================*/
// .NAME vtkHyperOctreeSampleFunction - sample an implicit function over an
// hyperoctree
// .SECTION Description
// vtkHyperOctreeSampleFunction is a source object that evaluates an implicit
// function to drive the subdivision process. The user can specify
// the threshold over which a subdivision occurs, the maximum and minimum
// level of subdivisions and the dimension of the hyperoctree.
//
// .SECTION See Also
// vtkSampleFunction
#ifndef __vtkHyperOctreeSampleFunction_h
#define __vtkHyperOctreeSampleFunction_h
#include "vtkHyperOctreeAlgorithm.h"
class vtkImplicitFunction;
class VTK_GRAPHICS_EXPORT vtkHyperOctreeSampleFunction : public vtkHyperOctreeAlgorithm
{
public:
vtkTypeMacro(vtkHyperOctreeSampleFunction,vtkHyperOctreeAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
static vtkHyperOctreeSampleFunction *New();
// Description:
// Return the maximum number of levels of the hyperoctree.
// \post positive_result: result>=1
int GetLevels();
// Description:
// Set the maximum number of levels of the hyperoctree. If
// GetMinLevels()>=levels, GetMinLevels() is changed to levels-1.
// \pre positive_levels: levels>=1
// \post is_set: this->GetLevels()==levels
// \post min_is_valid: this->GetMinLevels()<this->GetLevels()
void SetLevels(int levels);
// Description:
// Return the minimal number of levels of systematic subdivision.
// \post positive_result: result>=0
int GetMinLevels();
// Description:
// Set the minimal number of levels of systematic subdivision.
// \pre positive_minLevels: minLevels>=0
// \post is_set: this->GetMinLevels()==minLevels
void SetMinLevels(int minLevels);
// Description:
// Return the threshold over which a subdivision is required.
// \post positive_result: result>0
double GetThreshold();
// Description:
// Set the threshold over which a subdivision is required.
// \pre positive_threshold: threshold>=0
// \post is_set: this->GetThreshold()==threshold
void SetThreshold(double threshold);
// Description:
// Return the dimension of the tree (1D:binary tree(2 children), 2D:quadtree(4 children),
// 3D:octree (8 children))
// \post valid_result: result>=1 && result<=3
int GetDimension();
// Set the dimension of the tree with `dim'. See GetDimension() for details.
// \pre valid_dim: dim>=1 && dim<=3
// \post dimension_is_set: GetDimension()==dim
void SetDimension(int dim);
// Description:
// Set the size on each axis.
vtkSetVector3Macro(Size,double);
// Description:
// Return the size on each axis.
vtkGetVector3Macro(Size,double);
// Description:
// Set the origin (position of corner (0,0,0) of the root.
vtkSetVector3Macro(Origin,double);
// Return the origin (position of corner (0,0,0) ) of the root.
vtkGetVector3Macro(Origin,double);
// Description:
// Return the length along the x-axis.
// \post positive_result: result>0
double GetWidth();
// Description:
// Set the length along the x-axis.
// \pre positive_width: width>0
// \post width_is_set: GetWidth()==width
void SetWidth(double width);
// Description:
// Return the length along the y-axis.
// Relevant only if GetDimension()>=2
// \post positive_result: result>0
double GetHeight();
// Description:
// Set the length along the y-axis.
// Relevant only if GetDimension()>=2
// \pre positive_height: height>0
// \post height_is_set: GetHeight()==height
void SetHeight(double height);
// Description:
// Return the length along the z-axis.
// Relevant only if GetDimension()>=3
// \post positive_result: result>0
double GetDepth();
// Description:
// Return the length along the z-axis.
// Relevant only if GetDimension()>=3
// \pre positive_depth: depth>0
// \post depth_is_set: GetDepth()==depth
void SetDepth(double depth);
// Description:
// Specify the implicit function to use to generate data.
virtual void SetImplicitFunction(vtkImplicitFunction*);
vtkGetObjectMacro(ImplicitFunction,vtkImplicitFunction);
// Description:
// Set what type of scalar data this source should generate.
vtkSetMacro(OutputScalarType,int);
vtkGetMacro(OutputScalarType,int);
void SetOutputScalarTypeToDouble()
{this->SetOutputScalarType(VTK_DOUBLE);}
void SetOutputScalarTypeToFloat()
{this->SetOutputScalarType(VTK_FLOAT);}
void SetOutputScalarTypeToLong()
{this->SetOutputScalarType(VTK_LONG);}
void SetOutputScalarTypeToUnsignedLong()
{this->SetOutputScalarType(VTK_UNSIGNED_LONG);};
void SetOutputScalarTypeToInt()
{this->SetOutputScalarType(VTK_INT);}
void SetOutputScalarTypeToUnsignedInt()
{this->SetOutputScalarType(VTK_UNSIGNED_INT);}
void SetOutputScalarTypeToShort()
{this->SetOutputScalarType(VTK_SHORT);}
void SetOutputScalarTypeToUnsignedShort()
{this->SetOutputScalarType(VTK_UNSIGNED_SHORT);}
void SetOutputScalarTypeToChar()
{this->SetOutputScalarType(VTK_CHAR);}
void SetOutputScalarTypeToUnsignedChar()
{this->SetOutputScalarType(VTK_UNSIGNED_CHAR);}
// Description:
// Return the MTime also considering the implicit function.
unsigned long GetMTime();
protected:
// Description:
// Default constructor.
// Set dimension to 3, width, height and depth to 1, levels to 5, minLevels
// to 1, implicitFunction to 0, OutputScalarType to VTK_DOUBLE,
// Threshold is 0.1.
vtkHyperOctreeSampleFunction();
~vtkHyperOctreeSampleFunction();
int RequestInformation (vtkInformation * vtkNotUsed(request),
vtkInformationVector ** vtkNotUsed( inputVector ),
vtkInformationVector *outputVector);
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
void Subdivide(vtkHyperOctreeCursor *cursor,
int level,
vtkHyperOctree *output);
int Dimension;
double Size[3]; // size on each axis
double Origin[3]; // position of corner (0,0,0) of the root.
int Levels;
int MinLevels;
int OutputScalarType;
vtkImplicitFunction *ImplicitFunction;
double Threshold;
private:
vtkHyperOctreeSampleFunction(const vtkHyperOctreeSampleFunction&); // Not implemented.
void operator=(const vtkHyperOctreeSampleFunction&); // Not implemented.
};
#endif
|