VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
vtkTriangle Class Reference

a cell that represents a triangle More...

#include <vtkTriangle.h>

Inherits vtkCell.

Collaboration diagram for vtkTriangle:
[legend]

Public Types

typedef vtkCell Superclass
 

Public Member Functions

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 Public Member Functions

static vtkTriangleNew ()
 
static int IsTypeOf (const char *type)
 
static vtkTriangleSafeDownCast (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)
 

Protected Member Functions

 vtkTriangle ()
 
 ~vtkTriangle ()
 

Protected Attributes

vtkLineLine
 
static void InterpolationFunctions (double pcoords[3], double sf[3])
 
static void InterpolationDerivs (double pcoords[3], double derivs[6])
 
virtual void InterpolateFunctions (double pcoords[3], double sf[3])
 
virtual void InterpolateDerivs (double pcoords[3], double derivs[6])
 
int * GetEdgeArray (int edgeId)
 

Detailed Description

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.

Member Typedef Documentation

typedef vtkCell vtkTriangle::Superclass

Definition at line 43 of file vtkTriangle.h.

Constructor & Destructor Documentation

vtkTriangle::vtkTriangle ( )
protected
vtkTriangle::~vtkTriangle ( )
protected

Member Function Documentation

static vtkTriangle* vtkTriangle::New ( )
static
virtual const char* vtkTriangle::GetClassName ( )
virtual
static int vtkTriangle::IsTypeOf ( const char *  type)
static
virtual int vtkTriangle::IsA ( const char *  type)
virtual
static vtkTriangle* vtkTriangle::SafeDownCast ( vtkObject o)
static
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.

int vtkTriangle::Triangulate ( int  index,
vtkIdList ptIds,
vtkPoints pts 
)

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.

void vtkTriangle::Clip ( double  value,
vtkDataArray cellScalars,
vtkIncrementalPointLocator *  locator,
vtkCellArray polys,
vtkPointData inPd,
vtkPointData outPd,
vtkCellData *  inCd,
vtkIdType  cellId,
vtkCellData *  outCd,
int  insideOut 
)

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
Deprecated:
Replaced by vtkTriangle::InterpolateFunctions as of VTK 5.2

Definition at line 97 of file vtkTriangle.h.

virtual void vtkTriangle::InterpolateDerivs ( double  pcoords[3],
double  derivs[6] 
)
inlinevirtual
Deprecated:
Replaced by vtkTriangle::InterpolateFunctions as of VTK 5.2

Definition at line 101 of file vtkTriangle.h.

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

Compute the area of a triangle in 3D. See also vtkTriangle::ComputeArea()

Definition at line 267 of file vtkTriangle.h.

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")

Member Data Documentation

vtkLine* vtkTriangle::Line
protected

Definition at line 212 of file vtkTriangle.h.


The documentation for this class was generated from the following file: