UNPKG

@allmaps/triangulate

Version:

Allmaps Triangulation Library

41 lines (40 loc) 1.83 kB
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;