Voxelize meshes to volumes. Save meshes from volumes.
This package provides to functions volume2mesh
and mesh2volume
to convert between NumPy volume arrays and
meshes:
file = '/tmp/my_mesh_file.obj'
volume = np.zeros((100, 120, 131), np.float32)
volume[20:40, 30:40, 40:50] = 1
volume2mesh(file,
volume,
threshold=0.5,
adaptivity=0.,
spacing=[1., 1., 1.],
origin=[0., 0., 0.],
binary_file=True,
only_write_biggest_components=False,
max_component_count=1)
And to voxelize meshes:
bunny_file = '~/my_bunnyfile.stl'
volume = volume2mesh.mesh2volume(bunny_file, scaling=1.)
You need to have OpenMesh linkable via -lOpenMeshCore
and OpenVDB
installed.
On on Ubuntu, you can do this by these commands (see our Travis Script):
# Install OpenVDB
sudo apt-get install -y libopenvdb-dev build-essential libboost-all-dev libtbb-dev
# Install OpenMesh
git clone https://www.graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh.git || echo "hi"
cd OpenMesh
git pull
mkdir -p release
cd release && cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build . -- -j4
sudo make install
# Install this package
pip3 install volume2mesh --user
# Or if you cloned this repo
pip3 install -e . --user