VTK
9.4.20241221
|
abstract superclass for non-linear cells More...
#include <vtkNonLinearCell.h>
Public Types | |
typedef vtkCell | Superclass |
Public Types inherited from vtkCell | |
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. | |
vtkNonLinearCell * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
int | IsLinear () override |
Non-linear cells require special treatment (tessellation) when converting to graphics primitives (during mapping). | |
virtual bool | StableClip (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) |
Clip the cell based on the input cellScalars and the specified value. | |
Public Member Functions inherited from vtkCell | |
virtual vtkTypeBool | IsA (const char *type) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
vtkCell * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
void | Initialize (int npts, const vtkIdType *pts, vtkPoints *p) |
Initialize cell from outside with point ids and point coordinates specified. | |
void | Initialize (int npts, vtkPoints *p) |
Initialize the cell with point coordinates specified. | |
virtual void | ShallowCopy (vtkCell *c) |
Copy this cell by reference counting the internal data structures. | |
virtual void | DeepCopy (vtkCell *c) |
Copy this cell by completely copying internal data structures. | |
virtual int | GetCellType ()=0 |
Return the type of cell. | |
virtual int | GetCellDimension ()=0 |
Return the topological dimensional of the cell (0,1,2, or 3). | |
virtual int | IsLinear () |
Non-linear cells require special treatment beyond the usual cell type and connectivity list information. | |
virtual int | RequiresInitialization () |
Some cells require initialization prior to access. | |
virtual void | Initialize () |
virtual int | IsExplicitCell () |
Explicit cells require additional representational information beyond the usual cell type and connectivity list information. | |
virtual int | RequiresExplicitFaceRepresentation () |
Determine whether the cell requires explicit face representation, and methods for setting and getting the faces (see vtkPolyhedron for example usage of these methods). | |
virtual void | SetFaces (vtkIdType *vtkNotUsed(faces)) |
virtual vtkIdType * | GetFaces () |
vtkPoints * | GetPoints () |
Get the point coordinates for the cell. | |
vtkIdType | GetNumberOfPoints () const |
Return the number of points in the cell. | |
virtual int | GetNumberOfEdges ()=0 |
Return the number of edges in the cell. | |
virtual int | GetNumberOfFaces ()=0 |
Return the number of faces in the cell. | |
vtkIdList * | GetPointIds () |
Return the list of point ids defining the cell. | |
vtkIdType | GetPointId (int ptId) |
For cell point i, return the actual point id. | |
virtual vtkCell * | GetEdge (int edgeId)=0 |
Return the edge cell from the edgeId of the cell. | |
virtual vtkCell * | GetFace (int faceId)=0 |
Return the face cell from the faceId of the cell. | |
virtual int | CellBoundary (int subId, const double pcoords[3], vtkIdList *pts)=0 |
Given parametric coordinates of a point, return the closest cell boundary, and whether the point is inside or outside of the cell. | |
virtual int | EvaluatePosition (const double x[3], double closestPoint[3], int &subId, double pcoords[3], double &dist2, double weights[])=0 |
Given a point x[3] return inside(=1), outside(=0) cell, or (-1) computational problem encountered; evaluate parametric coordinates, sub-cell id (!=0 only if cell is composite), distance squared of point x[3] to cell (in particular, the sub-cell indicated), closest point on cell to x[3] (unless closestPoint is null, in which case, the closest point and dist2 are not found), and interpolation weights in cell. | |
virtual void | EvaluateLocation (int &subId, const double pcoords[3], double x[3], double *weights)=0 |
Determine global coordinate (x[3]) from subId and parametric coordinates. | |
virtual void | Contour (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd)=0 |
Generate contouring primitives. | |
virtual void | Clip (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *connectivity, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut)=0 |
Cut (or clip) the cell based on the input cellScalars and the specified value. | |
virtual int | Inflate (double dist) |
Inflates the cell. | |
virtual double | ComputeBoundingSphere (double center[3]) const |
Computes the bounding sphere of the cell. | |
virtual int | IntersectWithLine (const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId)=0 |
Intersect with a ray. | |
virtual int | Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts) |
Generate simplices of proper dimension. | |
virtual int | TriangulateIds (int index, vtkIdList *ptIds) |
Generate simplices of proper dimension. | |
virtual int | TriangulateLocalIds (int index, vtkIdList *ptIds)=0 |
Generate simplices of proper dimension. | |
virtual void | Derivatives (int subId, const double pcoords[3], const double *values, int dim, double *derivs)=0 |
Compute derivatives given cell subId and parametric coordinates. | |
void | GetBounds (double bounds[6]) |
Compute cell bounding box (xmin,xmax,ymin,ymax,zmin,zmax). | |
double * | GetBounds () |
Compute cell bounding box (xmin,xmax,ymin,ymax,zmin,zmax). | |
double | GetLength2 () |
Compute Length squared of cell (i.e., bounding box diagonal squared). | |
virtual int | GetParametricCenter (double pcoords[3]) |
Return center of the cell in parametric coordinates. | |
virtual double | GetParametricDistance (const double pcoords[3]) |
Return the distance of the parametric coordinate provided to the cell. | |
virtual int | IsPrimaryCell () |
Return whether this cell type has a fixed topology or whether the topology varies depending on the data (e.g., vtkConvexPointSet). | |
virtual double * | GetParametricCoords () |
Return a contiguous array of parametric coordinates of the points defining this cell. | |
virtual void | InterpolateFunctions (const double vtkNotUsed(pcoords)[3], double *vtkNotUsed(weight)) |
Compute the interpolation functions/derivatives (aka shape functions/derivatives) No-ops at this level. | |
virtual void | InterpolateDerivs (const double vtkNotUsed(pcoords)[3], double *vtkNotUsed(derivs)) |
virtual int | IntersectWithCell (vtkCell *other, double tol=0.0) |
Intersects with an other cell. | |
virtual int | IntersectWithCell (vtkCell *other, const vtkBoundingBox &boudingBox, const vtkBoundingBox &otherBoundingBox, double tol=0.0) |
Intersects with an other cell. | |
Public Member Functions inherited from vtkObject | |
vtkBaseTypeMacro (vtkObject, vtkObjectBase) | |
virtual void | DebugOn () |
Turn debugging output on. | |
virtual void | DebugOff () |
Turn debugging output off. | |
bool | GetDebug () |
Get the value of the debug flag. | |
void | SetDebug (bool debugFlag) |
Set the value of the debug flag. | |
virtual void | Modified () |
Update the modification time for this object. | |
virtual vtkMTimeType | GetMTime () |
Return this object's modified time. | |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. | |
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) |
vtkTypeBool | InvokeEvent (unsigned long event) |
vtkTypeBool | InvokeEvent (const char *event) |
std::string | GetObjectDescription () const override |
The object description printed in messages and PrintSelf output. | |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkCommand * | GetCommand (unsigned long tag) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObserver (vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
void | RemoveObservers (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (unsigned long event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
vtkTypeBool | HasObserver (const char *event, vtkCommand *) |
Allow people to add/remove/invoke observers (callbacks) to any VTK object. | |
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. | |
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. | |
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. | |
vtkTypeBool | InvokeEvent (unsigned long event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
vtkTypeBool | InvokeEvent (const char *event, void *callData) |
This method invokes an event and return whether the event was aborted or not. | |
virtual void | SetObjectName (const std::string &objectName) |
Set/get the name of this object for reporting purposes. | |
virtual std::string | GetObjectName () const |
Set/get the name of this object for reporting purposes. | |
Public Member Functions inherited from vtkObjectBase | |
const char * | GetClassName () const |
Return the class name as a string. | |
virtual std::string | GetObjectDescription () const |
The object description printed in messages and PrintSelf output. | |
virtual vtkTypeBool | IsA (const char *name) |
Return 1 if this class is the same type of (or a subclass of) the named class. | |
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). | |
virtual void | Delete () |
Delete a VTK object. | |
virtual void | FastDelete () |
Delete a reference to this object. | |
void | InitializeObjectBase () |
void | Print (ostream &os) |
Print an object to an ostream. | |
void | Register (vtkObjectBase *o) |
Increase the reference count (mark as used by another object). | |
virtual void | UnRegister (vtkObjectBase *o) |
Decrease the reference count (release by another object). | |
int | GetReferenceCount () |
Return the current reference count of this object. | |
void | SetReferenceCount (int) |
Sets the reference count. | |
bool | GetIsInMemkind () const |
A local state flag that remembers whether this object lives in the normal or extended memory space. | |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
Methods invoked by print to print information about the object including superclasses. | |
virtual bool | UsesGarbageCollector () const |
Indicate whether the class uses vtkGarbageCollector or not. | |
Static Public Member Functions | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkNonLinearCell * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkCell | |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkCell * | SafeDownCast (vtkObjectBase *o) |
Static Public Member Functions inherited from vtkObject | |
static vtkObject * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | BreakOnError () |
This method is called when vtkErrorMacro executes. | |
static void | SetGlobalWarningDisplay (vtkTypeBool val) |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOn () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static void | GlobalWarningDisplayOff () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
static vtkTypeBool | GetGlobalWarningDisplay () |
This is a global flag that controls whether any debug, warning or error messages are displayed. | |
Static Public Member Functions inherited from vtkObjectBase | |
static vtkTypeBool | IsTypeOf (const char *name) |
Return 1 if this class type is the same type of (or a subclass of) the named class. | |
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). | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. | |
static void | SetMemkindDirectory (const char *directoryname) |
The name of a directory, ideally mounted -o dax, to memory map an extended memory space within. | |
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. | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkNonLinearCell () | |
~vtkNonLinearCell () override=default | |
Protected Member Functions inherited from vtkCell | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkCell () | |
~vtkCell () override | |
Protected Member Functions inherited from vtkObject | |
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. | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | RegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | UnRegisterInternal (vtkObjectBase *, vtkTypeBool check) |
virtual void | ReportReferences (vtkGarbageCollector *) |
virtual void | ObjectFinalize () |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Additional Inherited Members | |
Public Attributes inherited from vtkCell | |
vtkPoints * | Points |
vtkIdList * | PointIds |
Static Protected Member Functions inherited from vtkObjectBase | |
static vtkMallocingFunction | GetCurrentMallocFunction () |
static vtkReallocingFunction | GetCurrentReallocFunction () |
static vtkFreeingFunction | GetCurrentFreeFunction () |
static vtkFreeingFunction | GetAlternateFreeFunction () |
Protected Attributes inherited from vtkCell | |
double | Bounds [6] |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
std::string | ObjectName |
Protected Attributes inherited from vtkObjectBase | |
std::atomic< int32_t > | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
abstract superclass for non-linear cells
vtkNonLinearCell is an abstract superclass for non-linear cell types. Cells that are a direct subclass of vtkCell or vtkCell3D are linear; cells that are a subclass of vtkNonLinearCell have non-linear interpolation functions. Non-linear cells require special treatment when tessellating or converting to graphics primitives. Note that the linearity of the cell is a function of whether the cell needs tessellation, which does not strictly correlate with interpolation order (e.g., vtkHexahedron has non-linear interpolation functions (a product of three linear functions in r-s-t) even thought vtkHexahedron is considered linear.)
Definition at line 25 of file vtkNonLinearCell.h.
typedef vtkCell vtkNonLinearCell::Superclass |
Definition at line 28 of file vtkNonLinearCell.h.
|
protected |
|
overrideprotecteddefault |
|
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 vtkCell.
Reimplemented in vtkBezierCurve, vtkBezierHexahedron, vtkBezierQuadrilateral, vtkBezierTetra, vtkBezierTriangle, vtkBezierWedge, vtkBiQuadraticQuad, vtkBiQuadraticQuadraticHexahedron, vtkBiQuadraticQuadraticWedge, vtkBiQuadraticTriangle, vtkCubicLine, vtkHigherOrderCurve, vtkHigherOrderHexahedron, vtkHigherOrderQuadrilateral, vtkHigherOrderTetra, vtkHigherOrderTriangle, vtkHigherOrderWedge, vtkLagrangeCurve, vtkLagrangeHexahedron, vtkLagrangeQuadrilateral, vtkLagrangeTetra, vtkLagrangeTriangle, vtkLagrangeWedge, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticLinearQuad, vtkQuadraticLinearWedge, vtkQuadraticPolygon, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, vtkQuadraticWedge, vtkTriQuadraticHexahedron, and vtkTriQuadraticPyramid.
|
static |
|
protectedvirtual |
Reimplemented from vtkCell.
Reimplemented in vtkBezierCurve, vtkBezierHexahedron, vtkBezierQuadrilateral, vtkBezierTetra, vtkBezierTriangle, vtkBezierWedge, vtkBiQuadraticQuad, vtkBiQuadraticQuadraticHexahedron, vtkBiQuadraticQuadraticWedge, vtkBiQuadraticTriangle, vtkCubicLine, vtkHigherOrderCurve, vtkHigherOrderHexahedron, vtkHigherOrderQuadrilateral, vtkHigherOrderTetra, vtkHigherOrderTriangle, vtkHigherOrderWedge, vtkLagrangeCurve, vtkLagrangeHexahedron, vtkLagrangeQuadrilateral, vtkLagrangeTetra, vtkLagrangeTriangle, vtkLagrangeWedge, vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticLinearQuad, vtkQuadraticLinearWedge, vtkQuadraticPolygon, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, vtkQuadraticWedge, vtkTriQuadraticHexahedron, and vtkTriQuadraticPyramid.
vtkNonLinearCell * vtkNonLinearCell::NewInstance | ( | ) | const |
|
overridevirtual |
Methods invoked by print to print information about the object including superclasses.
Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from vtkCell.
Reimplemented in vtkQuadraticEdge, vtkQuadraticHexahedron, vtkQuadraticLinearQuad, vtkQuadraticLinearWedge, vtkQuadraticPolygon, vtkQuadraticPyramid, vtkQuadraticQuad, vtkQuadraticTetra, vtkQuadraticTriangle, vtkQuadraticWedge, vtkTriQuadraticHexahedron, and vtkTriQuadraticPyramid.
|
inlineoverridevirtual |
Non-linear cells require special treatment (tessellation) when converting to graphics primitives (during mapping).
The vtkCell API IsLinear() is modified to indicate this requirement.
Reimplemented from vtkCell.
Definition at line 36 of file vtkNonLinearCell.h.
|
inlinevirtual |
Clip the cell based on the input cellScalars and the specified value.
The output of the clip operation will be one or more cells of the same topological dimension as the original cell. For more information see vtkCell::Clip.
This method differs from the vtkCell::Clip function in such a way that it tells more information about how the clipped cell was handled. For 2D cells vtkCell::Clip is expected to return either triangles, quads or polygon, and for 3D cells either tetras or wedges. However, it is interesting (especially for non linear cells) to be able to return the same cell type when the cell is totally inside or outside the clipping function. This Clip function resolves exactly this issue by returning a bool : if StableClip returns true then the newly inserted cell is the same type as the current cell, otherwise it will be one of the "expected" types as returned by vtkCell::Clip.
Note: This function could also benefit being moved to vtkCell but requires much more work to be supported by all cell types.
Reimplemented in vtkQuadraticTetra.
Definition at line 61 of file vtkNonLinearCell.h.