80 #ifndef vtkStreamingTessellator_h
81 #define vtkStreamingTessellator_h
85 #undef PARAVIEW_DEBUG_TESSELLATOR
98 typedef void (*EdgeProcessorFunction)(
const double*,
const double*, vtkEdgeSubdivisionCriterion*,
void*,
const void* );
99 typedef void (*TriangleProcessorFunction)(
const double*,
const double*,
const double*, vtkEdgeSubdivisionCriterion*,
void*,
const void* );
100 typedef void (*TetrahedronProcessorFunction)(
const double*,
const double*,
const double*,
const double*, vtkEdgeSubdivisionCriterion*,
void*,
const void* );
102 enum {MaxFieldSize = 18};
106 virtual void SetTetrahedronCallback( TetrahedronProcessorFunction );
107 virtual TetrahedronProcessorFunction GetTetrahedronCallback()
const;
112 virtual void SetTriangleCallback( TriangleProcessorFunction );
113 virtual TriangleProcessorFunction GetTriangleCallback()
const;
118 virtual void SetEdgeCallback( EdgeProcessorFunction );
119 virtual EdgeProcessorFunction GetEdgeCallback()
const;
124 virtual void SetVertexCallback( VertexProcessorFunction );
125 virtual VertexProcessorFunction GetVertexCallback()
const;
132 virtual void SetPrivateData(
void* Private );
133 virtual void* GetPrivateData()
const;
141 virtual void SetConstPrivateData(
const void* ConstPrivate );
142 virtual const void* GetConstPrivateData()
const;
152 virtual void SetSubdivisionAlgorithm( vtkEdgeSubdivisionCriterion* );
153 virtual vtkEdgeSubdivisionCriterion* GetSubdivisionAlgorithm() ;
155 virtual const vtkEdgeSubdivisionCriterion* GetSubdivisionAlgorithm()
const;
170 virtual void SetEmbeddingDimension(
int k,
int d );
171 int GetEmbeddingDimension(
int k )
const;
201 virtual void SetFieldSize(
int k,
int s );
202 int GetFieldSize(
int k )
const;
207 virtual void SetMaximumNumberOfSubdivisions(
int num_subdiv_in );
208 int GetMaximumNumberOfSubdivisions();
224 void AdaptivelySample3Facet(
double* v1,
double* v2,
double* v3,
double* v4 )
const ;
225 void AdaptivelySample2Facet(
double* v1,
double* v2,
double* v3 )
const ;
226 void AdaptivelySample1Facet(
double* v1,
double* v2 )
const ;
227 void AdaptivelySample0Facet(
double* v1 )
const ;
242 #ifdef PARAVIEW_DEBUG_TESSELLATOR
243 for (
int i=0; i<11; ++i )
245 this->CaseCounts[i] = 0;
246 for (
int j=0; j<51; ++j )
248 this->SubcaseCounts[i][j] = 0;
251 #endif // PARAVIEW_DEBUG_TESSELLATOR
255 #ifdef PARAVIEW_DEBUG_TESSELLATOR
256 return this->CaseCounts[c];
260 #endif // PARAVIEW_DEBUG_TESSELLATOR
264 #ifdef PARAVIEW_DEBUG_TESSELLATOR
265 return this->SubcaseCounts[casenum][sub];
270 #endif // PARAVIEW_DEBUG_TESSELLATOR
276 static int EdgeCodesToCaseCodesPlusPermutation[64][2];
289 #ifdef PARAVIEW_DEBUG_TESSELLATOR
292 #endif // PARAVIEW_DEBUG_TESSELLATOR
301 int PointDimension[4];
306 int EmbeddingDimension[4];
314 void AdaptivelySample3Facet(
double* v1,
double* v2,
double* v3,
double* v4,
int maxDepth )
const ;
315 void AdaptivelySample2Facet(
double* v1,
double* v2,
double* v3,
int maxDepth,
int move=7 )
const ;
316 void AdaptivelySample1Facet(
double* v1,
double* v2,
int maxDepth )
const ;
318 int BestTets(
int*,
double**,
int,
int )
const;
344 #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
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