| 
    VTK
   
    
   
   | 
  
  
  
 
a cell that represents a triangle More...
#include <vtkTriangle.h>


Public Types | |
| typedef vtkCell | Superclass | 
Public Member Functions | |
| virtual int | IsA (const char *type) | 
| vtkTriangle * | NewInstance () const | 
| void | PrintSelf (ostream &os, vtkIndent indent) | 
| vtkCell * | GetEdge (int edgeId) | 
| double | ComputeArea () | 
| int * | GetEdgeArray (int edgeId) | 
| 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) | 
| virtual void | InterpolateFunctions (double pcoords[3], double sf[3]) | 
| virtual void | InterpolateDerivs (double pcoords[3], double derivs[6]) | 
| 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 vtkTriangle * | New () | 
| static int | IsTypeOf (const char *type) | 
| static vtkTriangle * | SafeDownCast (vtkObjectBase *o) | 
| static void | InterpolationFunctions (double pcoords[3], double sf[3]) | 
| static void | InterpolationDerivs (double pcoords[3], double derivs[6]) | 
| 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 | |
| virtual vtkObjectBase * | NewInstanceInternal () const | 
| vtkTriangle () | |
| ~vtkTriangle () | |
Protected Attributes | |
| vtkLine * | Line | 
a cell that represents a triangle
vtkTriangle is a concrete implementation of vtkCell to represent a triangle located in 3-space.
Definition at line 40 of file vtkTriangle.h.
| typedef vtkCell vtkTriangle::Superclass | 
Reimplemented from vtkCell.
Definition at line 44 of file vtkTriangle.h.
| vtkTriangle::vtkTriangle | ( | ) |  [protected] | 
        
| vtkTriangle::~vtkTriangle | ( | ) |  [protected] | 
        
| static vtkTriangle* vtkTriangle::New | ( | ) |  [static] | 
        
Create an object with Debug turned off, modified time initialized to zero, and reference counting on.
Reimplemented from vtkObject.
| static int vtkTriangle::IsTypeOf | ( | const char * | name | ) |  [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 * | name | ) |  [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 vtkTriangle* vtkTriangle::SafeDownCast | ( | vtkObjectBase * | o | ) |  [static] | 
        
Reimplemented from vtkCell.
| virtual vtkObjectBase* vtkTriangle::NewInstanceInternal | ( | ) |  const [protected, virtual] | 
        
Reimplemented from vtkCell.
| vtkTriangle* vtkTriangle::NewInstance | ( | ) | const | 
Reimplemented from vtkCell.
| void vtkTriangle::PrintSelf | ( | ostream & | os, | 
| vtkIndent | indent | ||
| ) |  [virtual] | 
        
| vtkCell* vtkTriangle::GetEdge | ( | int | edgeId | ) |  [virtual] | 
        
Get the edge specified by edgeId (range 0 to 2) and return that edge's coordinates.
Implements vtkCell.
| int vtkTriangle::GetCellType | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 53 of file vtkTriangle.h.
| int vtkTriangle::GetCellDimension | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 54 of file vtkTriangle.h.
| int vtkTriangle::GetNumberOfEdges | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 55 of file vtkTriangle.h.
| int vtkTriangle::GetNumberOfFaces | ( | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 56 of file vtkTriangle.h.
| vtkCell* vtkTriangle::GetFace | ( | int | ) |  [inline, virtual] | 
        
See the vtkCell API for descriptions of these methods.
Implements vtkCell.
Definition at line 57 of file vtkTriangle.h.
| int vtkTriangle::CellBoundary | ( | int | subId, | 
| double | pcoords[3], | ||
| vtkIdList * | pts | ||
| ) |  [virtual] | 
        
| 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 | ||
| ) |  [virtual] | 
        
| void vtkTriangle::EvaluateLocation | ( | int & | subId, | 
| double | pcoords[3], | ||
| double | x[3], | ||
| double * | weights | ||
| ) |  [virtual] | 
        
| int vtkTriangle::Triangulate | ( | int | index, | 
| vtkIdList * | ptIds, | ||
| vtkPoints * | pts | ||
| ) |  [virtual] | 
        
| virtual double* vtkTriangle::GetParametricCoords | ( | ) |  [virtual] | 
        
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 | ||
| ) |  [virtual] | 
        
Clip this triangle using scalar value provided. Like contouring, except that it cuts the triangle to produce other triangles.
Implements vtkCell.
| 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] | ||
| ) |  [inline, virtual] | 
        
Compute the interpolation functions/derivatives (aka shape functions/derivatives)
Reimplemented from vtkCell.
Definition at line 96 of file vtkTriangle.h.
| virtual void vtkTriangle::InterpolateDerivs | ( | double | pcoords[3], | 
| double | derivs[6] | ||
| ) |  [inline, virtual] | 
        
Compute the interpolation functions/derivatives (aka shape functions/derivatives)
Definition at line 100 of file vtkTriangle.h.
| int* vtkTriangle::GetEdgeArray | ( | int | edgeId | ) | 
Return the ids of the vertices defining edge (edgeId). Ids are related to the cell, not to the dataset. 
| int vtkTriangle::IntersectWithLine | ( | double | p1[3], | 
| double | p2[3], | ||
| double | tol, | ||
| double & | t, | ||
| double | x[3], | ||
| double | pcoords[3], | ||
| int & | subId | ||
| ) |  [virtual] | 
        
Plane intersection plus in/out test on triangle. The in/out test is performed using tol as the tolerance.
Implements vtkCell.
| int vtkTriangle::GetParametricCenter | ( | double | pcoords[3] | ) |  [inline, virtual] | 
        
Return the center of the triangle in parametric coordinates.
Reimplemented from vtkCell.
Definition at line 218 of file vtkTriangle.h.
| double vtkTriangle::GetParametricDistance | ( | double | pcoords[3] | ) |  [virtual] | 
        
Return the distance of the parametric coordinate provided to the cell. If inside the cell, a distance of zero is returned.
Reimplemented from vtkCell.
| void vtkTriangle::TriangleCenter | ( | double | p1[3], | 
| double | p2[3], | ||
| double | p3[3], | ||
| double | center[3] | ||
| ) |  [inline, static] | 
        
Compute the center of the triangle.
Definition at line 256 of file vtkTriangle.h.
| double vtkTriangle::TriangleArea | ( | double | p1[3], | 
| double | p2[3], | ||
| double | p3[3] | ||
| ) |  [inline, static] | 
        
Compute the area of a triangle in 3D. See also vtkTriangle::ComputeArea()
Definition at line 265 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] | ||
| ) |  [inline, static] | 
        
Compute the triangle normal from three points.
Definition at line 240 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.
Definition at line 225 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")
vtkLine* vtkTriangle::Line [protected] | 
        
Definition at line 210 of file vtkTriangle.h.
 1.8.0