Geometry extrusion for Axis3D.
This modules provides a class that accepts an array of 2D positions and extrudes that shape into 3D. It attempts to compute a simplicial complex from given parameters. Edges, cells, and path can also be provided, otherwise they are computed. This class leverages clean-pslg to remove duplicate vertices and edges from a planar straight line graph using iterated snap rounding. If cells are not given, this class uses Constrained Delaunay triangulation by way of cdt2d to compute them.
new ExtrudeGeometry({ positions: positions })$ npm install axis3d axis3d-extrude-geometryconst { PerspectiveCamera } = require('axis3d/camera')
const { ExtrudeGeometry } = require('axis3d-extrude-geometry')
const { Material } = require('axis3d/material')
const { Context } = require('axis3d')
const { Frame } = require('axis3d/frame')
const { Mesh } = require('axis3d/mesh')
const geometry = new ExtrudeGeometry({positions: [0.5, 1.0, -0.5]})
const material = new Material(ctx)
const camera = new PerspectiveCamera(ctx)
const frame = new Frame(ctx)
const mesh = new Mesh(ctx, {geometry})
frame(() => {
camera({position: [0, 0, 10]}, () => {
material({wireframe: true}, () => {
mesh()
})
})
})Extends the built-in Geometry class in Axis3D.
new ExtrudeGeometry(opts)where opts contains
positions- An array of 2D vectors that form points in a polygonedges- An array of 2D vectors of indices ([i, j]) to compute complex cellscells- An array of 3D vectors of indices to the complex positionspath- An array of 3D ([x, y, z]) or 4D ([x, y, z, r]) vectors whereris the twist angle in radiansclosed- Indicates a closed path. (Default:true)
- https://github.com/mikolalysenko/clean-pslg
- https://github.com/substack/extrude-by-path
- https://github.com/hughsk/extrude-edges
- https://github.com/freeman-lab/extrude
- https://github.com/mikolalysenko/cdt2d
MIT