 |
VTK
9.0.1
|
Go to the documentation of this file.
75 #ifndef vtkStreamingTessellator_h
76 #define vtkStreamingTessellator_h
78 #include "vtkFiltersCoreModule.h"
81 #undef PARAVIEW_DEBUG_TESSELLATOR
92 typedef void (*VertexProcessorFunction)(
94 typedef void (*EdgeProcessorFunction)(
96 typedef void (*TriangleProcessorFunction)(
98 typedef void (*TetrahedronProcessorFunction)(
const double*,
const double*,
const double*,
110 virtual void SetTetrahedronCallback(TetrahedronProcessorFunction);
111 virtual TetrahedronProcessorFunction GetTetrahedronCallback()
const;
118 virtual void SetTriangleCallback(TriangleProcessorFunction);
119 virtual TriangleProcessorFunction GetTriangleCallback()
const;
126 virtual void SetEdgeCallback(EdgeProcessorFunction);
127 virtual EdgeProcessorFunction GetEdgeCallback()
const;
134 virtual void SetVertexCallback(VertexProcessorFunction);
135 virtual VertexProcessorFunction GetVertexCallback()
const;
142 virtual void SetPrivateData(
void* Private);
143 virtual void* GetPrivateData()
const;
153 virtual void SetConstPrivateData(
const void* ConstPrivate);
154 virtual const void* GetConstPrivateData()
const;
184 virtual void SetEmbeddingDimension(
int k,
int d);
185 int GetEmbeddingDimension(
int k)
const;
218 virtual void SetFieldSize(
int k,
int s);
219 int GetFieldSize(
int k)
const;
226 virtual void SetMaximumNumberOfSubdivisions(
int num_subdiv_in);
227 int GetMaximumNumberOfSubdivisions();
250 void AdaptivelySample3Facet(
double* v0,
double* v1,
double* v2,
double* v3)
const;
251 void AdaptivelySample2Facet(
double* v0,
double* v1,
double* v2)
const;
252 void AdaptivelySample1Facet(
double* v0,
double* v1)
const;
253 void AdaptivelySample0Facet(
double* v0)
const;
271 #ifdef PARAVIEW_DEBUG_TESSELLATOR
272 for (
int i = 0; i < 11; ++i)
274 this->CaseCounts[i] = 0;
275 for (
int j = 0; j < 51; ++j)
277 this->SubcaseCounts[i][j] = 0;
280 #endif // PARAVIEW_DEBUG_TESSELLATOR
284 #ifdef PARAVIEW_DEBUG_TESSELLATOR
285 return this->CaseCounts[c];
289 #endif // PARAVIEW_DEBUG_TESSELLATOR
293 #ifdef PARAVIEW_DEBUG_TESSELLATOR
294 return this->SubcaseCounts[casenum][sub];
299 #endif // PARAVIEW_DEBUG_TESSELLATOR
304 static int EdgeCodesToCaseCodesPlusPermutation[64][2];
316 #ifdef PARAVIEW_DEBUG_TESSELLATOR
319 #endif // PARAVIEW_DEBUG_TESSELLATOR
329 int PointDimension[4];
336 int EmbeddingDimension[4];
346 void AdaptivelySample3Facet(
double* v0,
double* v1,
double* v2,
double* v3,
int maxDepth)
const;
347 void AdaptivelySample2Facet(
double* v0,
double* v1,
double* v2,
int maxDepth,
int move = 7)
const;
348 void AdaptivelySample1Facet(
double* v0,
double* v1,
int maxDepth)
const;
350 int BestTets(
int*,
double**,
int,
int)
const;
358 double* v0,
double* v1,
double* v2,
double* v3)
const
363 double* v0,
double* v1,
double* v2)
const
374 if (k <= 0 || k >= 4)
381 if (k <= 0 || k >= 4)
391 #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.