@allmaps/triangulate
Version:
Allmaps Triangulation Library
41 lines (40 loc) • 1.83 kB
TypeScript
import type { Point, Polygon, Triangle, TypedLine, TypedPolygon, TypedTriangle } from '@allmaps/types';
export type TriangulationToUnique = {
interpolatedPolygon: Polygon;
interpolatedPolygonPoints: Point[];
gridPoints: Point[];
gridPointsInPolygon: Point[];
uniquePoints: Point[];
triangles: Triangle[];
uniquePointIndexTriangles: TypedTriangle<number>[];
uniquePointIndexInterpolatedPolygon: TypedPolygon<number>;
uniquePointIndexEdges: TypedLine<number>[];
};
export type TriangluationOptions = {
steinerPoints: Point[];
minimumTriangleAngle: number;
};
/**
* Triangulate a polygon to triangles smaller then a distance
*
* Grid points are placed inside the polygon to obtain small, well conditioned triangles.
*
* @param polygon - Polygon
* @param distance - Distance that conditions the triangles
* @param triangulationOptions - Triangulation Options.
* @returns Array of triangles partitioning the polygon
*/
export declare function triangulate(polygon: Polygon, distance?: number, triangulationOptions?: Partial<TriangluationOptions>): Triangle[];
/**
* Triangulate a polygon to triangles smaller then a distance, and return them via unique points.
*
* Grid points are placed inside the polygon to obtain small, well conditioned triangles.
*
* This function returns the triangulation as an array of unique points, and triangles of indices refering to those unique points.
*
* @param polygon - Polygon
* @param distance - Distance that conditions the triangles
* @param triangulationOptions - Triangulation Options.
* @returns Triangulation Object with uniquePointIndexTriangles and uniquePoints
*/
export declare function triangulateToUnique(polygon: Polygon, distance?: number, triangulationOptions?: Partial<TriangluationOptions>): TriangulationToUnique;