|
virtual vtkTypeBool | IsA (const char *type) |
| Return 1 if this class is the same type of (or a subclass of) the named class. More...
|
|
vtkDataSetEdgeSubdivisionCriterion * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) override |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
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 |
|
bool | EvaluateEdge (const double *p0, double *midpt, const double *p1, int field_start) override |
| You must implement this member function in a subclass. More...
|
|
double * | EvaluateFields (double *vertex, double *weights, int field_start) |
| 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 vtkEdgeSubdivisionCriterion::GetFieldOffsets() plus field_start. More...
|
|
virtual void | ResetFieldError2 () |
| Tell the subdivider not to use any field values as subdivision criteria. More...
|
|
|
void | EvaluatePointDataField (double *result, double *weights, int field) |
| Evaluate either a cell or nodal field. More...
|
|
void | EvaluateCellDataField (double *result, double *weights, int field) |
| Evaluate either a cell or nodal field. More...
|
|
|
virtual void | SetChordError2 (double) |
| Get/Set the square of the allowable chord error at any edge's midpoint. More...
|
|
virtual double | GetChordError2 () |
| Get/Set the square of the allowable chord error at any edge's midpoint. More...
|
|
|
virtual void | SetFieldError2 (int s, double err) |
| Get/Set the square of the allowable error magnitude for the scalar field s at any edge's midpoint. More...
|
|
double | GetFieldError2 (int s) const |
| Get/Set the square of the allowable error magnitude for the scalar field s at any edge's midpoint. More...
|
|
|
virtual int | GetActiveFieldCriteria () |
| Return a bitfield specifying which FieldError2 criteria are positive (i.e., actively used to decide edge subdivisions). More...
|
|
int | GetActiveFieldCriteria () const |
| Return a bitfield specifying which FieldError2 criteria are positive (i.e., actively used to decide edge subdivisions). More...
|
|
vtkEdgeSubdivisionCriterion * | NewInstance () const |
|
void | PrintSelf (ostream &os, vtkIndent indent) override |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
virtual int | PassField (int sourceId, int sourceSize, vtkStreamingTessellator *t) |
| This is a helper routine called by PassFields() which you may also call directly; it adds sourceSize to the size of the output vertex field values. More...
|
|
virtual void | ResetFieldList () |
| Don't pass any field values in the vertex pointer. More...
|
|
virtual bool | DontPassField (int sourceId, vtkStreamingTessellator *t) |
| This does the opposite of PassField() ; it removes a field from the output (assuming the field was set to be passed). More...
|
|
const int * | GetFieldIds () const |
| Return the map from output field id to input field ids. More...
|
|
const int * | GetFieldOffsets () const |
| Return the offset into an output vertex array of all fields. More...
|
|
int | GetOutputField (int fieldId) const |
| Return the output ID of an input field. More...
|
|
int | GetNumberOfFields () const |
| Return the number of fields being evaluated at each output vertex. More...
|
|
| vtkBaseTypeMacro (vtkObject, vtkObjectBase) |
|
virtual void | DebugOn () |
| Turn debugging output on. More...
|
|
virtual void | DebugOff () |
| Turn debugging output off. More...
|
|
bool | GetDebug () |
| Get the value of the debug flag. More...
|
|
void | SetDebug (bool debugFlag) |
| Set the value of the debug flag. More...
|
|
virtual void | Modified () |
| Update the modification time for this object. More...
|
|
virtual vtkMTimeType | GetMTime () |
| Return this object's modified time. More...
|
|
void | RemoveObserver (unsigned long tag) |
|
void | RemoveObservers (unsigned long event) |
|
void | RemoveObservers (const char *event) |
|
void | RemoveAllObservers () |
|
vtkTypeBool | HasObserver (unsigned long event) |
|
vtkTypeBool | HasObserver (const char *event) |
|
int | InvokeEvent (unsigned long event) |
|
int | InvokeEvent (const char *event) |
|
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkCommand * | GetCommand (unsigned long tag) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObserver (vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObservers (unsigned long event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
void | RemoveObservers (const char *event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
| Allow people to add/remove/invoke observers (callbacks) to any VTK object. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| Overloads to AddObserver that allow developers to add class member functions as callbacks for events. More...
|
|
template<class U , class T > |
unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| Allow user to set the AbortFlagOn() with the return value of the callback method. More...
|
|
int | InvokeEvent (unsigned long event, void *callData) |
| This method invokes an event and return whether the event was aborted or not. More...
|
|
int | InvokeEvent (const char *event, void *callData) |
| This method invokes an event and return whether the event was aborted or not. More...
|
|
const char * | GetClassName () const |
| Return the class name as a string. More...
|
|
virtual void | Delete () |
| Delete a VTK object. More...
|
|
virtual void | FastDelete () |
| Delete a reference to this object. More...
|
|
void | InitializeObjectBase () |
|
void | Print (ostream &os) |
| Print an object to an ostream. More...
|
|
virtual void | Register (vtkObjectBase *o) |
| Increase the reference count (mark as used by another object). More...
|
|
virtual void | UnRegister (vtkObjectBase *o) |
| Decrease the reference count (release by another object). More...
|
|
int | GetReferenceCount () |
| Return the current reference count of this object. More...
|
|
void | SetReferenceCount (int) |
| Sets the reference count. More...
|
|
void | PrintRevisions (ostream &) |
| Legacy. More...
|
|
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
| Methods invoked by print to print information about the object including superclasses. More...
|
|
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects.
This is a subclass of vtkEdgeSubdivisionCriterion 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.)
- See also
- vtkEdgeSubdivisionCriterion
Definition at line 45 of file vtkDataSetEdgeSubdivisionCriterion.h.
double* vtkDataSetEdgeSubdivisionCriterion::EvaluateFields |
( |
double * |
vertex, |
|
|
double * |
weights, |
|
|
int |
field_start |
|
) |
| |
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 vtkEdgeSubdivisionCriterion::GetFieldOffsets()
plus field_start.
field_start contains the number of world-space coordinates (always 3) plus the embedding dimension (the size of the parameter-space in which the cell is embedded). It will range between 3 and 6, inclusive.
You must have called SetCellId() before calling this routine or there will not be a mesh over which to evaluate the fields.
You must have called vtkEdgeSubdivisionCriterion::PassDefaultFields()
or vtkEdgeSubdivisionCriterion::PassField()
or there will be no fields defined for the output vertex.
This routine is public and returns its input argument so that it may be used as an argument to vtkStreamingTessellator::AdaptivelySamplekFacet()
:
* vtkStreamingTessellator* t = vtkStreamingTessellator::New();
* vtkEdgeSubdivisionCriterion* s;
* ...
* t->AdaptivelySample1Facet( s->EvaluateFields( p0 ), s->EvaluateFields( p1 ) );
* ...
*
Although this will work, using 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.