80 #ifndef vtkStreamingTessellator_h
81 #define vtkStreamingTessellator_h
86 #undef PARAVIEW_DEBUG_TESSELLATOR
99 typedef void (*EdgeProcessorFunction)(
const double*,
const double*, vtkEdgeSubdivisionCriterion*,
void*,
const void* );
100 typedef void (*TriangleProcessorFunction)(
const double*,
const double*,
const double*, vtkEdgeSubdivisionCriterion*,
void*,
const void* );
101 typedef void (*TetrahedronProcessorFunction)(
const double*,
const double*,
const double*,
const double*, vtkEdgeSubdivisionCriterion*,
void*,
const void* );
103 enum {MaxFieldSize = 18};
107 virtual void SetTetrahedronCallback( TetrahedronProcessorFunction );
108 virtual TetrahedronProcessorFunction GetTetrahedronCallback()
const;
113 virtual void SetTriangleCallback( TriangleProcessorFunction );
114 virtual TriangleProcessorFunction GetTriangleCallback()
const;
119 virtual void SetEdgeCallback( EdgeProcessorFunction );
120 virtual EdgeProcessorFunction GetEdgeCallback()
const;
125 virtual void SetVertexCallback( VertexProcessorFunction );
126 virtual VertexProcessorFunction GetVertexCallback()
const;
133 virtual void SetPrivateData(
void* Private );
134 virtual void* GetPrivateData()
const;
142 virtual void SetConstPrivateData(
const void* ConstPrivate );
143 virtual const void* GetConstPrivateData()
const;
153 virtual void SetSubdivisionAlgorithm( vtkEdgeSubdivisionCriterion* );
154 virtual vtkEdgeSubdivisionCriterion* GetSubdivisionAlgorithm() ;
156 virtual const vtkEdgeSubdivisionCriterion* GetSubdivisionAlgorithm()
const;
171 virtual void SetEmbeddingDimension(
int k,
int d );
172 int GetEmbeddingDimension(
int k )
const;
202 virtual void SetFieldSize(
int k,
int s );
203 int GetFieldSize(
int k )
const;
208 virtual void SetMaximumNumberOfSubdivisions(
int num_subdiv_in );
209 int GetMaximumNumberOfSubdivisions();
225 void AdaptivelySample3Facet(
double* v1,
double* v2,
double* v3,
double* v4 )
const ;
226 void AdaptivelySample2Facet(
double* v1,
double* v2,
double* v3 )
const ;
227 void AdaptivelySample1Facet(
double* v1,
double* v2 )
const ;
228 void AdaptivelySample0Facet(
double* v1 )
const ;
243 #ifdef PARAVIEW_DEBUG_TESSELLATOR
244 for (
int i=0; i<11; ++i )
246 this->CaseCounts[i] = 0;
247 for (
int j=0; j<51; ++j )
249 this->SubcaseCounts[i][j] = 0;
252 #endif // PARAVIEW_DEBUG_TESSELLATOR
256 #ifdef PARAVIEW_DEBUG_TESSELLATOR
257 return this->CaseCounts[c];
261 #endif // PARAVIEW_DEBUG_TESSELLATOR
265 #ifdef PARAVIEW_DEBUG_TESSELLATOR
266 return this->SubcaseCounts[casenum][sub];
271 #endif // PARAVIEW_DEBUG_TESSELLATOR
277 static int EdgeCodesToCaseCodesPlusPermutation[64][2];
290 #ifdef PARAVIEW_DEBUG_TESSELLATOR
293 #endif // PARAVIEW_DEBUG_TESSELLATOR
302 int PointDimension[4];
307 int EmbeddingDimension[4];
315 void AdaptivelySample3Facet(
double* v1,
double* v2,
double* v3,
double* v4,
int maxDepth )
const ;
316 void AdaptivelySample2Facet(
double* v1,
double* v2,
double* v3,
int maxDepth,
int move=7 )
const ;
317 void AdaptivelySample1Facet(
double* v1,
double* v2,
int maxDepth )
const ;
319 int BestTets(
int*,
double**,
int,
int )
const;
345 #endif // vtkStreamingTessellator_h
vtkIdType GetCaseCount(int c)
abstract base class for most VTK objects
An algorithm that refines an initial simplicial tessellation using edge subdivision.
int GetFieldSize(int k) const
#define VTKFILTERSCORE_EXPORT
vtkIdType GetSubcaseCount(int casenum, int sub)
int EmbeddingDimension[4]
void AdaptivelySample1Facet(double *v1, double *v2) const
EdgeProcessorFunction Callback1
virtual void PrintSelf(ostream &os, vtkIndent indent)
a simple class to control print indentation
const void * ConstPrivateData
TetrahedronProcessorFunction Callback3
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided ...
vtkEdgeSubdivisionCriterion * Algorithm
TriangleProcessorFunction Callback2
int GetEmbeddingDimension(int k) const
int GetMaximumNumberOfSubdivisions()
int MaximumNumberOfSubdivisions
void AdaptivelySample3Facet(double *v1, double *v2, double *v3, double *v4) const
void AdaptivelySample2Facet(double *v1, double *v2, double *v3) const
VertexProcessorFunction Callback0