0.3.0 • Published 9 months ago
poly-extrude v0.3.0
poly-extrude
Extrude polygons/polylines. Born in maptalks.three project
Examples
building buildings multi-polygon street line-uv ny-building cylinder brige spring expand paths
Install
npm i poly-extrude
# or
yarn add poly-extrude
# or
pnpm i poly-extrude
API
ESM
import {
extrudePolygons,
extrudePolylines,
cylinder,
expandPaths
} from 'poly-extrude';
const polygons = [
//polygon
[
//outring
[
[x, y],
[x, y], ...........
],
//holes
[
[x, y],
[x, y], ...........
],
........
],
//other polygons
......
]
const result = extrudePolygons(polygons, {
depth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
const polylines = [
// polyline
[
[x, y],
[x, y], ...........
],
//polyline
[
[x, y],
[x, y], ...........
],
];
const result = extrudePolylines(polylines, {
depth: 2,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
const center = [0, 0];
const result = cylinder(center, {
radius: 1,
height: 2,
radialSegments: 6
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
const polylines = [
// polyline
[
[x, y],
[x, y], ...........
],
//polyline
[
[x, y],
[x, y], ...........
],
];
const result = expandPaths(polylines, {
cornerRadius: 0.5,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
CDN
<script src="https://unpkg.com/poly-extrude/dist/poly-extrude.js"></script>
<script>
const polygons = [
//polygon
[
//outring
[
[x, y],
[x, y], ...........
],
//holes
[
[x, y],
[x, y], ...........
],
........
],
//other polygons
......
]
const result = polyextrude.extrudePolygons(polygons, {
depth: 2
})
const {
positon,
normal,
uv,
indices
} = result;
//do something
const polylines = [
// polyline
[
[x, y],
[x, y], ...........
],
//polyline
[
[x, y],
[x, y], ...........
],
];
const result = polyextrude.extrudePolylines(polylines, {
depth: 2,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
const center = [0, 0];
const result = polyextrude.cylinder(center, {
radius: 1,
height: 2,
radialSegments: 6
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
const polylines = [
// polyline
[
[x, y],
[x, y], ...........
],
//polyline
[
[x, y],
[x, y], ...........
],
];
const result = polyextrude.expandPaths(polylines, {
cornerRadius: 0.5,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
</script>