0.16.0 • Published 10 months ago
poly-extrude v0.16.0
poly-extrude
Extrude polygons/polylines. Born in maptalks.three project
Examples
Install
NPM
npm i poly-extrude
CDN
<script type="text/javascript" src="https://unpkg.com/poly-extrude/dist/poly-extrude.js"></script>
Use
import {
extrudePolygons,
extrudePolylines,
cylinder,
expandPaths,
extrudeSlopes,
expandTubes,
plane
} from 'poly-extrude';
//if you use cdn,the namespace is polyextrude
// const {
// extrudePolygons,
// extrudePolylines
// } = window.polyextrude;
const polygons = [
//polygon
[
//outring
[
[x, y],
[x, y],
...........
],
//holes
[
[x, y],
[x, y], ...........
],
........
],
//other polygons
......
];
const polylines = [
// polyline
[
[x, y],
[x, y],
...........
],
//polyline
[
[x, y],
[x, y],
...........
],
];
const result = extrudePolygons(polygons, {
depth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
API
extrudePolygons(polygons, options)
polygons
options.depth
options.top
Whether to display the top
const result = extrudePolygons(polygons, {
depth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
extrudePolylines(lines, options)
lines
options.depth
options.lineWidth
options.bottomStickGround
Is the bottom attached to the groundoptions.pathUV
generate Path UV
const result = extrudePolylines(polylines, {
depth: 2,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
cylinder(center, options)
center
options.radius
options.height
options.radialSegments
const center = [0, 0];
const result = cylinder(center, {
radius: 1,
height: 2,
radialSegments: 6
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
expandPaths(lines, options)
lines
options.lineWidth
const result = expandPaths(polylines, {
cornerRadius: 0.5,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
extrudeSlopes(lines, options)
lines
options.depth
options.lineWidth
options.side
Which side serves as the slope, 'left' or 'right'options.sideDepth
slope depthoptions.bottomStickGround
Is the bottom attached to the groundoptions.pathUV
generate Path UV
const result = extrudeSlopes(polylines, {
depth: 1,
side: 'left',
sideDepth: 0,
lineWidth: 2
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
expandTubes(lines, options)
lines
options.radius
options.radialSegments
const result = expandTubes(polylines, {
radius: 1,
radialSegments: 8
});
const {
positon,
normal,
uv,
indices
} = result;
//do something
plane(width, height,devideW,devideH)
width
height
devideW
devideH
const result = plane(100, 100, 10, 10);
const {
positon,
normal,
uv,
indices
} = result;
//do something
0.11.0
10 months ago
0.12.0
10 months ago
0.13.0
10 months ago
0.14.0
10 months ago
0.15.0
10 months ago
0.16.0
10 months ago
0.10.0
10 months ago
0.9.0
10 months ago
0.8.0
10 months ago
0.5.0
11 months ago
0.4.0
11 months ago
0.7.0
11 months ago
0.6.0
11 months ago
0.3.0
2 years ago
0.1.0
3 years ago
0.2.0
3 years ago
0.0.9
3 years ago
0.0.8
3 years ago
0.0.7
3 years ago
0.0.6
3 years ago
0.0.5
3 years ago
0.0.4
3 years ago
0.0.3
3 years ago
0.0.2
3 years ago
0.0.1
3 years ago