haar-3d
v1.0.1
Published
Fills holes in meshes, interpolates point clouds, adaptively contours octrees, voxelization and much more
Downloads
14
Maintainers
Readme
haar-tree-3d
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
Install
npm i haar-tree-3d
Example
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)
Usage
Rasterization
var tree = require('haar-tree-3d/rasterize-cells)(cells, positions[, options])
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
Sampling
var value = require('haar-tree-3d/sample')(tree, x, y, z)
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
var array = require('haar-tree-3d/to-ndarray')(tree[, options])
Converts the Haar tree into an ndarray. Note that this representation is not very efficient.
tree
is the Haar tree
Contouring
var mesh = require('haar-tree-3d/contour')(tree)
Extracts a contour from a mesh field
tree
is a Haar tree
Credits
Development supported by Standard Cyborg.
(c) 2017- Mikola Lysenko