Go to the documentation of this file.
75 #ifndef vtkStreamingTessellator_h
76 #define vtkStreamingTessellator_h
78 #include "vtkFiltersCoreModule.h"
81 #undef PARAVIEW_DEBUG_TESSELLATOR
95 typedef void (*TetrahedronProcessorFunction)(
const double*,
const double*,
const double*,
const double*,
vtkEdgeSubdivisionCriterion*,
void*,
const void* );
97 enum {MaxFieldSize = 18};
103 virtual void SetTetrahedronCallback( TetrahedronProcessorFunction );
104 virtual TetrahedronProcessorFunction GetTetrahedronCallback()
const;
111 virtual void SetTriangleCallback( TriangleProcessorFunction );
112 virtual TriangleProcessorFunction GetTriangleCallback()
const;
119 virtual void SetEdgeCallback( EdgeProcessorFunction );
120 virtual EdgeProcessorFunction GetEdgeCallback()
const;
127 virtual void SetVertexCallback( VertexProcessorFunction );
128 virtual VertexProcessorFunction GetVertexCallback()
const;
135 virtual void SetPrivateData(
void* Private );
136 virtual void* GetPrivateData()
const;
145 virtual void SetConstPrivateData(
const void* ConstPrivate );
146 virtual const void* GetConstPrivateData()
const;
176 virtual void SetEmbeddingDimension(
int k,
int d );
177 int GetEmbeddingDimension(
int k )
const;
210 virtual void SetFieldSize(
int k,
int s );
211 int GetFieldSize(
int k )
const;
218 virtual void SetMaximumNumberOfSubdivisions(
int num_subdiv_in );
219 int GetMaximumNumberOfSubdivisions();
242 void AdaptivelySample3Facet(
double* v0,
double* v1,
double* v2,
double* v3 )
const ;
243 void AdaptivelySample2Facet(
double* v0,
double* v1,
double* v2 )
const ;
244 void AdaptivelySample1Facet(
double* v0,
double* v1 )
const ;
245 void AdaptivelySample0Facet(
double* v0 )
const ;
261 #ifdef PARAVIEW_DEBUG_TESSELLATOR
262 for (
int i=0; i<11; ++i )
264 this->CaseCounts[i] = 0;
265 for (
int j=0; j<51; ++j )
267 this->SubcaseCounts[i][j] = 0;
270 #endif // PARAVIEW_DEBUG_TESSELLATOR
274 #ifdef PARAVIEW_DEBUG_TESSELLATOR
275 return this->CaseCounts[c];
279 #endif // PARAVIEW_DEBUG_TESSELLATOR
283 #ifdef PARAVIEW_DEBUG_TESSELLATOR
284 return this->SubcaseCounts[casenum][sub];
289 #endif // PARAVIEW_DEBUG_TESSELLATOR
295 static int EdgeCodesToCaseCodesPlusPermutation[64][2];
307 #ifdef PARAVIEW_DEBUG_TESSELLATOR
310 #endif // PARAVIEW_DEBUG_TESSELLATOR
320 int PointDimension[4];
327 int EmbeddingDimension[4];
337 void AdaptivelySample3Facet(
double* v0,
double* v1,
double* v2,
double* v3,
int maxDepth )
const ;
338 void AdaptivelySample2Facet(
double* v0,
double* v1,
double* v2,
int maxDepth,
int move=7 )
const ;
339 void AdaptivelySample1Facet(
double* v0,
double* v1,
int maxDepth )
const ;
341 int BestTets(
int*,
double**,
int,
int )
const;
363 #endif // vtkStreamingTessellator_h
An algorithm that refines an initial simplicial tessellation using edge subdivision.
vtkIdType GetCaseCount(int c)
int GetEmbeddingDimension(int k) const
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
abstract base class for most VTK objects
EdgeProcessorFunction Callback1
vtkIdType GetSubcaseCount(int casenum, int sub)
int PointDimension[4]
PointDimension is the length of each double* array associated with each point passed to a subdivision...
void AdaptivelySample2Facet(double *v0, double *v1, double *v2) const
void AdaptivelySample1Facet(double *v0, double *v1) const
int GetFieldSize(int k) const
int EmbeddingDimension[4]
The parametric dimension of each point passed to the subdivision algorithm.
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided
a simple class to control print indentation
void AdaptivelySample3Facet(double *v0, double *v1, double *v2, double *v3) const
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until...
TetrahedronProcessorFunction Callback3
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkEdgeSubdivisionCriterion * Algorithm
const void * ConstPrivateData
TriangleProcessorFunction Callback2
VertexProcessorFunction Callback0
void ResetCounts()
Reset/access the histogram of subdivision cases encountered.
int GetMaximumNumberOfSubdivisions()
int MaximumNumberOfSubdivisions
The number of subdivisions allowed.