knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
The goal of rbff is to provide an R wrapper around the awesome boundary-first-flattening software, which allows you to flatten and / or map a 3d object to a 2d shape (or a sphere).
Before installing rbff
you will need to make sure you have two system dependencies installed:
In Linux, installing them should be straightforward with your distributions package manager. In Debian or Ubuntu for example you can simple use:
sudo apt install libopenblas-dev sudo apt install libsuitesparse-dev
For Mac OS you can use Homebrew like this:
brew install openblas brew install suite-sparse
You can use the Rtools package manager to install rbff
's dependencies. First make sure Rtools 4.0 is installed. You can find installation instructions here: https://cran.r-project.org/bin/windows/Rtools/
Once Rtools 4.0 is on your system, use the start menu to find and open 'Rtools Bash'. This will open a msys2 window. Type in this window the following:
pacman -Sy pacman -S mingw-w64-{x86_64,i686}-suitesparse
Once system dependencies are successfully installed, you can install the development version from GitHub with:
# install.packages("devtools") devtools::install_github("rdinnager/rbff")
Note that currently I have only tested rbff
on Windows and Linux. Currently, Mac OS fails to even build rbff
on github actions with a mysterious compilation failure. If you manage to install rbff
on Mac, please let me know. If you have any installation trouble, please post an issue to this repo.
You can flatten a mesh with the bff_flatten()
function. Using default arguments it tries to find a 2d shape to flatten a 3d mesh into that minimizes angle and area distortion.
library(rbff) face_flat <- bff_flatten(face)
Visualise the area distortion in this flattening:
bff_vis_metrics(flat_face, metric = "area distortion")
This package is still in the (very) early days of development.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.