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