#geometry #parametric #3d #procedural #graphics

libfive

用于实体建模的工具,特别适合参数化和程序化设计

3个不稳定版本

0.3.1 2024年2月24日
0.3.0 2024年2月16日
0.2.0 2024年2月11日
0.1.3 2021年6月7日

#93 in 数学

Download history 2/week @ 2024-03-10 42/week @ 2024-03-31

142 每月下载量

MPL-2.0 许可证

1.5MB
10K SLoC

C++ 8K SLoC // 0.2% comments Rust 1.5K SLoC // 0.0% comments Python 340 SLoC // 0.4% comments

libfive libfive 标志

libfive的Rust包装器。

示例

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,
)?;

这会产生这个STL网格

Generated f-rep. shape

文档

本地构建文档

cargo doc -p libfive --no-deps --all-features --open

特性

  • ahash – 默认开启。在解析变量名时使用 AHashMap 进行哈希。禁用此功能将回退到较慢的 HashMap

  • stdlib – 默认开启。添加一个高级操作的大量列表 – libfive stdlib

    要在 Cargo.toml 中禁用上述功能之一或两个,请取消设置默认功能

    [dependencies.libfive]
    default-features = false
    
  • packed_opcodes - 紧密打包操作码。这会破坏与旧版保存的f-rep文件的兼容性。

依赖项

macOS

如果已安装 homebrew,则运行

brew install cmake pkg-config eigen libpng boost

Ubuntu/Debian

libfive 应该可以在最新的Ubuntu LTS(目前为20.04)上直接构建。如果您发现不是这样,请在 上游仓库 中提交问题!

使用 apt 安装以下依赖项

sudo apt-get install cmake pkg-config libeigen3-dev libpng-dev libboost-all-dev

Arch Linux

安装以下依赖项

sudo pacman -S cmake pkgconf eigen libpng boost boost-libs

Windows (VS2019)

安装 Git,选择设置以便可以从Windows 命令提示符 中调用(默认值应该没问题)。

安装 VS2019(社区版),配置为 使用 C++ 开发桌面应用程序。

您只需要 MSVCWindows 10 SDKWindows 的 C++ CMake 工具。您可以在右侧边栏中取消勾选其他可选包。然后运行安装程序!

接下来,使用 vcpkg 安装依赖项。

⚠️ 此步骤会修改许多文件,因此您可能想禁用 Antimalware Service Executable,否则它将扫描每个文件并大大减慢速度:在 Windows 安全病毒和威胁防护设置 中,取消勾选 实时保护

在 Windows 的 命令提示符

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

去喝杯咖啡或做点别的事情——这需要一段时间。

构建

就是一般的流程。

cargo build

依赖项

~1.1–3.5MB
~69K SLoC