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 
62 
63 class vtkDataArray;
64 class vtkDataSet;
66 class vtkPointLocator;
67 class vtkPoints;
71 
73 {
74 public:
76  void PrintSelf( ostream& os, vtkIndent indent );
77 
78  static vtkTessellatorFilter* New();
79 
80  virtual void SetTessellator( vtkStreamingTessellator* );
81  vtkGetObjectMacro(Tessellator, vtkStreamingTessellator);
82 
83  virtual void SetSubdivider( vtkDataSetEdgeSubdivisionCriterion* );
84  vtkGetObjectMacro(Subdivider, vtkDataSetEdgeSubdivisionCriterion);
85 
86  virtual unsigned long GetMTime();
87 
89 
94  vtkSetClampMacro(OutputDimension,int,1,3);
95  vtkGetMacro(OutputDimension,int);
96  //BTX
97  int GetOutputDimension() const;
98  //ETX
100 
102 
105  virtual void SetMaximumNumberOfSubdivisions( int num_subdiv_in );
106  int GetMaximumNumberOfSubdivisions();
107  virtual void SetChordError( double ce );
108  double GetChordError();
110 
112 
113  virtual void ResetFieldCriteria();
114  virtual void SetFieldCriterion( int field, double chord );
116 
118 
122  vtkGetMacro(MergePoints,int);
123  vtkSetMacro(MergePoints,int);
124  vtkBooleanMacro(MergePoints,int);
126 
127 protected:
130 
132 
136  void SetupOutput( vtkDataSet* input, vtkUnstructuredGrid* output );
137 
139  void MergeOutputPoints( vtkUnstructuredGrid* input, vtkUnstructuredGrid* output );
140 
143  void Teardown();
144 
146 
147  virtual int RequestData(vtkInformation* request,
148  vtkInformationVector** inputVector,
149  vtkInformationVector* outputVector);
151 
152  //BTX
158 
160 
167 
168  static void AddAPoint( const double*,
170  void*,
171  const void* );
172  static void AddALine( const double*,
173  const double*,
175  void*,
176  const void* );
177  static void AddATriangle( const double*,
178  const double*,
179  const double*,
181  void*,
182  const void* );
183  static void AddATetrahedron( const double*,
184  const double*,
185  const double*,
186  const double*,
188  void*,
189  const void* );
190  void OutputPoint( const double* );
191  void OutputLine( const double*, const double* );
192  void OutputTriangle( const double*, const double*, const double* );
193  void OutputTetrahedron( const double*,
194  const double*,
195  const double*,
196  const double* );
197  //ETX
198 
199 private:
200  vtkTessellatorFilter( const vtkTessellatorFilter& ); // Not implemented.
201  void operator = ( const vtkTessellatorFilter& ); // Not implemented.
202 };
203 
204 //BTX
206 {
207  return this->OutputDimension;
208 }
209 //ETX
210 
211 #endif // __vtkTessellatorFilter_h
vtkPointLocator * Locator
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
#define VTK_GRAPHICS_EXPORT
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:58
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:37
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
void PrintSelf(ostream &os, vtkIndent indent)
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