#include <vtkSubdivisionAlgorithm.h>
Inheritance diagram for vtkSubdivisionAlgorithm:
Public Member Functions | |
vtkTypeRevisionMacro (vtkSubdivisionAlgorithm, vtkObject) | |
virtual void | PrintSelf (ostream &os, vtkIndent indent) |
virtual bool | EvaluateEdge (const double *p0, double *p1, const double *p2, int field_start)=0 |
virtual int | PassField (int sourceId, int sourceSize, vtkStreamingTessellator *t) |
virtual void | ResetFieldList () |
virtual bool | DontPassField (int sourceId, vtkStreamingTessellator *t) |
const int * | GetFieldIds () const |
const int * | GetFieldOffsets () const |
int | GetOutputField (int fieldId) const |
int | GetNumberOfFields () const |
Protected Member Functions | |
vtkSubdivisionAlgorithm () | |
virtual | ~vtkSubdivisionAlgorithm () |
bool | ViewDependentEval (const double *p0, double *p1, double *p1_actual, const double *p2, int field_start, vtkMatrix4x4 *viewtrans, const double *pixelSize, double allowableChordErr) const |
bool | FixedFieldErrorEval (const double *p0, double *p1, double *p1_actual, const double *p2, int field_start, int field_criteria, double *allowableFieldErr) const |
Protected Attributes | |
int * | FieldIds |
int * | FieldOffsets |
int | NumberOfFields |
Descendants of this abstract class are used to decide whether a piecewise linear approximation (triangles, lines, ... ) to some nonlinear geometry should be subdivided. This decision may be based on an absolute error metric (chord error) or on some view-dependent metric (chord error compared to device resolution) or on some abstract metric (color error). Or anything else, really. Just so long as you implement the EvaluateEdge member, all will be well.
Definition at line 43 of file vtkSubdivisionAlgorithm.h.
|
|
|
|
|
|
|
Reimplemented in vtkDataSetSubdivisionAlgorithm. |
|
You must implement this member function in a subclass. It will be called by Implemented in vtkDataSetSubdivisionAlgorithm. |
|
This is a helper routine called by |
|
Don't pass any field values in the vertex pointer. This is used to reset the list of fields to pass after a successful run of vtkStreamingTessellator. |
|
This does the opposite of |
|
Return the map from output field id to input field ids. That is, field i of any output vertex from vtkStreamingTessellator will be associated with Definition at line 153 of file vtkSubdivisionAlgorithm.h. References FieldIds. |
|
Return the offset into an output vertex array of all fields. That is, field i of any output vertex, p, from vtkStreamingTessellator will have its first entry at p[ Definition at line 154 of file vtkSubdivisionAlgorithm.h. References FieldOffsets. |
|
Return the output ID of an input field. Returns -1 if fieldId is not set to be passed to the output. |
|
Return the number of fields being evaluated at each output vertex. This is the length of the arrays returned by Definition at line 155 of file vtkSubdivisionAlgorithm.h. References NumberOfFields. |
|
Perform the core logic for a view-dependent subdivision. Returns true if subdivision should occur, false otherwise. This is to be used by subclasses once the mesh-specific evaluation routines have been called to get the actual (as opposed to linearly interpolated) midpoint coordinates. Currently, this handles only geometry, but could conceivably test scalar fields as well.
|
|
Perform the core logic for a fixed multi-criterion, scalar-field based subdivision. Returns true if subdivision should occur, false otherwise. This is to be used by subclasses once the mesh-specific evaluation routines have been called to get the actual (as opposed to linearly interpolated) midpoint geometry and field values. Only field values are tested (not geometry) because you can save yourself field evaluations if you check the geometry yourself and it fails the test.
|
|
Definition at line 96 of file vtkSubdivisionAlgorithm.h. Referenced by GetFieldIds(). |
|
Definition at line 97 of file vtkSubdivisionAlgorithm.h. Referenced by GetFieldOffsets(). |
|
Definition at line 98 of file vtkSubdivisionAlgorithm.h. Referenced by GetNumberOfFields(). |