This module is an implementation of a sparse 3-dimensional Haar wavelet basis. You can use it to do the following:
- Voxelize boundary representations (polygons, meshes, etc.)
- Fill holes in meshes
- Smooth or clean up noisy data
The rasterization technique is based on the following paper:
J. Manson, S. Schaefer. (2011) "Wavelet Rasterization", Computer Graphics Forum
npm i haar-tree-3d
const bunny = require('bunny')
const rasterize = require('haar-tree-3d/rasterize-cells')
const contour = require('haar-tree-3d/contour')
// renders the bunny mesh into a wavelet basis
const tree = rasterize(bunny.cells, bunny.positions, {depth: 6})
// extracts an isosurface mesh contour
const isomesh = contour(tree)
Rasterizes a triangular mesh into a sparse wavelet representation
cells
cells are the faces of the meshpositions
positions are the locations of the vertices of the meshoptions
options.depth
depth is the depth of the octree
Returns A sparse wavelet tree encoding the meshes
Samples the Haar wavelet tree at a specific point (x, y, z)
in 3D space
tree
is the Haar treex,y,z
are the coordinates of the point
Converts the Haar tree into an ndarray. Note that this representation is not very efficient.
tree
is the Haar tree
Extracts a contour from a mesh field
tree
is a Haar tree
Development supported by Standard Cyborg.
(c) 2017- Mikola Lysenko