BarycentricTriangle Class
3 points defining a triangle to be evaluated with barycentric coordinates.
Methods
Name | Description | |
---|---|---|
constructor(point0: Point3d, point1: Point3d, point2: Point3d): BarycentricTriangle Protected | Constructor. | |
centroid(result?: Point3d): Point3d | Return the centroid of the 3 points. | |
circumcenter(result?: Point3d): Point3d | Return the circumcenter of the triangle. | |
clone(result?: BarycentricTriangle): BarycentricTriangle | Return a new BarycentricTriangle with the same coordinates. |
|
closestPoint(b0: number, b1: number, b2: number): { closestEdgeIndex: number, closestEdgeParam: number } | Compute the projection of a barycentric point p to the triangle T(v_0,v_1,v_2). | |
closestVertexIndex(b0: number, b1: number, b2: number): number | Return the index of the closest triangle vertex to the point given by its barycentric coordinates. | |
distanceSquared(a0: number, a1: number, a2: number, b0: number, b1: number, b2: number): number | Compute the squared distance between two points given by their barycentric coordinates. | |
dotProductOfCrossProductsFromOrigin(other: BarycentricTriangle): number | * For this and other BarycentricTriangles, compute cross products of vectors from point0 to point1 and from point0 to point2. |
|
dotProductOfEdgeVectorsAtVertex(baseVertexIndex: number): number | Compute dot product of the edge vectors based at the vertex with the given index. | |
edgeLength(oppositeVertexIndex: number): number | Compute length of the triangle edge opposite the vertex with the given index. | |
edgeLengthSquared(oppositeVertexIndex: number): number | Compute squared length of the triangle edge opposite the vertex with the given index. | |
fractionToPoint(b0: number, b1: number, b2: number, result?: Point3d): Point3d | Sum the points with given scales. | |
incenter(result?: Point3d): Point3d | Return the incenter of the triangle. | |
intersectRay3d(ray: Ray3d, result?: TriangleLocationDetail): TriangleLocationDetail | Compute the intersection of a line (parameterized as a ray) with the plane of this triangle. | |
intersectSegment(point0: Point3d, point1: Point3d, result?: TriangleLocationDetail): TriangleLocationDetail | Compute the intersection of a line (parameterized as a line segment) with the plane of this triangle. | |
isAlmostEqual(other: BarycentricTriangle): boolean | test for point-by-point isAlmostEqual relationship. |
|
normal(result?: Vector3d): undefined | Vector3d | Return the unit normal of the triangle. | |
pointToFraction(point: Point3d, result?: TriangleLocationDetail): TriangleLocationDetail | Compute the projection of the given point onto the plane of this triangle. | |
set(point0: undefined | Point3d, point1: undefined | Point3d, point2: undefined | Point3d): void | Copy contents of (not pointers to) the given points. | |
setFrom(other: BarycentricTriangle): void | Copy all values from other |
|
snapLocationToEdge(location: TriangleLocationDetail, distanceTolerance: number = Geometry.smallMetricDistance, parameterTolerance: number = Geometry.smallFraction): boolean | Adjust the location to an edge of the triangle if within either given tolerance. | |
create(point0: Point3d, point1: Point3d, point2: Point3d, result?: BarycentricTriangle): BarycentricTriangle Static | create a triangle with coordinates cloned from given points. | |
createXYZXYZXYZ(x0: number, y0: number, z0: number, x1: number, y1: number, z1: number, x2: number, y2: number, z2: number, result?: BarycentricTriangle): BarycentricTriangle Static | Return a BarycentricTriangle with coordinates given by enumerated x,y,z of the 3 points. |
|
edgeOppositeVertexIndexToStartVertexIndex(edgeIndex: number): number Static | Convert from opposite-vertex to start-vertex edge indexing. | |
edgeStartVertexIndexToOppositeVertexIndex(startVertexIndex: number): number Static | Convert from start-vertex to opposite-vertex edge indexing. | |
isInsideOrOnTriangle(b0: number, b1: number, b2: number): boolean Static | Examine a point's barycentric coordinates to determine if it lies inside the triangle or on an edge/vertex. | |
isInsideTriangle(b0: number, b1: number, b2: number): boolean Static | Examine a point's barycentric coordinates to determine if it lies inside the triangle but not on an edge/vertex. |
Properties
Name | Type | Description | |
---|---|---|---|
area Accessor ReadOnly | number | Return the area of the triangle. | |
aspectRatio Accessor ReadOnly | number | Return area divided by sum of squared lengths. | |
edgeLength2 Protected | number[] | Edge length squared cache, indexed by opposite vertex index | |
perimeter Accessor ReadOnly | number | Return the perimeter of the triangle | |
points | Point3d[] | Array of 3 point coordinates for the triangle. |
Defined in
- geometry3d/BarycentricTriangle.ts Line 116
Last Updated: 30 November, 2023