67#ifndef vtkStreamingTessellator_h 
   68#define vtkStreamingTessellator_h 
   70#include "vtkFiltersCoreModule.h"  
   73#undef PARAVIEW_DEBUG_TESSELLATOR 
   75VTK_ABI_NAMESPACE_BEGIN
 
   85  typedef void (*VertexProcessorFunction)(
 
   87  typedef void (*EdgeProcessorFunction)(
 
   89  typedef void (*TriangleProcessorFunction)(
 
   91  typedef void (*TetrahedronProcessorFunction)(
const double*, 
const double*, 
const double*,
 
  178  int GetEmbeddingDimension(
int k) 
const;
 
  212  int GetFieldSize(
int k) 
const;
 
  220  int GetMaximumNumberOfSubdivisions();
 
  247  void AdaptivelySample3Facet(
double* v0, 
double* v1, 
double* v2, 
double* v3) 
const;
 
  248  void AdaptivelySample2Facet(
double* v0, 
double* v1, 
double* v2) 
const;
 
  249  void AdaptivelySample1Facet(
double* v0, 
double* v1) 
const;
 
  268#ifdef PARAVIEW_DEBUG_TESSELLATOR 
  269    for (
int i = 0; i < 11; ++i)
 
  271      this->CaseCounts[i] = 0;
 
  272      for (
int j = 0; j < 51; ++j)
 
  274        this->SubcaseCounts[i][j] = 0;
 
  281#ifdef PARAVIEW_DEBUG_TESSELLATOR 
  282    return this->CaseCounts[c];
 
  290#ifdef PARAVIEW_DEBUG_TESSELLATOR 
  291    return this->SubcaseCounts[casenum][sub];
 
  301  static int EdgeCodesToCaseCodesPlusPermutation[64][2];
 
  313#ifdef PARAVIEW_DEBUG_TESSELLATOR 
  326  int PointDimension[4];
 
  333  int EmbeddingDimension[4];
 
  355  double* v0, 
double* v1, 
double* v2, 
double* v3)
 const 
  360  double* v0, 
double* v1, 
double* v2)
 const 
  371  if (k <= 0 || k >= 4)
 
  378  if (k <= 0 || k >= 4)
 
how to decide whether a linear approximation to nonlinear geometry or field should be subdivided
 
a simple class to control print indentation
 
abstract base class for most VTK objects
 
An algorithm that refines an initial simplicial tessellation using edge subdivision.
 
vtkStreamingTessellator()
 
virtual TetrahedronProcessorFunction GetTetrahedronCallback() const
Get/Set the function called for each output tetrahedron (3-facet).
 
virtual const void * GetConstPrivateData() const
Get/Set a constant void pointer passed to the simplex output functions.
 
~vtkStreamingTessellator() override
 
void AdaptivelySample3FacetLinear(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...
 
void AdaptivelySample1Facet(double *v0, double *v1, int maxDepth) const
 
vtkIdType GetCaseCount(int c)
Reset/access the histogram of subdivision cases encountered.
 
void AdaptivelySample2Facet(double *v0, double *v1, double *v2) const
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until...
 
virtual void SetSubdivisionAlgorithm(vtkEdgeSubdivisionCriterion *)
Get/Set the algorithm used to determine whether an edge should be subdivided or left as-is.
 
virtual void SetMaximumNumberOfSubdivisions(int num_subdiv_in)
Get/Set the maximum number of subdivisions that may occur.
 
TriangleProcessorFunction Callback2
 
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...
 
virtual void SetFieldSize(int k, int s)
Get/Set the number of field value coordinates associated with each input and output point.
 
virtual VertexProcessorFunction GetVertexCallback() const
Get/Set the function called for each output line segment (1-facet).
 
int BestTets(int *, double **, int, int) const
 
VertexProcessorFunction Callback0
 
EdgeProcessorFunction Callback1
 
virtual const vtkEdgeSubdivisionCriterion * GetSubdivisionAlgorithm() const
 
void AdaptivelySample0Facet(double *v0) const
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until...
 
int PointDimension[4]
PointDimension is the length of each double* array associated with each point passed to a subdivision...
 
virtual void SetVertexCallback(VertexProcessorFunction)
Get/Set the function called for each output line segment (1-facet).
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
vtkEdgeSubdivisionCriterion * Algorithm
 
virtual vtkEdgeSubdivisionCriterion * GetSubdivisionAlgorithm()
Get/Set the algorithm used to determine whether an edge should be subdivided or left as-is.
 
int GetMaximumNumberOfSubdivisions()
Get/Set the maximum number of subdivisions that may occur.
 
virtual void SetEdgeCallback(EdgeProcessorFunction)
Get/Set the function called for each output line segment (1-facet).
 
int GetFieldSize(int k) const
Get/Set the number of field value coordinates associated with each input and output point.
 
virtual void * GetPrivateData() const
Get/Set a void pointer passed to the triangle and edge output functions.
 
void ResetCounts()
Reset/access the histogram of subdivision cases encountered.
 
void AdaptivelySample1Facet(double *v0, double *v1) const
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until...
 
TetrahedronProcessorFunction Callback3
 
virtual void SetTetrahedronCallback(TetrahedronProcessorFunction)
Get/Set the function called for each output tetrahedron (3-facet).
 
void AdaptivelySample1FacetLinear(double *v0, double *v1) const
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until...
 
void AdaptivelySample2FacetLinear(double *v0, double *v1, double *v2) const
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until...
 
void AdaptivelySample3Facet(double *v0, double *v1, double *v2, double *v3, int maxDepth) const
 
const void * ConstPrivateData
 
static vtkStreamingTessellator * New()
 
virtual void SetPrivateData(void *Private)
Get/Set a void pointer passed to the triangle and edge output functions.
 
virtual TriangleProcessorFunction GetTriangleCallback() const
Get/Set the function called for each output triangle (2-facet).
 
virtual void SetEmbeddingDimension(int k, int d)
Get/Set the number of parameter-space coordinates associated with each input and output point.
 
virtual void SetConstPrivateData(const void *ConstPrivate)
Get/Set a constant void pointer passed to the simplex output functions.
 
vtkIdType GetSubcaseCount(int casenum, int sub)
Reset/access the histogram of subdivision cases encountered.
 
int EmbeddingDimension[4]
The parametric dimension of each point passed to the subdivision algorithm.
 
virtual void SetTriangleCallback(TriangleProcessorFunction)
Get/Set the function called for each output triangle (2-facet).
 
int MaximumNumberOfSubdivisions
The number of subdivisions allowed.
 
virtual EdgeProcessorFunction GetEdgeCallback() const
Get/Set the function called for each output line segment (1-facet).
 
int GetEmbeddingDimension(int k) const
Get/Set the number of parameter-space coordinates associated with each input and output point.
 
void AdaptivelySample2Facet(double *v0, double *v1, double *v2, int maxDepth, int move=7) const