meshing
meshing
Faces, edges, graph filters, quadrangulation, and mesh processing.
Imports
import {
urquhartFaces, gabrielFaces, relativeNeighborFaces, spannerFaces, dualFaces,
centroidQuadrangulation, edgeCollapseQuadrangulation, splitQuadrangulation,
spiralQuadrangulation, matchingQuadrangulation,
smoothMesh, subdivideMesh, simplifyMesh, stochasticMerge, areaMerge,
extractInnerEdges, extractInnerVertices, findContainingFace, splitEdges,
findBreaks, fixBreaks, fixBrokenFaces, findIslands,
radialSortFaces, centroidSortFaces, meshing,
} from 'pattapatta' Graph faces
| Function | Description |
|---|---|
urquhartFaces(points\|faces, preservePerimeter?) | Remove longest edge per triangle → polygonal faces |
gabrielFaces(points\|faces, preservePerimeter?) | Delaunay ∩ Gabriel faces |
relativeNeighborFaces(points\|faces, preservePerimeter?) | Delaunay ∩ RNG faces |
spannerFaces(points\|faces, k, preservePerimeter?) | Greedy sparse spanner faces (higher k → larger faces) |
dualFaces(faces) | Closed dual cells around interior vertices |
Urquhart faces
Gabriel faces
Triangulation dual
Relative neighbour faces
Spanner faces
Quadrangulation
| Function | Description |
|---|---|
centroidQuadrangulation(points\|faces, preservePerimeter?) | Quads from triangle centroids across shared edges |
edgeCollapseQuadrangulation(points\|faces, preservePerimeter?) | Pair adjacent triangles into quads |
splitQuadrangulation(points\|faces) | Catmull–Clark: 3 quads per triangle |
spiralQuadrangulation(points) | Spiral-patterned quads from a point set |
matchingQuadrangulation(points\|faces) | Quality-weighted triangle matching |
Centroid quadrangulation
Edge collapse quadrangulation
Split quadrangulation
Spiral quadrangulation
Matching quadrangulation
Process
| Function | Description |
|---|---|
smoothMesh(faces, iterations\|cutoff, preservePerimeter?) | Weighted Laplacian smoothing |
subdivideMesh(faces, edgeSplitRatio?) | Centroid subdivision (N subfaces per N-gon) |
simplifyMesh(faces, tolerance, preservePerimeter?) | Simplify face boundaries, keep topology |
stochasticMerge(faces, nClasses, seed?) | Random dissolve of adjacent same-class faces |
areaMerge(faces, minArea \| { remainingFaces }) | Merge tiny faces into neighbors |
splitEdges(faces, maxLen) | Densify long edges |
Mesh smoothing
Mesh subdivision
Mesh simplification
Stochastic merge
Area merge
Extract / repair
| Function | Description |
|---|---|
extractInnerEdges(faces) | Edges shared by ≥2 faces |
extractInnerVertices(faces) | Vertices not on the perimeter |
findContainingFace(faces, point) | First containing face |
findBreaks(faces) | Near-miss gap segments |
fixBreaks(faces, maxGapWidth) | Snap gaps / clean coverage |
fixBrokenFaces(coverage, tolerance, polygonise?) | Endpoint snap + polygonise |
findIslands(faces) | Disconnected face components |
radialSortFaces / centroidSortFaces | Order faces |