From 9e5ba20f8f3aefb93037de4968799afa685c90ec Mon Sep 17 00:00:00 2001 From: tamasmeszaros Date: Mon, 4 Apr 2022 16:37:58 +0200 Subject: [PATCH] Use default bandwidth before csgUnion when hollowing Add cca 6.5% speedup (on 12 core amd) --- src/libslic3r/OpenVDBUtils.cpp | 8 +++----- src/libslic3r/OpenVDBUtils.hpp | 3 +-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/libslic3r/OpenVDBUtils.cpp b/src/libslic3r/OpenVDBUtils.cpp index 72c7668a45..188ff8fb9c 100644 --- a/src/libslic3r/OpenVDBUtils.cpp +++ b/src/libslic3r/OpenVDBUtils.cpp @@ -49,8 +49,7 @@ openvdb::FloatGrid::Ptr mesh_to_grid(const indexed_triangle_set & mesh, const openvdb::math::Transform &tr, float voxel_scale, float exteriorBandWidth, - float interiorBandWidth, - int flags) + float interiorBandWidth) { openvdb::initialize(); @@ -64,8 +63,7 @@ openvdb::FloatGrid::Ptr mesh_to_grid(const indexed_triangle_set & mesh, openvdb::FloatGrid::Ptr grid; for (auto &m : meshparts) { auto subgrid = openvdb::tools::meshToVolume( - TriangleMeshDataAdapter{m, voxel_scale}, tr, exteriorBandWidth, - interiorBandWidth, flags); + TriangleMeshDataAdapter{m, voxel_scale}, tr); if (grid && subgrid) openvdb::tools::csgUnion(*grid, *subgrid); else if (subgrid) grid = std::move(subgrid); @@ -78,7 +76,7 @@ openvdb::FloatGrid::Ptr mesh_to_grid(const indexed_triangle_set & mesh, // Splitting failed, fall back to hollow the original mesh grid = openvdb::tools::meshToVolume( TriangleMeshDataAdapter{mesh}, tr, exteriorBandWidth, - interiorBandWidth, flags); + interiorBandWidth); } grid->insertMeta("voxel_scale", openvdb::FloatMetadata(voxel_scale)); diff --git a/src/libslic3r/OpenVDBUtils.hpp b/src/libslic3r/OpenVDBUtils.hpp index 490b3e2228..1387af670e 100644 --- a/src/libslic3r/OpenVDBUtils.hpp +++ b/src/libslic3r/OpenVDBUtils.hpp @@ -30,8 +30,7 @@ openvdb::FloatGrid::Ptr mesh_to_grid(const indexed_triangle_set & mesh, const openvdb::math::Transform &tr = {}, float voxel_scale = 1.f, float exteriorBandWidth = 3.0f, - float interiorBandWidth = 3.0f, - int flags = 0); + float interiorBandWidth = 3.0f); indexed_triangle_set grid_to_mesh(const openvdb::FloatGrid &grid, double isovalue = 0.0,