VTK
|
a cell that represents a triangle More...
#include <vtkTriangle.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. More... | |
vtkTriangle * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) override |
Methods invoked by print to print information about the object including superclasses. More... | |
vtkCell * | GetEdge (int edgeId) override |
Get the edge specified by edgeId (range 0 to 2) and return that edge's coordinates. More... | |
double | ComputeArea () |
A convenience function to compute the area of a vtkTriangle. More... | |
void | Clip (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) override |
Clip this triangle using scalar value provided. More... | |
int * | GetEdgeArray (int edgeId) |
Return the ids of the vertices defining edge (edgeId ). More... | |
int | IntersectWithLine (const double p1[3], const double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId) override |
Plane intersection plus in/out test on triangle. More... | |
int | GetParametricCenter (double pcoords[3]) override |
Return the center of the triangle in parametric coordinates. More... | |
double | GetParametricDistance (const double pcoords[3]) override |
Return the distance of the parametric coordinate provided to the cell. More... | |
int | GetCellType () override |
See the vtkCell API for descriptions of these methods. More... | |
int | GetCellDimension () override |
See the vtkCell API for descriptions of these methods. More... | |
int | GetNumberOfEdges () override |
See the vtkCell API for descriptions of these methods. More... | |
int | GetNumberOfFaces () override |
See the vtkCell API for descriptions of these methods. More... | |
vtkCell * | GetFace (int) override |
See the vtkCell API for descriptions of these methods. More... | |
int | CellBoundary (int subId, const double pcoords[3], vtkIdList *pts) override |
See the vtkCell API for descriptions of these methods. More... | |
void | Contour (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd) override |
See the vtkCell API for descriptions of these methods. More... | |
int | EvaluatePosition (const double x[3], double closestPoint[3], int &subId, double pcoords[3], double &dist2, double weights[]) override |
See the vtkCell API for descriptions of these methods. More... | |
void | EvaluateLocation (int &subId, const double pcoords[3], double x[3], double *weights) override |
See the vtkCell API for descriptions of these methods. More... | |
int | Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts) override |
See the vtkCell API for descriptions of these methods. More... | |
void | Derivatives (int subId, const double pcoords[3], const double *values, int dim, double *derivs) override |
See the vtkCell API for descriptions of these methods. More... | |
double * | GetParametricCoords () override |
See the vtkCell API for descriptions of these methods. More... | |
void | InterpolateFunctions (const double pcoords[3], double sf[3]) override |
Compute the interpolation functions/derivatives (aka shape functions/derivatives) More... | |
void | InterpolateDerivs (const double pcoords[3], double derivs[6]) override |
Compute the interpolation functions/derivatives (aka shape functions/derivatives) More... | |
Public Member Functions inherited from vtkCell | |
vtkCell * | NewInstance () const |
void | Initialize (int npts, vtkIdType *pts, vtkPoints *p) |
Initialize cell from outside with point ids and point coordinates specified. More... | |
void | Initialize (int npts, vtkPoints *p) |
Initialize the cell with point coordinates specified. More... | |
virtual void | ShallowCopy (vtkCell *c) |
Copy this cell by reference counting the internal data structures. More... | |
virtual void | DeepCopy (vtkCell *c) |
Copy this cell by completely copying internal data structures. More... | |
virtual int | IsLinear () |
Non-linear cells require special treatment beyond the usual cell type and connectivity list information. More... | |
virtual int | RequiresInitialization () |
Some cells require initialization prior to access. More... | |
virtual void | Initialize () |
virtual int | IsExplicitCell () |
Explicit cells require additional representational information beyond the usual cell type and connectivity list information. More... | |
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). More... | |
virtual void | SetFaces (vtkIdType *vtkNotUsed(faces)) |
virtual vtkIdType * | GetFaces () |
vtkPoints * | GetPoints () |
Get the point coordinates for the cell. More... | |
vtkIdType | GetNumberOfPoints () |
Return the number of points in the cell. More... | |
vtkIdList * | GetPointIds () |
Return the list of point ids defining the cell. More... | |
vtkIdType | GetPointId (int ptId) |
For cell point i, return the actual point id. More... | |
void | GetBounds (double bounds[6]) |
Compute cell bounding box (xmin,xmax,ymin,ymax,zmin,zmax). More... | |
double * | GetBounds () |
Compute cell bounding box (xmin,xmax,ymin,ymax,zmin,zmax). More... | |
double | GetLength2 () |
Compute Length squared of cell (i.e., bounding box diagonal squared). More... | |
virtual int | IsPrimaryCell () |
Return whether this cell type has a fixed topology or whether the topology varies depending on the data (e.g., vtkConvexPointSet). More... | |
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. More... | |
virtual void | InterpolateDerivs (const double vtkNotUsed(pcoords)[3], double *vtkNotUsed(derivs)) |
Public Member Functions inherited from vtkObject | |
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... | |
Public Member Functions inherited from vtkObjectBase | |
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... | |
Static Public Member Functions | |
static vtkTriangle * | New () |
static vtkTypeBool | IsTypeOf (const char *type) |
static vtkTriangle * | SafeDownCast (vtkObjectBase *o) |
static void | InterpolationFunctions (const double pcoords[3], double sf[3]) |
static void | InterpolationDerivs (const double pcoords[3], double derivs[6]) |
static void | TriangleCenter (double p1[3], double p2[3], double p3[3], double center[3]) |
Compute the center of the triangle. More... | |
static double | TriangleArea (double p1[3], double p2[3], double p3[3]) |
Compute the area of a triangle in 3D. More... | |
static double | Circumcircle (double p1[2], double p2[2], double p3[2], double center[2]) |
Compute the circumcenter (center[3]) and radius squared (method return value) of a triangle defined by the three points x1, x2, and x3. More... | |
static int | BarycentricCoords (double x[2], double x1[2], double x2[2], double x3[2], double bcoords[3]) |
Given a 2D point x[2], determine the barycentric coordinates of the point. More... | |
static int | ProjectTo2D (double x1[3], double x2[3], double x3[3], double v1[2], double v2[2], double v3[2]) |
Project triangle defined in 3D to 2D coordinates. More... | |
static void | ComputeNormal (vtkPoints *p, int numPts, vtkIdType *pts, double n[3]) |
Compute the triangle normal from a points list, and a list of point ids that index into the points list. More... | |
static void | ComputeNormal (double v1[3], double v2[3], double v3[3], double n[3]) |
Compute the triangle normal from three points. More... | |
static void | ComputeNormalDirection (double v1[3], double v2[3], double v3[3], double n[3]) |
Compute the (unnormalized) triangle normal direction from three points. More... | |
static int | TrianglesIntersect (double p1[3], double q1[3], double r1[3], double p2[3], double q2[3], double r2[3]) |
static int | PointInTriangle (double x[3], double x1[3], double x2[3], double x3[3], double tol2) |
static void | ComputeQuadric (double x1[3], double x2[3], double x3[3], double quadric[4][4]) |
Calculate the error quadric for this triangle. More... | |
static void | ComputeQuadric (double x1[3], double x2[3], double x3[3], vtkQuadric *quadric) |
Calculate the error quadric for this triangle. More... | |
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. 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 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. More... | |
static vtkObjectBase * | New () |
Create an object with Debug turned off, modified time initialized to zero, and reference counting on. More... | |
Protected Member Functions | |
virtual vtkObjectBase * | NewInstanceInternal () const |
vtkTriangle () | |
~vtkTriangle () override | |
Protected Member Functions inherited from vtkCell | |
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. More... | |
void | InternalReleaseFocus () |
These methods allow a command to exclusively grab all events. More... | |
Protected Member Functions inherited from vtkObjectBase | |
vtkObjectBase () | |
virtual | ~vtkObjectBase () |
virtual void | CollectRevisions (ostream &) |
virtual void | ReportReferences (vtkGarbageCollector *) |
vtkObjectBase (const vtkObjectBase &) | |
void | operator= (const vtkObjectBase &) |
Protected Attributes | |
vtkLine * | Line |
Protected Attributes inherited from vtkCell | |
double | Bounds [6] |
Protected Attributes inherited from vtkObject | |
bool | Debug |
vtkTimeStamp | MTime |
vtkSubjectHelper * | SubjectHelper |
Protected Attributes inherited from vtkObjectBase | |
vtkAtomicInt32 | ReferenceCount |
vtkWeakPointerBase ** | WeakPointers |
Additional Inherited Members | |
Public Attributes inherited from vtkCell | |
vtkPoints * | Points |
vtkIdList * | PointIds |
a cell that represents a triangle
vtkTriangle is a concrete implementation of vtkCell to represent a triangle located in 3-space.
Definition at line 41 of file vtkTriangle.h.
typedef vtkCell vtkTriangle::Superclass |
Definition at line 45 of file vtkTriangle.h.
|
protected |
|
overrideprotected |
|
static |
|
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.
|
static |
|
protectedvirtual |
Reimplemented from vtkCell.
vtkTriangle* vtkTriangle::NewInstance | ( | ) | const |
|
overridevirtual |
Get the edge specified by edgeId (range 0 to 2) and return that edge's coordinates.
Implements vtkCell.
|
inlineoverridevirtual |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 58 of file vtkTriangle.h.
|
inlineoverridevirtual |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 59 of file vtkTriangle.h.
|
inlineoverridevirtual |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 60 of file vtkTriangle.h.
|
inlineoverridevirtual |
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 61 of file vtkTriangle.h.
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 62 of file vtkTriangle.h.
|
overridevirtual |
|
overridevirtual |
double vtkTriangle::ComputeArea | ( | ) |
A convenience function to compute the area of a vtkTriangle.
|
overridevirtual |
Clip this triangle using scalar value provided.
Like contouring, except that it cuts the triangle to produce other triangles.
Implements vtkCell.
Compute the interpolation functions/derivatives (aka shape functions/derivatives)
Definition at line 108 of file vtkTriangle.h.
Compute the interpolation functions/derivatives (aka shape functions/derivatives)
Definition at line 112 of file vtkTriangle.h.
Return the ids of the vertices defining edge (edgeId
).
Ids are related to the cell, not to the dataset.
|
overridevirtual |
Plane intersection plus in/out test on triangle.
The in/out test is performed using tol as the tolerance.
Implements vtkCell.
Return the center of the triangle in parametric coordinates.
Reimplemented from vtkCell.
Definition at line 248 of file vtkTriangle.h.
Return the distance of the parametric coordinate provided to the cell.
If inside the cell, a distance of zero is returned.
Reimplemented from vtkCell.
|
inlinestatic |
Compute the center of the triangle.
Definition at line 286 of file vtkTriangle.h.
Compute the area of a triangle in 3D.
See also vtkTriangle::ComputeArea()
Definition at line 295 of file vtkTriangle.h.
|
static |
Compute the circumcenter (center[3]) and radius squared (method return value) of a triangle defined by the three points x1, x2, and x3.
(Note that the coordinates are 2D. 3D points can be used but the z-component will be ignored.)
|
static |
Given a 2D point x[2], determine the barycentric coordinates of the point.
Barycentric coordinates are a natural coordinate system for simplices that express a position as a linear combination of the vertices. For a triangle, there are three barycentric coordinates (because there are three vertices), and the sum of the coordinates must equal 1. If a point x is inside a simplex, then all three coordinates will be strictly positive. If two coordinates are zero (so the third =1), then the point x is on a vertex. If one coordinates are zero, the point x is on an edge. In this method, you must specify the vertex coordinates x1->x3. Returns 0 if triangle is degenerate.
|
static |
Project triangle defined in 3D to 2D coordinates.
Returns 0 if degenerate triangle; non-zero value otherwise. Input points are x1->x3; output 2D points are v1->v3.
|
static |
Compute the triangle normal from a points list, and a list of point ids that index into the points list.
|
inlinestatic |
Compute the triangle normal from three points.
Definition at line 270 of file vtkTriangle.h.
|
inlinestatic |
Compute the (unnormalized) triangle normal direction from three points.
Definition at line 255 of file vtkTriangle.h.
|
static |
|
static |
|
static |
Calculate the error quadric for this triangle.
Return the quadric as a 4x4 matrix or a vtkQuadric. (from Peter Lindstrom's Siggraph 2000 paper, "Out-of-Core Simplification of Large Polygonal Models")
|
static |
Calculate the error quadric for this triangle.
Return the quadric as a 4x4 matrix or a vtkQuadric. (from Peter Lindstrom's Siggraph 2000 paper, "Out-of-Core Simplification of Large Polygonal Models")
|
protected |
Definition at line 240 of file vtkTriangle.h.