#include <vtkStreamingTessellator.h>
Collaboration diagram for vtkStreamingTessellator:
[NOHEADER] | |
void | ResetCounts () |
vtkIdType | GetCaseCount (int c) |
vtkIdType | GetSubcaseCount (int casenum, int sub) |
vtkStreamingTessellator () | |
~vtkStreamingTessellator () | |
void | AdaptivelySample3Facet (double *v1, double *v2, double *v3, double *v4, int maxDepth) const |
void | AdaptivelySample2Facet (double *v1, double *v2, double *v3, int maxDepth, int move=7) const |
void | AdaptivelySample1Facet (double *v1, double *v2, int maxDepth) const |
int | BestTets (int *, double **, int, int) const |
void * | PrivateData |
const void * | ConstPrivateData |
vtkSubdivisionAlgorithm * | Algorithm |
EdgeProcessorFunction | Callback1 |
TriangleProcessorFunction | Callback2 |
TetrahedronProcessorFunction | Callback3 |
int | PointDimension [4] |
int | EmbeddingDimension [4] |
int | MaximumNumberOfSubdivisions |
int | EdgeCodesToCaseCodesPlusPermutation [64][2] |
vtkIdType | PermutationsFromIndex [24][14] |
vtkIdType | TetrahedralDecompositions [] |
Public Types | |
typedef void(* | EdgeProcessorFunction )(const double *, const double *, vtkSubdivisionAlgorithm *, void *, const void *) |
typedef void(* | TriangleProcessorFunction )(const double *, const double *, const double *, vtkSubdivisionAlgorithm *, void *, const void *) |
typedef void(* | TetrahedronProcessorFunction )(const double *, const double *, const double *, const double *, vtkSubdivisionAlgorithm *, void *, const void *) |
enum | { MaxFieldSize = 18 } |
Public Member Functions | |
vtkTypeRevisionMacro (vtkStreamingTessellator, vtkObject) | |
virtual void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | SetTetrahedronCallback (TetrahedronProcessorFunction) |
virtual TetrahedronProcessorFunction | GetTetrahedronCallback () const |
virtual void | SetTriangleCallback (TriangleProcessorFunction) |
virtual TriangleProcessorFunction | GetTriangleCallback () const |
virtual void | SetEdgeCallback (EdgeProcessorFunction) |
virtual EdgeProcessorFunction | GetEdgeCallback () const |
virtual void | SetPrivateData (void *Private) |
virtual void * | GetPrivateData () const |
virtual void | SetConstPrivateData (const void *ConstPrivate) |
virtual const void * | GetConstPrivateData () const |
virtual void | SetSubdivisionAlgorithm (vtkSubdivisionAlgorithm *) |
virtual vtkSubdivisionAlgorithm * | GetSubdivisionAlgorithm () |
virtual const vtkSubdivisionAlgorithm * | GetSubdivisionAlgorithm () const |
virtual void | SetEmbeddingDimension (int k, int d) |
int | GetEmbeddingDimension (int k) const |
virtual void | SetFieldSize (int k, int s) |
int | GetFieldSize (int k) const |
virtual void | SetMaximumNumberOfSubdivisions (int num_subdiv_in) |
int | GetMaximumNumberOfSubdivisions () |
void | AdaptivelySample3Facet (double *v1, double *v2, double *v3, double *v4) const |
void | AdaptivelySample2Facet (double *v1, double *v2, double *v3) const |
void | AdaptivelySample1Facet (double *v1, double *v2) const |
Static Public Member Functions | |
vtkStreamingTessellator * | New () |
This class is a simple algorithm that takes a single starting simplex -- a tetrahedron, triangle, or line segment -- and calls a function you pass it with (possibly many times) tetrahedra, triangles, or lines adaptively sampled from the one you specified. It uses an algorithm you specify to control the level of adaptivity.
This class does not create vtkUnstructuredGrid output because it is intended for use in mappers as well as filters. Instead, it calls the registered function with simplices as they are created.
The subdivision algorithm should change the vertex coordinates (it must change both geometric and, if desired, parametric coordinates) of the midpoint. These coordinates need not be changed unless the EvaluateEdge() member returns true. The vtkStreamingTessellator itself has no way of creating a more accurate midpoint vertex.
Here's how to use this class:
vtkStreamingTessellator
to interpolate field values at newly created vertices. Interpolated field values are stored just beyond the parametric coordinates associated with a vertex. They will always be double
values; it does not make sense to interpolate a boolean or string value and your output and subdivision subroutines may always cast to a float
or use floor()
to truncate an interpolated value to an integer.
Definition at line 86 of file vtkStreamingTessellator.h.
|
Definition at line 94 of file vtkStreamingTessellator.h. |
|
Definition at line 95 of file vtkStreamingTessellator.h. |
|
Definition at line 96 of file vtkStreamingTessellator.h. |
|
Definition at line 98 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! |
|
|
|
|
|
|
|
Get/Set the function called for each output tetrahedron (3-facet). |
|
Get/Set the function called for each output tetrahedron (3-facet). |
|
Get/Set the function called for each output triangle (2-facet). |
|
Get/Set the function called for each output triangle (2-facet). |
|
Get/Set the function called for each output line segment (1-facet). |
|
Get/Set the function called for each output line segment (1-facet). |
|
Get/Set a void pointer passed to the triangle and edge output functions. |
|
Get/Set a void pointer passed to the triangle and edge output functions. |
|
Get/Set a constant void pointer passed to the simplex output functions. |
|
Get/Set a constant void pointer passed to the simplex output functions. |
|
Get/Set the algorithm used to determine whether an edge should be subdivided or left as-is. This is used once for each call to AdaptivelySample1Facet (which is recursive and will call itself resulting in additional edges to be checked) or three times for each call to AdaptivelySample2Facet (also recursive). |
|
Get/Set the algorithm used to determine whether an edge should be subdivided or left as-is. This is used once for each call to AdaptivelySample1Facet (which is recursive and will call itself resulting in additional edges to be checked) or three times for each call to AdaptivelySample2Facet (also recursive). |
|
Get/Set the algorithm used to determine whether an edge should be subdivided or left as-is. This is used once for each call to AdaptivelySample1Facet (which is recursive and will call itself resulting in additional edges to be checked) or three times for each call to AdaptivelySample2Facet (also recursive). |
|
Get/Set the number of parameter-space coordinates associated with each input and output point. The default is k for k -facets. You may specify a different dimension, d, for each type of k -facet to be processed. For example, |
|
Get/Set the number of parameter-space coordinates associated with each input and output point. The default is k for k -facets. You may specify a different dimension, d, for each type of k -facet to be processed. For example, Definition at line 315 of file vtkStreamingTessellator.h. References EmbeddingDimension. |
|
Get/Set the number of field value coordinates associated with each input and output point. The default is 0; no field values are interpolated. You may specify a different size, s, for each type of k -facet to be processed. For example, vtkStreamingTessellator* t = vtkStreamingTessellator::New(); t->SetFieldSize( 1, 3 ); t->SetEmbeddingDimension( 1, 1 ); // not really required, this is the default double p0[3+1+3] = { x0, y0, z0, r0, fx0, fy0, fz0 }; double p1[3+1+3] = { x1, y1, z1, r1, fx1, fy1, fz1 }; t->AdaptivelySample1Facet( p0, p1 ); |
|
Get/Set the number of field value coordinates associated with each input and output point. The default is 0; no field values are interpolated. You may specify a different size, s, for each type of k -facet to be processed. For example, vtkStreamingTessellator* t = vtkStreamingTessellator::New(); t->SetFieldSize( 1, 3 ); t->SetEmbeddingDimension( 1, 1 ); // not really required, this is the default double p0[3+1+3] = { x0, y0, z0, r0, fx0, fy0, fz0 }; double p1[3+1+3] = { x1, y1, z1, r1, fx1, fy1, fz1 }; t->AdaptivelySample1Facet( p0, p1 ); Definition at line 318 of file vtkStreamingTessellator.h. References EmbeddingDimension, and PointDimension. |
|
Get/Set the maximum number of subdivisions that may occur. |
|
Get/Set the maximum number of subdivisions that may occur. Definition at line 321 of file vtkStreamingTessellator.h. References MaximumNumberOfSubdivisions. |
|
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until the subdivision algorithm returns false for every edge or the maximum recursion depth is reached. Use Definition at line 308 of file vtkStreamingTessellator.h. |
|
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until the subdivision algorithm returns false for every edge or the maximum recursion depth is reached. Use Definition at line 310 of file vtkStreamingTessellator.h. |
|
This will adaptively subdivide the tetrahedron (3-facet), triangle (2-facet), or edge (1-facet) until the subdivision algorithm returns false for every edge or the maximum recursion depth is reached. Use Definition at line 312 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 222 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 235 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 245 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 258 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 259 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 260 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 263 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 264 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 265 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 267 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 268 of file vtkStreamingTessellator.h. |
|
Reset/access the histogram of subdivision cases encountered. The histogram may be used to examine coverage during testing as well as characterizing the tessellation algorithm's performance. You should call ResetCounts() once, at the beginning of a stream of tetrahedra. It must be called before AdaptivelySample3Facet() to prevent uninitialized memory reads. These functions have no effect (and return 0) when PARAVIEW_DEBUG_TESSELLATOR has not been defined. By default, PARAVIEW_DEBUG_TESSELLATOR is not defined, and your code will be fast and efficient. Really! Definition at line 269 of file vtkStreamingTessellator.h. |
|
PointDimension is the length of each Definition at line 282 of file vtkStreamingTessellator.h. Referenced by GetFieldSize(). |
|
The parametric dimension of each point passed to the subdivision algorithm. Only entries 1 through 3 are used; you can't subdivide 0-facets (points). Well, maybe you can, but I can't! Definition at line 287 of file vtkStreamingTessellator.h. Referenced by GetEmbeddingDimension(), and GetFieldSize(). |
|
The number of subdivisions allowed. Definition at line 290 of file vtkStreamingTessellator.h. Referenced by GetMaximumNumberOfSubdivisions(). |