Volume Cartographer 2.27.0
ACVD.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <cstddef>
6
8
9namespace volcart::meshing
10{
31class ACVD
32{
33public:
35 enum class Mode { Isotropic, Anisotropic };
36
38 ACVD() = default;
39
41 void setInputMesh(ITKMesh::Pointer input);
42
44 void setMode(Mode m);
45
47 [[nodiscard]] auto mode() const -> Mode;
48
59 void setNumberOfClusters(std::size_t n);
60
62 [[nodiscard]] auto numberOfClusters() const -> std::size_t;
63
70 void setGradation(double g);
71
73 [[nodiscard]] auto gradation() const -> double;
74
82 void setSubsampleThreshold(std::size_t t);
83
85 [[nodiscard]] auto subsampleThreshold() const -> std::size_t;
86
94 void setQuadricsOptimizationLevel(std::size_t l);
95
97 [[nodiscard]] auto quadricsOptimizationLevel() const -> std::size_t;
98
100 auto compute() -> ITKMesh::Pointer;
101
103 [[nodiscard]] auto getOutputMesh() const -> ITKMesh::Pointer;
104
105private:
110
116 Mode mode_{Mode::Isotropic};
118 std::size_t clusters_{0};
120 double gradation_{0};
122 std::size_t subsampleThreshold_{10};
124 std::size_t quadricsOptLevel_{1};
125};
126} // namespace volcart::meshing
Mesh resampling using Approximated Centroidal Voronoi Diagrams.
Definition: ACVD.hpp:32
auto numberOfClusters() const -> std::size_t
The number of voronoi clusters to use for remeshing.
std::size_t clusters_
Definition: ACVD.hpp:118
auto compute() -> ITKMesh::Pointer
Compute the resampled mesh.
auto subsampleThreshold() const -> std::size_t
The subsampling threshold.
void setGradation(double g)
The gradation (curvature) constraint.
auto quadricsOptimizationLevel() const -> std::size_t
Quadrics optimization level.
ITKMesh::Pointer outputMesh_
Definition: ACVD.hpp:109
std::size_t subsampleThreshold_
Definition: ACVD.hpp:122
void setMode(Mode m)
Isotropy mode.
auto mode() const -> Mode
Isotropy mode.
Mode
Isotropy modes.
Definition: ACVD.hpp:35
std::size_t quadricsOptLevel_
Definition: ACVD.hpp:124
auto getOutputMesh() const -> ITKMesh::Pointer
Get the output mesh.
void setNumberOfClusters(std::size_t n)
The number of voronoi clusters to use for remeshing.
auto gradation() const -> double
The gradation (curvature) constraint.
ITKMesh::Pointer inputMesh_
Definition: ACVD.hpp:107
void setSubsampleThreshold(std::size_t t)
The subsampling threshold.
void setQuadricsOptimizationLevel(std::size_t l)
Quadrics optimization level.
void setInputMesh(ITKMesh::Pointer input)
Set the input mesh.
Mesh generation and modification library.
itk::Mesh< ITKPixel, 3, ITKMeshTraits > ITKMesh
Definition: ITKMesh.hpp:22