File: vtkProbePolyhedron.h

package info (click to toggle)
vtk 5.8.0-13
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 130,524 kB
  • sloc: cpp: 1,129,256; ansic: 708,203; tcl: 48,526; python: 20,875; xml: 6,779; yacc: 4,208; perl: 3,121; java: 2,788; lex: 931; sh: 660; asm: 471; makefile: 299
file content (117 lines) | stat: -rw-r--r-- 4,651 bytes parent folder | download | duplicates (3)
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
/*=========================================================================

  Program:   Visualization Toolkit
  Module:    vtkProbePolyhedron.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 vtkProbePolyhedron - probe/interpolate data values in the interior, 
// exterior or of the surface of a closed, manifold polyhedron
// .SECTION Description
// vtkProbePolyhedron is a filter that computes point attributes (e.g.,
// scalars, vectors, etc.) at specified point positions. The filter has two
// inputs: the Input and Source. The Source geometric structure is passed
// through the filter. The point attributes are computed at the Input point
// positions by interpolating into the source data. In this filter, the
// Source is always a closed, non-self-intersecting, polyhedral mesh. For
// example, we can compute data values on a plane (plane specified as Input)
// from a triangle mesh (e.g., output of marching cubes).  
//
// This filter can be used to resample data from a mesh onto a different
// dataset type. For example, a polyhedral mesh (vtkPolyData) can be probed
// with a volume (three-dimensional vtkImageData), and then volume rendering
// techniques can be used to visualize the results. Another example: a line
// or curve can be used to probe a mesh to produce x-y plots along that line or
// curve.

// .SECTION Caveats
// Note that cell data is not interpolated from the source. If you need cell data,
// you can always use vtkPointDataToCellData and/or vtkCellDataToPointData in
// various combinations.
//
// Note that the filter interpolates from a mesh to points interior, exterior
// or on the surface of the mesh. This process is necessarily an
// approximation. Currently the approach of Mean Value Coordinates is used,
// but this filter may be extended in the future to use other methods.
//

// .SECTION See Also
// vtkProbeFilter vtkMeanValueCoordinatesInterpolator vtkPolyhedron


#ifndef __vtkProbePolyhedron_h
#define __vtkProbePolyhedron_h

#include "vtkDataSetAlgorithm.h"
#include "vtkDataSetAttributes.h" // needed for vtkDataSetAttributes::FieldList

class vtkIdTypeArray;
class vtkCharArray;
class vtkMaskPoints;

class VTK_GRAPHICS_EXPORT vtkProbePolyhedron : public vtkDataSetAlgorithm
{
public:
  // Description:
  // Standard methods for instantiable (i.e., concrete) class.
  static vtkProbePolyhedron *New();
  vtkTypeMacro(vtkProbePolyhedron,vtkDataSetAlgorithm);
  void PrintSelf(ostream& os, vtkIndent indent);

  // Description:
  // Specify the point locations used to probe input. Any geometry
  // can be used. Old style. Do not use unless for backwards compatibility.
  void SetSource(vtkPolyData *source);
  vtkPolyData *GetSource();

  // Description:
  // Specify the point locations used to probe input. Any geometry
  // can be used. New style. Equivalent to SetInputConnection(1, algOutput).
  void SetSourceConnection(vtkAlgorithmOutput* algOutput);

  // Description:
  // Specify whether to probe (and hence produce) point data. The
  // interpolated point data of the source will produce the output
  // point data (output points are passed from the input points).
  vtkSetMacro(ProbePointData, int);
  vtkGetMacro(ProbePointData, int);
  vtkBooleanMacro(ProbePointData, int);

  // Description:
  // Specify whether to probe (and hence produce) cell data. The
  // interpolated point data of the source will produce the output
  // cell data (output cells are passed from the input cells). Note 
  // that the probing of the input uses the centers of the cells as
  // the probe position.
  vtkSetMacro(ProbeCellData, int);
  vtkGetMacro(ProbeCellData, int);
  vtkBooleanMacro(ProbeCellData, int);

protected:
  vtkProbePolyhedron();
  ~vtkProbePolyhedron();

  int ProbePointData;
  int ProbeCellData;

  virtual int RequestData(vtkInformation *, vtkInformationVector **, 
    vtkInformationVector *);
  virtual int RequestInformation(vtkInformation *, vtkInformationVector **, 
    vtkInformationVector *);
  virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, 
    vtkInformationVector *);

private:
  vtkProbePolyhedron(const vtkProbePolyhedron&);  // Not implemented.
  void operator=(const vtkProbePolyhedron&);  // Not implemented.

};

#endif