Skip to content

littlstar/axis3d-extrude-geometry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

axis3d-extrude-geometry

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.

Usage

new ExtrudeGeometry({ positions: positions })

Installation

$ npm install axis3d axis3d-extrude-geometry

Example

const { 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()
    })
  })
})

API

ExtrudeGeometry(opts)

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 polygon
  • edges - An array of 2D vectors of indices ([i, j]) to compute complex cells
  • cells - An array of 3D vectors of indices to the complex positions
  • path - An array of 3D ([x, y, z]) or 4D ([x, y, z, r]) vectors where r is the twist angle in radians
  • closed - Indicates a closed path. (Default: true)

See Also

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published