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 
61 #include "vtkFiltersGeneralModule.h" // For export macro
63 
64 class vtkDataArray;
65 class vtkDataSet;
67 class vtkPointLocator;
68 class vtkPoints;
72 
74 {
75 public:
77  void PrintSelf( ostream& os, vtkIndent indent );
78 
80 
83 
86 
87  virtual unsigned long GetMTime();
88 
90 
95  vtkSetClampMacro(OutputDimension,int,1,3);
96  vtkGetMacro(OutputDimension,int);
97  //BTX
98  int GetOutputDimension() const;
99  //ETX
101 
103 
106  virtual void SetMaximumNumberOfSubdivisions( int num_subdiv_in );
108  virtual void SetChordError( double ce );
109  double GetChordError();
111 
113 
114  virtual void ResetFieldCriteria();
115  virtual void SetFieldCriterion( int field, double chord );
117 
119 
123  vtkGetMacro(MergePoints,int);
124  vtkSetMacro(MergePoints,int);
125  vtkBooleanMacro(MergePoints,int);
127 
128 protected:
131 
133 
138 
141 
144  void Teardown();
145 
147 
148  virtual int RequestData(vtkInformation* request,
149  vtkInformationVector** inputVector,
150  vtkInformationVector* outputVector);
152 
153  //BTX
159 
161 
168 
169  static void AddAPoint( const double*,
171  void*,
172  const void* );
173  static void AddALine( const double*,
174  const double*,
176  void*,
177  const void* );
178  static void AddATriangle( const double*,
179  const double*,
180  const double*,
182  void*,
183  const void* );
184  static void AddATetrahedron( const double*,
185  const double*,
186  const double*,
187  const double*,
189  void*,
190  const void* );
191  void OutputPoint( const double* );
192  void OutputLine( const double*, const double* );
193  void OutputTriangle( const double*, const double*, const double* );
194  void OutputTetrahedron( const double*,
195  const double*,
196  const double*,
197  const double* );
198  //ETX
199 
200 private:
201  vtkTessellatorFilter( const vtkTessellatorFilter& ); // Not implemented.
202  void operator = ( const vtkTessellatorFilter& ); // Not implemented.
203 };
204 
205 //BTX
207 {
208  return this->OutputDimension;
209 }
210 //ETX
211 
212 #endif // vtkTessellatorFilter_h
vtkPoints
represent and manipulate 3D points
Definition: vtkPoints.h:39
vtkStreamingTessellator
An algorithm that refines an initial simplicial tessellation using edge subdivision.
Definition: vtkStreamingTessellator.h:91
vtkTessellatorFilter::OutputTriangle
void OutputTriangle(const double *, const double *, const double *)
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkTessellatorFilter::GetChordError
double GetChordError()
vtkTessellatorFilter::Subdivider
vtkDataSetEdgeSubdivisionCriterion * Subdivider
Definition: vtkTessellatorFilter.h:155
vtkTessellatorFilter::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkTessellatorFilter::OutputPoints
vtkPoints * OutputPoints
Definition: vtkTessellatorFilter.h:164
vtkTessellatorFilter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkTessellatorFilter::OutputLine
void OutputLine(const double *, const double *)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkPointLocator
quickly locate points in 3-space
Definition: vtkPointLocator.h:53
vtkTessellatorFilter::GetMTime
virtual unsigned long GetMTime()
vtkTessellatorFilter::New
static vtkTessellatorFilter * New()
vtkTessellatorFilter::MergeOutputPoints
void MergeOutputPoints(vtkUnstructuredGrid *input, vtkUnstructuredGrid *output)
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkTessellatorFilter::RequestData
virtual int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)
vtkTessellatorFilter::Locator
vtkPointLocator * Locator
Definition: vtkTessellatorFilter.h:158
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkSetClampMacro
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:143
vtkTessellatorFilter::SetMaximumNumberOfSubdivisions
virtual void SetMaximumNumberOfSubdivisions(int num_subdiv_in)
vtkTessellatorFilter::MergePoints
int MergePoints
Definition: vtkTessellatorFilter.h:157
vtkTessellatorFilter::AddATriangle
static void AddATriangle(const double *, const double *, const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)
vtkTessellatorFilter::AddATetrahedron
static void AddATetrahedron(const double *, const double *, const double *, const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)
vtkFiltersGeneralModule.h
vtkTessellatorFilter::vtkTessellatorFilter
vtkTessellatorFilter()
vtkEdgeSubdivisionCriterion
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided
Definition: vtkEdgeSubdivisionCriterion.h:48
vtkTessellatorFilter::SetChordError
virtual void SetChordError(double ce)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkX3D::field
@ field
Definition: vtkX3D.h:177
vtkTessellatorFilter::AddALine
static void AddALine(const double *, const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)
vtkTessellatorFilter::SetupOutput
void SetupOutput(vtkDataSet *input, vtkUnstructuredGrid *output)
VTKFILTERSGENERAL_EXPORT
#define VTKFILTERSGENERAL_EXPORT
Definition: vtkFiltersGeneralModule.h:15
vtkDataSetEdgeSubdivisionCriterion
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
Definition: vtkDataSetEdgeSubdivisionCriterion.h:48
vtkTessellatorFilter::~vtkTessellatorFilter
~vtkTessellatorFilter()
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkTessellatorFilter::SetFieldCriterion
virtual void SetFieldCriterion(int field, double chord)
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkTessellatorFilter::OutputTetrahedron
void OutputTetrahedron(const double *, const double *, const double *, const double *)
vtkTessellatorFilter::Tessellator
vtkStreamingTessellator * Tessellator
Definition: vtkTessellatorFilter.h:154
vtkTessellatorFilter::OutputMesh
vtkUnstructuredGrid * OutputMesh
Definition: vtkTessellatorFilter.h:163
vtkTessellatorFilter::OutputPoint
void OutputPoint(const double *)
vtkTessellatorFilter::SetTessellator
virtual void SetTessellator(vtkStreamingTessellator *)
vtkTessellatorFilter::GetOutputDimension
virtual int GetOutputDimension()
vtkUnstructuredGridAlgorithm.h
vtkUnstructuredGridAlgorithm
Superclass for algorithms that produce only unstructured grid as output.
Definition: vtkUnstructuredGridAlgorithm.h:40
vtkTessellatorFilter::OutputDimension
int OutputDimension
Definition: vtkTessellatorFilter.h:156
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:82
vtkTessellatorFilter::Teardown
void Teardown()
vtkTessellatorFilter::SetSubdivider
virtual void SetSubdivider(vtkDataSetEdgeSubdivisionCriterion *)
vtkTessellatorFilter::ResetFieldCriteria
virtual void ResetFieldCriteria()
vtkTessellatorFilter::OutputAttributeIndices
int * OutputAttributeIndices
Definition: vtkTessellatorFilter.h:166
vtkTessellatorFilter
approximate nonlinear FEM elements with simplices
Definition: vtkTessellatorFilter.h:74
vtkTessellatorFilter::OutputAttributes
vtkDataArray ** OutputAttributes
Definition: vtkTessellatorFilter.h:165
vtkTessellatorFilter::GetMaximumNumberOfSubdivisions
int GetMaximumNumberOfSubdivisions()
vtkTessellatorFilter::AddAPoint
static void AddAPoint(const double *, vtkEdgeSubdivisionCriterion *, void *, const void *)