/usr/include/vtk-6.3/vtkGlyph3D.h is in libvtk6-dev 6.3.0+dfsg1-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 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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkGlyph3D.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 vtkGlyph3D - copy oriented and scaled glyph geometry to every input point
// .SECTION Description
// vtkGlyph3D is a filter that copies a geometric representation (called
// a glyph) to every point in the input dataset. The glyph is defined with
// polygonal data from a source filter input. The glyph may be oriented
// along the input vectors or normals, and it may be scaled according to
// scalar data or vector magnitude. More than one glyph may be used by
// creating a table of source objects, each defining a different glyph. If a
// table of glyphs is defined, then the table can be indexed into by using
// either scalar value or vector magnitude.
//
// To use this object you'll have to provide an input dataset and a source
// to define the glyph. Then decide whether you want to scale the glyph and
// how to scale the glyph (using scalar value or vector magnitude). Next
// decide whether you want to orient the glyph, and whether to use the
// vector data or normal data to orient it. Finally, decide whether to use a
// table of glyphs, or just a single glyph. If you use a table of glyphs,
// you'll have to decide whether to index into it with scalar value or with
// vector magnitude.
//
// .SECTION Caveats
// The scaling of the glyphs is controlled by the ScaleFactor ivar multiplied
// by the scalar value at each point (if VTK_SCALE_BY_SCALAR is set), or
// multiplied by the vector magnitude (if VTK_SCALE_BY_VECTOR is set),
// Alternatively (if VTK_SCALE_BY_VECTORCOMPONENTS is set), the scaling
// may be specified for x,y,z using the vector components. The
// scale factor can be further controlled by enabling clamping using the
// Clamping ivar. If clamping is enabled, the scale is normalized by the
// Range ivar, and then multiplied by the scale factor. The normalization
// process includes clamping the scale value between (0,1).
//
// Typically this object operates on input data with scalar and/or vector
// data. However, scalar and/or vector aren't necessary, and it can be used
// to copy data from a single source to each point. In this case the scale
// factor can be used to uniformly scale the glyphs.
//
// The object uses "vector" data to scale glyphs, orient glyphs, and/or index
// into a table of glyphs. You can choose to use either the vector or normal
// data at each input point. Use the method SetVectorModeToUseVector() to use
// the vector input data, and SetVectorModeToUseNormal() to use the
// normal input data.
//
// If you do use a table of glyphs, make sure to set the Range ivar to make
// sure the index into the glyph table is computed correctly.
//
// You can turn off scaling of the glyphs completely by using the Scaling
// ivar. You can also turn off scaling due to data (either vector or scalar)
// by using the SetScaleModeToDataScalingOff() method.
//
// You can set what arrays to use for the scalars, vectors, normals, and
// color scalars by using the SetInputArrayToProcess methods in
// vtkAlgorithm. The first array is scalars, the next vectors, the next
// normals and finally color scalars.
// .SECTION See Also
// vtkTensorGlyph
#ifndef vtkGlyph3D_h
#define vtkGlyph3D_h
#include "vtkFiltersCoreModule.h" // For export macro
#include "vtkPolyDataAlgorithm.h"
#define VTK_SCALE_BY_SCALAR 0
#define VTK_SCALE_BY_VECTOR 1
#define VTK_SCALE_BY_VECTORCOMPONENTS 2
#define VTK_DATA_SCALING_OFF 3
#define VTK_COLOR_BY_SCALE 0
#define VTK_COLOR_BY_SCALAR 1
#define VTK_COLOR_BY_VECTOR 2
#define VTK_USE_VECTOR 0
#define VTK_USE_NORMAL 1
#define VTK_VECTOR_ROTATION_OFF 2
#define VTK_INDEXING_OFF 0
#define VTK_INDEXING_BY_SCALAR 1
#define VTK_INDEXING_BY_VECTOR 2
class vtkTransform;
class VTKFILTERSCORE_EXPORT vtkGlyph3D : public vtkPolyDataAlgorithm
{
public:
vtkTypeMacro(vtkGlyph3D,vtkPolyDataAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description
// Construct object with scaling on, scaling mode is by scalar value,
// scale factor = 1.0, the range is (0,1), orient geometry is on, and
// orientation is by vector. Clamping and indexing are turned off. No
// initial sources are defined.
static vtkGlyph3D *New();
// Description:
// Set the source to use for the glyph.
// Note that this method does not connect the pipeline. The algorithm will
// work on the input data as it is without updating the producer of the data.
// See SetSourceConnection for connecting the pipeline.
void SetSourceData(vtkPolyData *pd) {this->SetSourceData(0,pd);};
// Description:
// Specify a source object at a specified table location.
// Note that this method does not connect the pipeline. The algorithm will
// work on the input data as it is without updating the producer of the data.
// See SetSourceConnection for connecting the pipeline.
void SetSourceData(int id, vtkPolyData *pd);
// Description:
// Specify a source object at a specified table location. New style.
// Source connection is stored in port 1. This method is equivalent
// to SetInputConnection(1, id, outputPort).
void SetSourceConnection(int id, vtkAlgorithmOutput* algOutput);
void SetSourceConnection(vtkAlgorithmOutput* algOutput)
{
this->SetSourceConnection(0, algOutput);
}
// Description:
// Get a pointer to a source object at a specified table location.
vtkPolyData *GetSource(int id=0);
// Description:
// Turn on/off scaling of source geometry.
vtkSetMacro(Scaling,int);
vtkBooleanMacro(Scaling,int);
vtkGetMacro(Scaling,int);
// Description:
// Either scale by scalar or by vector/normal magnitude.
vtkSetMacro(ScaleMode,int);
vtkGetMacro(ScaleMode,int);
void SetScaleModeToScaleByScalar()
{this->SetScaleMode(VTK_SCALE_BY_SCALAR);};
void SetScaleModeToScaleByVector()
{this->SetScaleMode(VTK_SCALE_BY_VECTOR);};
void SetScaleModeToScaleByVectorComponents()
{this->SetScaleMode(VTK_SCALE_BY_VECTORCOMPONENTS);};
void SetScaleModeToDataScalingOff()
{this->SetScaleMode(VTK_DATA_SCALING_OFF);};
const char *GetScaleModeAsString();
// Description:
// Either color by scale, scalar or by vector/normal magnitude.
vtkSetMacro(ColorMode,int);
vtkGetMacro(ColorMode,int);
void SetColorModeToColorByScale()
{this->SetColorMode(VTK_COLOR_BY_SCALE);};
void SetColorModeToColorByScalar()
{this->SetColorMode(VTK_COLOR_BY_SCALAR);};
void SetColorModeToColorByVector()
{this->SetColorMode(VTK_COLOR_BY_VECTOR);};
const char *GetColorModeAsString();
// Description:
// Specify scale factor to scale object by.
vtkSetMacro(ScaleFactor,double);
vtkGetMacro(ScaleFactor,double);
// Description:
// Specify range to map scalar values into.
vtkSetVector2Macro(Range,double);
vtkGetVectorMacro(Range,double,2);
// Description:
// Turn on/off orienting of input geometry along vector/normal.
vtkSetMacro(Orient,int);
vtkBooleanMacro(Orient,int);
vtkGetMacro(Orient,int);
// Description:
// Turn on/off clamping of "scalar" values to range. (Scalar value may be
// vector magnitude if ScaleByVector() is enabled.)
vtkSetMacro(Clamping,int);
vtkBooleanMacro(Clamping,int);
vtkGetMacro(Clamping,int);
// Description:
// Specify whether to use vector or normal to perform vector operations.
vtkSetMacro(VectorMode,int);
vtkGetMacro(VectorMode,int);
void SetVectorModeToUseVector() {this->SetVectorMode(VTK_USE_VECTOR);};
void SetVectorModeToUseNormal() {this->SetVectorMode(VTK_USE_NORMAL);};
void SetVectorModeToVectorRotationOff()
{this->SetVectorMode(VTK_VECTOR_ROTATION_OFF);};
const char *GetVectorModeAsString();
// Description:
// Index into table of sources by scalar, by vector/normal magnitude, or
// no indexing. If indexing is turned off, then the first source glyph in
// the table of glyphs is used. Note that indexing mode will only use the
// InputScalarsSelection array and not the InputColorScalarsSelection
// as the scalar source if an array is specified.
vtkSetMacro(IndexMode,int);
vtkGetMacro(IndexMode,int);
void SetIndexModeToScalar() {this->SetIndexMode(VTK_INDEXING_BY_SCALAR);};
void SetIndexModeToVector() {this->SetIndexMode(VTK_INDEXING_BY_VECTOR);};
void SetIndexModeToOff() {this->SetIndexMode(VTK_INDEXING_OFF);};
const char *GetIndexModeAsString();
// Description:
// Enable/disable the generation of point ids as part of the output. The
// point ids are the id of the input generating point. The point ids are
// stored in the output point field data and named "InputPointIds". Point
// generation is useful for debugging and pick operations.
vtkSetMacro(GeneratePointIds,int);
vtkGetMacro(GeneratePointIds,int);
vtkBooleanMacro(GeneratePointIds,int);
// Description:
// Set/Get the name of the PointIds array if generated. By default the Ids
// are named "InputPointIds", but this can be changed with this function.
vtkSetStringMacro(PointIdsName);
vtkGetStringMacro(PointIdsName);
// Description:
// Enable/disable the generation of cell data as part of the output.
// The cell data at each cell will match the point data of the input
// at the glyphed point.
vtkSetMacro(FillCellData,int);
vtkGetMacro(FillCellData,int);
vtkBooleanMacro(FillCellData,int);
// Description:
// This can be overwritten by subclass to return 0 when a point is
// blanked. Default implementation is to always return 1;
virtual int IsPointVisible(vtkDataSet*, vtkIdType) {return 1;};
// Description:
// When set, this is use to transform the source polydata before using it to
// generate the glyph. This is useful if one wanted to reorient the source,
// for example.
void SetSourceTransform(vtkTransform*);
vtkGetObjectMacro(SourceTransform, vtkTransform);
// Description:
// Overridden to include SourceTransform's MTime.
virtual unsigned long GetMTime();
protected:
vtkGlyph3D();
~vtkGlyph3D();
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
virtual int FillInputPortInformation(int, vtkInformation *);
vtkPolyData* GetSource(int idx, vtkInformationVector *sourceInfo);
// Description:
// Method called in RequestData() to do the actual data processing. This will
// glyph the \c input, filling up the \c output based on the filter
// parameters.
virtual bool Execute(vtkDataSet* input,
vtkInformationVector* sourceVector,
vtkPolyData* output);
vtkPolyData **Source; // Geometry to copy to each point
int Scaling; // Determine whether scaling of geometry is performed
int ScaleMode; // Scale by scalar value or vector magnitude
int ColorMode; // new scalars based on scale, scalar or vector
double ScaleFactor; // Scale factor to use to scale geometry
double Range[2]; // Range to use to perform scalar scaling
int Orient; // boolean controls whether to "orient" data
int VectorMode; // Orient/scale via normal or via vector data
int Clamping; // whether to clamp scale factor
int IndexMode; // what to use to index into glyph table
int GeneratePointIds; // produce input points ids for each output point
int FillCellData; // whether to fill output cell data
char *PointIdsName;
vtkTransform* SourceTransform;
private:
vtkGlyph3D(const vtkGlyph3D&); // Not implemented.
void operator=(const vtkGlyph3D&); // Not implemented.
};
// Description:
// Return the method of scaling as a descriptive character string.
inline const char *vtkGlyph3D::GetScaleModeAsString(void)
{
if ( this->ScaleMode == VTK_SCALE_BY_SCALAR )
{
return "ScaleByScalar";
}
else if ( this->ScaleMode == VTK_SCALE_BY_VECTOR )
{
return "ScaleByVector";
}
else
{
return "DataScalingOff";
}
}
// Description:
// Return the method of coloring as a descriptive character string.
inline const char *vtkGlyph3D::GetColorModeAsString(void)
{
if ( this->ColorMode == VTK_COLOR_BY_SCALAR )
{
return "ColorByScalar";
}
else if ( this->ColorMode == VTK_COLOR_BY_VECTOR )
{
return "ColorByVector";
}
else
{
return "ColorByScale";
}
}
// Description:
// Return the vector mode as a character string.
inline const char *vtkGlyph3D::GetVectorModeAsString(void)
{
if ( this->VectorMode == VTK_USE_VECTOR)
{
return "UseVector";
}
else if ( this->VectorMode == VTK_USE_NORMAL)
{
return "UseNormal";
}
else
{
return "VectorRotationOff";
}
}
// Description:
// Return the index mode as a character string.
inline const char *vtkGlyph3D::GetIndexModeAsString(void)
{
if ( this->IndexMode == VTK_INDEXING_OFF)
{
return "IndexingOff";
}
else if ( this->IndexMode == VTK_INDEXING_BY_SCALAR)
{
return "IndexingByScalar";
}
else
{
return "IndexingByVector";
}
}
#endif
|