VTK
vtkTessellatorFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: Visualization Toolkit
4 Module: vtkTessellatorFilter.h
5 Language: C++
6 
7 Copyright 2003 Sandia Corporation.
8 Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
9 license for use of this work by or on behalf of the
10 U.S. Government. Redistribution and use in source and binary forms, with
11 or without modification, are permitted provided that this Notice and any
12 statement of authorship are reproduced on all copies.
13 
14 =========================================================================*/
15 #ifndef vtkTessellatorFilter_h
16 #define vtkTessellatorFilter_h
17 
58 #include "vtkFiltersGeneralModule.h" // For export macro
60 
61 class vtkDataArray;
62 class vtkDataSet;
64 class vtkPointLocator;
65 class vtkPoints;
69 
71 {
72 public:
74  void PrintSelf( ostream& os, vtkIndent indent );
75 
76  static vtkTessellatorFilter* New();
77 
78  virtual void SetTessellator( vtkStreamingTessellator* );
79  vtkGetObjectMacro(Tessellator, vtkStreamingTessellator);
80 
81  virtual void SetSubdivider( vtkDataSetEdgeSubdivisionCriterion* );
82  vtkGetObjectMacro(Subdivider, vtkDataSetEdgeSubdivisionCriterion);
83 
84  virtual unsigned long GetMTime();
85 
87 
92  vtkSetClampMacro(OutputDimension,int,1,3);
93  vtkGetMacro(OutputDimension,int);
94  //BTX
95  int GetOutputDimension() const;
96  //ETX
98 
100 
103  virtual void SetMaximumNumberOfSubdivisions( int num_subdiv_in );
104  int GetMaximumNumberOfSubdivisions();
105  virtual void SetChordError( double ce );
106  double GetChordError();
108 
110 
111  virtual void ResetFieldCriteria();
112  virtual void SetFieldCriterion( int field, double chord );
114 
116 
120  vtkGetMacro(MergePoints,int);
121  vtkSetMacro(MergePoints,int);
122  vtkBooleanMacro(MergePoints,int);
124 
125 protected:
128 
130 
134  void SetupOutput( vtkDataSet* input, vtkUnstructuredGrid* output );
135 
137  void MergeOutputPoints( vtkUnstructuredGrid* input, vtkUnstructuredGrid* output );
138 
141  void Teardown();
142 
144 
145  virtual int RequestData(vtkInformation* request,
146  vtkInformationVector** inputVector,
147  vtkInformationVector* outputVector);
149 
150  //BTX
156 
158 
165 
166  static void AddAPoint( const double*,
168  void*,
169  const void* );
170  static void AddALine( const double*,
171  const double*,
173  void*,
174  const void* );
175  static void AddATriangle( const double*,
176  const double*,
177  const double*,
179  void*,
180  const void* );
181  static void AddATetrahedron( const double*,
182  const double*,
183  const double*,
184  const double*,
186  void*,
187  const void* );
188  void OutputPoint( const double* );
189  void OutputLine( const double*, const double* );
190  void OutputTriangle( const double*, const double*, const double* );
191  void OutputTetrahedron( const double*,
192  const double*,
193  const double*,
194  const double* );
195  //ETX
196 
197 private:
198  vtkTessellatorFilter( const vtkTessellatorFilter& ); // Not implemented.
199  void operator = ( const vtkTessellatorFilter& ); // Not implemented.
200 };
201 
202 //BTX
204 {
205  return this->OutputDimension;
206 }
207 //ETX
208 
209 #endif // vtkTessellatorFilter_h
vtkPointLocator * Locator
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkUnstructuredGrid * OutputMesh
An algorithm that refines an initial simplicial tessellation using edge subdivision.
quickly locate points in 3-space
Store vtkAlgorithm input/output information.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:61
static vtkUnstructuredGridAlgorithm * New()
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkDataSetEdgeSubdivisionCriterion * Subdivider
approximate nonlinear FEM elements with simplices
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
void PrintSelf(ostream &os, vtkIndent indent)
#define VTKFILTERSGENERAL_EXPORT
Superclass for algorithms that produce only unstructured grid as output.
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided ...
vtkDataArray ** OutputAttributes
Store zero or more vtkInformation instances.
vtkStreamingTessellator * Tessellator
virtual int GetOutputDimension()
represent and manipulate 3D points
Definition: vtkPoints.h:38