Crates.io | libfive |
lib.rs | libfive |
version | 0.3.1 |
source | src |
created_at | 2021-06-02 15:18:28.492332 |
updated_at | 2024-02-24 01:15:47.776052 |
description | Tools for solid modeling, especially suited for parametric and procedural design. |
homepage | https://libfive.com/ |
repository | https://github.com/virtualritz/libfive-rs/ |
max_upload_size | |
id | 405332 |
size | 959,227 |
libfive
A Rust wrapper for libfive.
use libfive::*;
let f_rep_shape = Tree::sphere(1.0.into(), TreeVec3::default())
.difference_multi(vec![
Tree::sphere(0.6.into(), TreeVec3::default()),
Tree::cylinder_z(
0.6.into(),
2.0.into(),
TreeVec3::new(0.0, 0.0, -1.0),
),
Tree::cylinder_z(
0.6.into(),
2.0.into(),
TreeVec3::new(0.0, 0.0, -1.0),
)
.reflect_xz(),
Tree::cylinder_z(
0.6.into(),
2.0.into(),
TreeVec3::new(0.0, 0.0, -1.0),
)
.reflect_yz(),
]);
f_rep_shape.to_stl(
"f_rep_shape.stl",
&Region3::new(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0),
// Resolution
100.0,
)?;
This results in this STL mesh:
Build docs locally:
cargo doc -p libfive --no-deps --all-features --open
ahash
– On by default. Use AHashMap
for hashing when resolving variable names. Disabling this will fall back
to the slower HashMap
.
stdlib
– On by default. Add an extensive list of higher level operations
– the libfive stdlib.
To disable either/both of the above features unset default features in
Cargo.toml
:
[dependencies.libfive]
default-features = false
packed_opcodes
- Tightly pack opcodes. This breaks compatibility with
older saved f-rep files.
With homebrew
installed, run:
brew install cmake pkg-config eigen libpng boost
libfive
should build out of the box on the latest Ubuntu LTS (currently
20.04). If you find that's not the case, please open an issue in the upstream
repository!
Install the following dependencies with apt
:
sudo apt-get install cmake pkg-config libeigen3-dev libpng-dev libboost-all-dev
Install the following dependencies:
sudo pacman -S cmake pkgconf eigen libpng boost boost-libs
Install Git, choosing settings so that it can be invoked from a Windows Command Prompt (the defaults should be fine).
Install VS2019 (Community Edition),
configured for Desktop development with C++
.
You only need MSVC, Windows 10 SDK, and C++ CMake tools for Windows. Feel free to uncheck other optional packages in the right sidebar. Then run the installation!
Next, install dependencies using vcpkg
.
:warning: This step touches many files, so you may want to disable the Antimalware Service Executable, which will otherwise scan every single file and slow things down dramatically: in
Windows Security
→Virus & threat protection settings
, uncheckReal-time protection
.
In a Windows Command Prompt:
git clone https://github.com/Microsoft/vcpkg.git
.\vcpkg\bootstrap-vcpkg.bat
.\vcpkg\vcpkg.exe install --triplet x64-windows eigen3 boost-container boost-bimap boost-interval boost-lockfree boost-functional boost-algorithm boost-math libpng
Go get some coffee or something – this will take a while.
Just the usual.
cargo build