|  | 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.