Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

vtkTriangle Class Reference

a cell that represents a triangle. More...

#include <vtkTriangle.h>

Inheritance diagram for vtkTriangle:

Inheritance graph
[legend]
Collaboration diagram for vtkTriangle:

Collaboration graph
[legend]
List of all members.

Public Methods

virtual const char * GetClassName ()
virtual int IsA (const char *type)
vtkCellMakeObject ()
vtkCellGetEdge (int edgeId)
int GetParametricCenter (float pcoords[3])
int GetCellType ()
int GetCellDimension ()
int GetNumberOfEdges ()
int GetNumberOfFaces ()
vtkCellGetFace (int)
int CellBoundary (int subId, float pcoords[3], vtkIdList *pts)
void Contour (float value, vtkDataArray *cellScalars, vtkPointLocator *locator, vtkCellArray *verts, vtkCellArray *lines, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd)
int EvaluatePosition (float x[3], float *closestPoint, int &subId, float pcoords[3], float &dist2, float *weights)
void EvaluateLocation (int &subId, float pcoords[3], float x[3], float *weights)
int Triangulate (int index, vtkIdList *ptIds, vtkPoints *pts)
void Derivatives (int subId, float pcoords[3], float *values, int dim, float *derivs)
void Clip (float value, vtkDataArray *cellScalars, vtkPointLocator *locator, vtkCellArray *polys, vtkPointData *inPd, vtkPointData *outPd, vtkCellData *inCd, vtkIdType cellId, vtkCellData *outCd, int insideOut)
int IntersectWithLine (float p1[3], float p2[3], float tol, float &t, float x[3], float pcoords[3], int &subId)

Static Public Methods

vtkTriangle * New ()
int IsTypeOf (const char *type)
vtkTriangle * SafeDownCast (vtkObject *o)
float TriangleArea (float p1[3], float p2[3], float p3[3])
void ComputeNormal (float v1[3], float v2[3], float v3[3], float n[3])
void TriangleCenter (float p1[3], float p2[3], float p3[3], float center[3])
double Circumcircle (double p1[2], double p2[2], double p3[2], double center[2])
int BarycentricCoords (double x[2], double x1[2], double x2[2], double x3[2], double bcoords[3])
int ProjectTo2D (double x1[3], double x2[3], double x3[3], double v1[2], double v2[2], double v3[2])
void ComputeNormal (vtkPoints *p, int numPts, vtkIdType *pts, float n[3])
void ComputeNormalDirection (float v1[3], float v2[3], float v3[3], float n[3])
void ComputeNormal (double v1[3], double v2[3], double v3[3], double n[3])
void ComputeNormalDirection (double v1[3], double v2[3], double v3[3], double n[3])
int PointInTriangle (float x[3], float x1[3], float x2[3], float x3[3], float tol2)
void ComputeQuadric (float x1[3], float x2[3], float x3[3], float quadric[4][4])
void ComputeQuadric (float x1[3], float x2[3], float x3[3], vtkQuadric *quadric)

Protected Methods

 vtkTriangle ()
 ~vtkTriangle ()

Protected Attributes

vtkLineLine

Detailed Description

a cell that represents a triangle.

Date:
2001/11/30 19:14:14
Revision:
1.74

vtkTriangle is a concrete implementation of vtkCell to represent a triangle located in 3-space.

Examples:
vtkTriangle (Examples)
Tests:
vtkTriangle (Tests)

Definition at line 64 of file vtkTriangle.h.


Constructor & Destructor Documentation

vtkTriangle::vtkTriangle   [protected]
 

vtkTriangle::~vtkTriangle   [protected]
 


Member Function Documentation

vtkTriangle* vtkTriangle::New   [static]
 

Create an object with Debug turned off, modified time initialized to zero, and reference counting on.

Reimplemented from vtkObject.

virtual const char* vtkTriangle::GetClassName   [virtual]
 

Return the class name as a string. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkCell.

int vtkTriangle::IsTypeOf const char *    type [static]
 

Return 1 if this class type 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.

virtual int vtkTriangle::IsA const char *    type [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.

vtkTriangle* vtkTriangle::SafeDownCast vtkObject   o [static]
 

Will cast the supplied object to vtkObject* is this is a safe operation (i.e., a safe downcast); otherwise NULL is returned. This method is defined in all subclasses of vtkObject with the vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkCell.

vtkCell* vtkTriangle::MakeObject   [virtual]
 

Create a new cell and copy this triangle's information into the cell. Returns a pointer to the new cell created.

Reimplemented from vtkCell.

vtkCell* vtkTriangle::GetEdge int    edgeId [virtual]
 

Get the edge specified by edgeId (range 0 to 2) and return that edge's coordinates.

Reimplemented from vtkCell.

int vtkTriangle::GetCellType   [inline, virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

Definition at line 80 of file vtkTriangle.h.

int vtkTriangle::GetCellDimension   [inline, virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

Definition at line 81 of file vtkTriangle.h.

int vtkTriangle::GetNumberOfEdges   [inline, virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

Definition at line 82 of file vtkTriangle.h.

int vtkTriangle::GetNumberOfFaces   [inline, virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

Definition at line 83 of file vtkTriangle.h.

vtkCell* vtkTriangle::GetFace int    faceId [inline, virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

Definition at line 84 of file vtkTriangle.h.

int vtkTriangle::CellBoundary int    subId,
float    pcoords[3],
vtkIdList   pts
[virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

void vtkTriangle::Contour float    value,
vtkDataArray   cellScalars,
vtkPointLocator   locator,
vtkCellArray   verts,
vtkCellArray   lines,
vtkCellArray   polys,
vtkPointData   inPd,
vtkPointData   outPd,
vtkCellData   inCd,
vtkIdType    cellId,
vtkCellData   outCd
[virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

int vtkTriangle::EvaluatePosition float    x[3],
float *    closestPoint,
int &    subId,
float    pcoords[3],
float &    dist2,
float *    weights
[virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

void vtkTriangle::EvaluateLocation int &    subId,
float    pcoords[3],
float    x[3],
float *    weights
[virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

int vtkTriangle::Triangulate int    index,
vtkIdList   ptIds,
vtkPoints   pts
[virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

void vtkTriangle::Derivatives int    subId,
float    pcoords[3],
float *    values,
int    dim,
float *    derivs
[virtual]
 

See the vtkCell API for descriptions of these methods.

Reimplemented from vtkCell.

void vtkTriangle::Clip float    value,
vtkDataArray   cellScalars,
vtkPointLocator   locator,
vtkCellArray   polys,
vtkPointData   inPd,
vtkPointData   outPd,
vtkCellData   inCd,
vtkIdType    cellId,
vtkCellData   outCd,
int    insideOut
[virtual]
 

Clip this triangle using scalar value provided. Like contouring, except that it cuts the triangle to produce other triangles.

Reimplemented from vtkCell.

int vtkTriangle::IntersectWithLine float    p1[3],
float    p2[3],
float    tol,
float &    t,
float    x[3],
float    pcoords[3],
int &    subId
[virtual]
 

Plane intersection plus in/out test on triangle. The in/out test is performed using tol as the tolerance.

Reimplemented from vtkCell.

int vtkTriangle::GetParametricCenter float    pcoords[3] [inline, virtual]
 

Return the center of the triangle in parametric coordinates.

Reimplemented from vtkCell.

Definition at line 227 of file vtkTriangle.h.

void vtkTriangle::TriangleCenter float    p1[3],
float    p2[3],
float    p3[3],
float    center[3]
[inline, static]
 

Compute the center of the triangle.

Definition at line 291 of file vtkTriangle.h.

float vtkTriangle::TriangleArea float    p1[3],
float    p2[3],
float    p3[3]
[inline, static]
 

Compute the area of a triangle in 3D.

Definition at line 299 of file vtkTriangle.h.

double vtkTriangle::Circumcircle double    p1[2],
double    p2[2],
double    p3[2],
double    center[2]
[static]
 

Compute the circumcenter (center[3]) and radius (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.)

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.

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.

void vtkTriangle::ComputeNormal vtkPoints   p,
int    numPts,
vtkIdType   pts,
float    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 float    v1[3],
float    v2[3],
float    v3[3],
float    n[3]
[inline, static]
 

Compute the triangle normal from three points.

Definition at line 247 of file vtkTriangle.h.

void vtkTriangle::ComputeNormalDirection float    v1[3],
float    v2[3],
float    v3[3],
float    n[3]
[inline, static]
 

Compute the (unnormalized) triangle normal direction from three points.

Definition at line 233 of file vtkTriangle.h.

Referenced by ComputeNormal().

void vtkTriangle::ComputeNormal double    v1[3],
double    v2[3],
double    v3[3],
double    n[3]
[inline, static]
 

Compute the triangle normal from three points (double-precision version).

Definition at line 276 of file vtkTriangle.h.

void vtkTriangle::ComputeNormalDirection double    v1[3],
double    v2[3],
double    v3[3],
double    n[3]
[inline, static]
 

Compute the (unnormalized) triangle normal direction from three points (double precision version).

Definition at line 262 of file vtkTriangle.h.

int vtkTriangle::PointInTriangle float    x[3],
float    x1[3],
float    x2[3],
float    x3[3],
float    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.

void vtkTriangle::ComputeQuadric float    x1[3],
float    x2[3],
float    x3[3],
float    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")

void vtkTriangle::ComputeQuadric float    x1[3],
float    x2[3],
float    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")


Member Data Documentation

vtkLine* vtkTriangle::Line [protected]
 

Definition at line 220 of file vtkTriangle.h.


The documentation for this class was generated from the following file:
Generated on Thu Mar 28 14:44:37 2002 for VTK by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001