#include <vtkDataSetSubdivisionAlgorithm.h>
Inheritance diagram for vtkDataSetSubdivisionAlgorithm:
Public Member Functions | |
vtkTypeRevisionMacro (vtkDataSetSubdivisionAlgorithm, vtkSubdivisionAlgorithm) | |
virtual void | PrintSelf (ostream &os, vtkIndent indent) |
virtual void | SetMesh (vtkDataSet *) |
vtkDataSet * | GetMesh () |
const vtkDataSet * | GetMesh () const |
virtual void | SetCellId (vtkIdType cell) |
vtkIdType | GetCellId () const |
vtkIdType & | GetCellId () |
vtkCell * | GetCell () |
const vtkCell * | GetCell () const |
virtual bool | EvaluateEdge (const double *p0, double *midpt, const double *p1, int field_start) |
double * | EvaluateFields (double *vertex, double *weights, int field_start) |
virtual void | ResetFieldError2 () |
void | EvaluatePointDataField (double *result, double *weights, int field) |
void | EvaluateCellDataField (double *result, double *weights, int field) |
virtual void | SetChordError2 (double) |
virtual double | GetChordError2 () |
virtual void | SetFieldError2 (int s, double err) |
double | GetFieldError2 (int s) const |
virtual int | GetActiveFieldCriteria () |
int | GetActiveFieldCriteria () const |
Static Public Member Functions | |
vtkDataSetSubdivisionAlgorithm * | New () |
Protected Member Functions | |
vtkDataSetSubdivisionAlgorithm () | |
virtual | ~vtkDataSetSubdivisionAlgorithm () |
Protected Attributes | |
vtkDataSet * | CurrentMesh |
vtkIdType | CurrentCellId |
vtkCell * | CurrentCellData |
double | ChordError2 |
double * | FieldError2 |
int | FieldError2Length |
int | FieldError2Capacity |
int | ActiveFieldCriteria |
This is a subclass of vtkSubdivisionAlgorithm that is used for tessellating cells of a vtkDataSet, particularly nonlinear cells.
It provides functions for setting the current cell being tessellated and a convenience routine, EvaluateFields() to evaluate field values at a point. You should call EvaluateFields() from inside EvaluateEdge() whenever the result of EvaluateEdge() will be true. Otherwise, do not call EvaluateFields() as the midpoint is about to be discarded. (Implementor's note: This isn't true if UGLY_ASPECT_RATIO_HACK has been defined. But in that case, we don't want the exact field values; we need the linearly interpolated ones at the midpoint for continuity.)
Definition at line 46 of file vtkDataSetSubdivisionAlgorithm.h.
|
|
|
|
|
|
|
|
|
Reimplemented from vtkSubdivisionAlgorithm. |
|
|
|
Definition at line 160 of file vtkDataSetSubdivisionAlgorithm.h. References CurrentMesh. |
|
Definition at line 161 of file vtkDataSetSubdivisionAlgorithm.h. References CurrentMesh. |
|
|
|
Definition at line 158 of file vtkDataSetSubdivisionAlgorithm.h. References CurrentCellId. |
|
Definition at line 157 of file vtkDataSetSubdivisionAlgorithm.h. References CurrentCellId. |
|
Definition at line 163 of file vtkDataSetSubdivisionAlgorithm.h. References CurrentCellData. |
|
Definition at line 164 of file vtkDataSetSubdivisionAlgorithm.h. References CurrentCellData. |
|
You must implement this member function in a subclass. It will be called by Implements vtkSubdivisionAlgorithm. |
|
Evaluate all of the fields that should be output with the given vertex and store them just past the parametric coordinates of vertex, at the offsets given by vtkStreamingTessellator* t = vtkStreamingTessellator::New(); vtkSubdivisionAlgorithm* s; ... t->AdaptivelySample1Facet( s->EvaluateFields( p0 ), s->EvaluateFields( p1 ) ); ... EvaluateFields() in this manner should be avoided. It's much more efficient to fetch the corner values for each attribute and copy them into p0, p1, ... as opposed to performing shape function evaluations. The only case where you wouldn't want to do this is when the field you are interpolating is discontinuous at cell borders, such as with a discontinuous galerkin method or when all the Gauss points for quadrature are interior to the cell. The final argument, weights, is the array of weights to apply to each point's data when interpolating the field. This is returned by vtkCell::EvaluateLocation() when evaluating the geometry. |
|
Evaluate either a cell or nodal field. This exists because of the funky way that Exodus data will be handled. Sure, it's a hack, but what are ya gonna do? |
|
Evaluate either a cell or nodal field. This exists because of the funky way that Exodus data will be handled. Sure, it's a hack, but what are ya gonna do? |
|
Get/Set the square of the allowable chord error at any edge's midpoint. This value is used by EvaluateEdge. |
|
Get/Set the square of the allowable chord error at any edge's midpoint. This value is used by EvaluateEdge. |
|
Get/Set the square of the allowable error magnitude for the scalar field s at any edge's midpoint. A value less than or equal to 0 indicates that the field should not be used as a criterion for subdivision. |
|
Get/Set the square of the allowable error magnitude for the scalar field s at any edge's midpoint. A value less than or equal to 0 indicates that the field should not be used as a criterion for subdivision. |
|
Tell the subdivider not to use any field values as subdivision criteria. Effectively calls SetFieldError2( a, -1. ) for all fields. |
|
Return a bitfield specifying which FieldError2 criteria are positive (i.e., actively used to decide edge subdivisions). This is stored as separate state to make subdivisions go faster. |
|
Return a bitfield specifying which FieldError2 criteria are positive (i.e., actively used to decide edge subdivisions). This is stored as separate state to make subdivisions go faster. Definition at line 132 of file vtkDataSetSubdivisionAlgorithm.h. |
|
Definition at line 139 of file vtkDataSetSubdivisionAlgorithm.h. Referenced by GetMesh(). |
|
Definition at line 140 of file vtkDataSetSubdivisionAlgorithm.h. Referenced by GetCellId(). |
|
Definition at line 141 of file vtkDataSetSubdivisionAlgorithm.h. Referenced by GetCell(). |
|
Definition at line 143 of file vtkDataSetSubdivisionAlgorithm.h. |
|
Definition at line 144 of file vtkDataSetSubdivisionAlgorithm.h. |
|
Definition at line 145 of file vtkDataSetSubdivisionAlgorithm.h. |
|
Definition at line 146 of file vtkDataSetSubdivisionAlgorithm.h. |
|
Definition at line 147 of file vtkDataSetSubdivisionAlgorithm.h. |