VTK
9.1.0
|
a subclass of vtkEdgeSubdivisionCriterion for vtkDataSet objects. More...
#include <vtkDataSetEdgeSubdivisionCriterion.h>
Public Types | |
typedef vtkEdgeSubdivisionCriterion | Superclass |
![]() | |
typedef vtkObject | Superclass |
Public Member Functions | |
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 | EvaluateLocationAndFields (double *midpt, 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... | |
![]() | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. 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 bool | EvaluateLocationAndFields (double *p1, int field_start)=0 |
You must implement this member function in a subclass. 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 | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. 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 vtkTypeBool | IsA (const char *name) |
Return 1 if this class is the same type of (or a subclass of) the named class. More... | |
virtual vtkIdType | GetNumberOfGenerationsFromBase (const char *name) |
Given the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). 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... | |
bool | GetIsInMemkind () const |
A local state flag that remembers whether this object lives in the normal or extended memory space. 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... | |
Static Public Member Functions | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkDataSetEdgeSubdivisionCriterion * | SafeDownCast (vtkObjectBase *o) |
static vtkDataSetEdgeSubdivisionCriterion * | New () |
![]() | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkEdgeSubdivisionCriterion * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. More... | |
static void | SetGlobalWarningDisplay (int val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
static int | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. More... | |
![]() | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. More... | |
static vtkIdType | GetNumberOfGenerationsFromBaseType (const char *name) |
Given a the name of a base class of this class type, return the distance of inheritance between this class type and the named class (how many generations of inheritance are there between this class and the named class). More... | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
static void | SetMemkindDirectory (const char *directoryname) |
The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. More... | |
static bool | GetUsingMemkind () |
A global state flag that controls whether vtkObjects are constructed in the usual way (the default) or within the extended memory space. More... | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkDataSetEdgeSubdivisionCriterion () | |
~vtkDataSetEdgeSubdivisionCriterion () override | |
![]() | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkEdgeSubdivisionCriterion () | |
~vtkEdgeSubdivisionCriterion () override | |
bool | ViewDependentEval (const double *p0, double *p1, double *p1_actual, const double *p2, int field_start, vtkMatrix4x4 *viewtrans, const double *pixelSize, double allowableChordErr) const |
Perform the core logic for a view-dependent subdivision. More... | |
bool | FixedFieldErrorEval (double *p1, double *p1_actual, int field_start, int field_criteria, double *allowableFieldErr) const |
Perform the core logic for a fixed multi-criterion, scalar-field based subdivision. More... | |
![]() | |
vtkObject () | |
~vtkObject () override | |
void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) override |
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) |
These methods allow a command to exclusively grab all events. More... | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. More... | |
![]() | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Protected Attributes | |
vtkDataSet * | CurrentMesh |
vtkIdType | CurrentCellId |
vtkCell * | CurrentCellData |
double | ChordError2 |
double * | FieldError2 |
int | FieldError2Length |
int | FieldError2Capacity |
int | ActiveFieldCriteria |
![]() | |
int * | FieldIds |
int * | FieldOffsets |
int | NumberOfFields |
![]() | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
![]() | |
std::atomic< int32_t > | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
Additional Inherited Members | |
![]() | |
static vtkMallocingFunction | GetCurrentMallocFunction () |
static vtkReallocingFunction | GetCurrentReallocFunction () |
static vtkFreeingFunction | GetCurrentFreeFunction () |
static vtkFreeingFunction | GetAlternateFreeFunction () |
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 EvaluateLocationAndFields() whenever the result of EvaluateLocationAndFields() 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 45 of file vtkDataSetEdgeSubdivisionCriterion.h.
Definition at line 48 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
|
overrideprotected |
|
static |
|
virtual |
Return 1 if this class is the same type of (or a subclass of) the named class.
Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.
Reimplemented from vtkEdgeSubdivisionCriterion.
|
static |
|
protectedvirtual |
Reimplemented from vtkEdgeSubdivisionCriterion.
vtkDataSetEdgeSubdivisionCriterion * vtkDataSetEdgeSubdivisionCriterion::NewInstance | ( | ) | const |
|
static |
|
overridevirtual |
|
virtual |
|
inline |
Definition at line 182 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
inline |
Definition at line 186 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
virtual |
|
inline |
Definition at line 177 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
inline |
Definition at line 173 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
inline |
Definition at line 191 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
inline |
Definition at line 195 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
overridevirtual |
You must implement this member function in a subclass.
It will be called by vtkStreamingTessellator
for each edge in each primitive that vtkStreamingTessellator generates.
Implements vtkEdgeSubdivisionCriterion.
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.
void vtkDataSetEdgeSubdivisionCriterion::EvaluatePointDataField | ( | double * | result, |
double * | weights, | ||
int | field | ||
) |
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?
void vtkDataSetEdgeSubdivisionCriterion::EvaluateCellDataField | ( | double * | result, |
double * | weights, | ||
int | field | ||
) |
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?
|
virtual |
Get/Set the square of the allowable chord error at any edge's midpoint.
This value is used by EvaluateLocationAndFields.
|
virtual |
Get/Set the square of the allowable chord error at any edge's midpoint.
This value is used by EvaluateLocationAndFields.
|
virtual |
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.
double vtkDataSetEdgeSubdivisionCriterion::GetFieldError2 | ( | int | s | ) | const |
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.
|
virtual |
Tell the subdivider not to use any field values as subdivision criteria.
Effectively calls SetFieldError2( a, -1. ) for all fields.
|
virtual |
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.
|
inline |
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 151 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 158 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 159 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 160 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 162 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 163 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 164 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 165 of file vtkDataSetEdgeSubdivisionCriterion.h.
|
protected |
Definition at line 166 of file vtkDataSetEdgeSubdivisionCriterion.h.