a cell that represents a triangle
More...
#include <vtkTriangle.h>
Inherits vtkCell.
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
vtkCell * | GetEdge (int edgeId) |
|
double | ComputeArea () |
|
int | GetParametricCenter (double pcoords[3]) |
|
double | GetParametricDistance (double pcoords[3]) |
|
|
int | GetCellType () |
|
int | GetCellDimension () |
|
int | GetNumberOfEdges () |
|
int | GetNumberOfFaces () |
|
vtkCell * | GetFace (int) |
|
int | CellBoundary (int subId, double pcoords[3], vtkIdList *pts) |
|
void | Contour (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd) |
|
int | EvaluatePosition (double x[3], double *closestPoint, int &subId, double pcoords[3], double &dist2, double *weights) |
|
void | EvaluateLocation (int &subId, double pcoords[3], double x[3], double *weights) |
|
int | Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts) |
|
void | Derivatives (int subId, double pcoords[3], double *values, int dim, double *derivs) |
|
virtual double * | GetParametricCoords () |
|
|
void | Clip (double value, vtkDataArray *cellScalars, vtkIncrementalPointLocator *locator, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut) |
|
|
int | IntersectWithLine (double p1[3], double p2[3], double tol, double &t, double x[3], double pcoords[3], int &subId) |
|
|
static vtkTriangle * | New () |
|
static int | IsTypeOf (const char *type) |
|
static vtkTriangle * | SafeDownCast (vtkObject *o) |
|
static double | TriangleArea (double p1[3], double p2[3], double p3[3]) |
|
static void | ComputeNormal (double v1[3], double v2[3], double v3[3], double n[3]) |
|
|
static void | TriangleCenter (double p1[3], double p2[3], double p3[3], double center[3]) |
|
|
static double | Circumcircle (double p1[2], double p2[2], double p3[2], double center[2]) |
|
|
static int | BarycentricCoords (double x[2], double x1[2], double x2[2], double x3[2], double bcoords[3]) |
|
|
static int | ProjectTo2D (double x1[3], double x2[3], double x3[3], double v1[2], double v2[2], double v3[2]) |
|
|
static void | ComputeNormal (vtkPoints *p, int numPts, vtkIdType *pts, double n[3]) |
|
|
static void | ComputeNormalDirection (double v1[3], double v2[3], double v3[3], double n[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]) |
|
static void | ComputeQuadric (double x1[3], double x2[3], double x3[3], vtkQuadric *quadric) |
|
a cell that represents a triangle
vtkTriangle is a concrete implementation of vtkCell to represent a triangle located in 3-space.
- Examples:
- vtkTriangle (Examples)
- Tests:
- vtkTriangle (Tests)
Definition at line 39 of file vtkTriangle.h.
vtkTriangle::vtkTriangle |
( |
| ) |
|
|
protected |
vtkTriangle::~vtkTriangle |
( |
| ) |
|
|
protected |
virtual const char* vtkTriangle::GetClassName |
( |
| ) |
|
|
virtual |
static int vtkTriangle::IsTypeOf |
( |
const char * |
type | ) |
|
|
static |
virtual int vtkTriangle::IsA |
( |
const char * |
type | ) |
|
|
virtual |
void vtkTriangle::PrintSelf |
( |
ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
vtkCell* vtkTriangle::GetEdge |
( |
int |
edgeId | ) |
|
Get the edge specified by edgeId (range 0 to 2) and return that edge's coordinates.
int vtkTriangle::GetCellType |
( |
| ) |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 52 of file vtkTriangle.h.
int vtkTriangle::GetCellDimension |
( |
| ) |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 53 of file vtkTriangle.h.
int vtkTriangle::GetNumberOfEdges |
( |
| ) |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 54 of file vtkTriangle.h.
int vtkTriangle::GetNumberOfFaces |
( |
| ) |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 55 of file vtkTriangle.h.
vtkCell* vtkTriangle::GetFace |
( |
int |
| ) |
|
|
inline |
See the vtkCell API for descriptions of these methods.
Definition at line 56 of file vtkTriangle.h.
int vtkTriangle::CellBoundary |
( |
int |
subId, |
|
|
double |
pcoords[3], |
|
|
vtkIdList * |
pts |
|
) |
| |
See the vtkCell API for descriptions of these methods.
void vtkTriangle::Contour |
( |
double |
value, |
|
|
vtkDataArray * |
cellScalars, |
|
|
vtkIncrementalPointLocator * |
locator, |
|
|
vtkCellArray * |
verts, |
|
|
vtkCellArray * |
lines, |
|
|
vtkCellArray * |
polys, |
|
|
vtkPointData * |
inPd, |
|
|
vtkPointData * |
outPd, |
|
|
vtkCellData * |
inCd, |
|
|
vtkIdType |
cellId, |
|
|
vtkCellData * |
outCd |
|
) |
| |
See the vtkCell API for descriptions of these methods.
int vtkTriangle::EvaluatePosition |
( |
double |
x[3], |
|
|
double * |
closestPoint, |
|
|
int & |
subId, |
|
|
double |
pcoords[3], |
|
|
double & |
dist2, |
|
|
double * |
weights |
|
) |
| |
See the vtkCell API for descriptions of these methods.
void vtkTriangle::EvaluateLocation |
( |
int & |
subId, |
|
|
double |
pcoords[3], |
|
|
double |
x[3], |
|
|
double * |
weights |
|
) |
| |
See the vtkCell API for descriptions of these methods.
See the vtkCell API for descriptions of these methods.
void vtkTriangle::Derivatives |
( |
int |
subId, |
|
|
double |
pcoords[3], |
|
|
double * |
values, |
|
|
int |
dim, |
|
|
double * |
derivs |
|
) |
| |
See the vtkCell API for descriptions of these methods.
virtual double* vtkTriangle::GetParametricCoords |
( |
| ) |
|
|
virtual |
See the vtkCell API for descriptions of these methods.
double vtkTriangle::ComputeArea |
( |
| ) |
|
A convenience function to compute the area of a vtkTriangle.
Clip this triangle using scalar value provided. Like contouring, except that it cuts the triangle to produce other triangles.
static void vtkTriangle::InterpolationFunctions |
( |
double |
pcoords[3], |
|
|
double |
sf[3] |
|
) |
| |
|
static |
static void vtkTriangle::InterpolationDerivs |
( |
double |
pcoords[3], |
|
|
double |
derivs[6] |
|
) |
| |
|
static |
virtual void vtkTriangle::InterpolateFunctions |
( |
double |
pcoords[3], |
|
|
double |
sf[3] |
|
) |
| |
|
inlinevirtual |
virtual void vtkTriangle::InterpolateDerivs |
( |
double |
pcoords[3], |
|
|
double |
derivs[6] |
|
) |
| |
|
inlinevirtual |
int* vtkTriangle::GetEdgeArray |
( |
int |
edgeId | ) |
|
int vtkTriangle::IntersectWithLine |
( |
double |
p1[3], |
|
|
double |
p2[3], |
|
|
double |
tol, |
|
|
double & |
t, |
|
|
double |
x[3], |
|
|
double |
pcoords[3], |
|
|
int & |
subId |
|
) |
| |
Plane intersection plus in/out test on triangle. The in/out test is performed using tol as the tolerance.
int vtkTriangle::GetParametricCenter |
( |
double |
pcoords[3] | ) |
|
|
inline |
Return the center of the triangle in parametric coordinates.
Definition at line 220 of file vtkTriangle.h.
double vtkTriangle::GetParametricDistance |
( |
double |
pcoords[3] | ) |
|
Return the distance of the parametric coordinate provided to the cell. If inside the cell, a distance of zero is returned.
void vtkTriangle::TriangleCenter |
( |
double |
p1[3], |
|
|
double |
p2[3], |
|
|
double |
p3[3], |
|
|
double |
center[3] |
|
) |
| |
|
inlinestatic |
Compute the center of the triangle.
Definition at line 258 of file vtkTriangle.h.
double vtkTriangle::TriangleArea |
( |
double |
p1[3], |
|
|
double |
p2[3], |
|
|
double |
p3[3] |
|
) |
| |
|
inlinestatic |
static double vtkTriangle::Circumcircle |
( |
double |
p1[2], |
|
|
double |
p2[2], |
|
|
double |
p3[2], |
|
|
double |
center[2] |
|
) |
| |
|
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 int vtkTriangle::BarycentricCoords |
( |
double |
x[2], |
|
|
double |
x1[2], |
|
|
double |
x2[2], |
|
|
double |
x3[2], |
|
|
double |
bcoords[3] |
|
) |
| |
|
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 int vtkTriangle::ProjectTo2D |
( |
double |
x1[3], |
|
|
double |
x2[3], |
|
|
double |
x3[3], |
|
|
double |
v1[2], |
|
|
double |
v2[2], |
|
|
double |
v3[2] |
|
) |
| |
|
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 void vtkTriangle::ComputeNormal |
( |
vtkPoints * |
p, |
|
|
int |
numPts, |
|
|
vtkIdType * |
pts, |
|
|
double |
n[3] |
|
) |
| |
|
static |
Compute the triangle normal from a points list, and a list of point ids that index into the points list.
void vtkTriangle::ComputeNormal |
( |
double |
v1[3], |
|
|
double |
v2[3], |
|
|
double |
v3[3], |
|
|
double |
n[3] |
|
) |
| |
|
inlinestatic |
Compute the triangle normal from three points.
Definition at line 242 of file vtkTriangle.h.
void vtkTriangle::ComputeNormalDirection |
( |
double |
v1[3], |
|
|
double |
v2[3], |
|
|
double |
v3[3], |
|
|
double |
n[3] |
|
) |
| |
|
inlinestatic |
Compute the (unnormalized) triangle normal direction from three points.
Definition at line 227 of file vtkTriangle.h.
static int vtkTriangle::PointInTriangle |
( |
double |
x[3], |
|
|
double |
x1[3], |
|
|
double |
x2[3], |
|
|
double |
x3[3], |
|
|
double |
tol2 |
|
) |
| |
|
static |
Given a point x, determine whether it is inside (within the tolerance squared, tol2) the triangle defined by the three coordinate values p1, p2, p3. Method is via comparing dot products. (Note: in current implementation the tolerance only works in the neighborhood of the three vertices of the triangle.
static void vtkTriangle::ComputeQuadric |
( |
double |
x1[3], |
|
|
double |
x2[3], |
|
|
double |
x3[3], |
|
|
double |
quadric[4][4] |
|
) |
| |
|
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 void vtkTriangle::ComputeQuadric |
( |
double |
x1[3], |
|
|
double |
x2[3], |
|
|
double |
x3[3], |
|
|
vtkQuadric * |
quadric |
|
) |
| |
|
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")
The documentation for this class was generated from the following file: