86namespace CellularSurface
91 Vector3f
period = Vector3f::diagonal( 1.f );
92 Vector3f
width = Vector3f::diagonal( 0.3f );
127 < std::reference_wrapper<TPMS::MeshParams>
128 , std::reference_wrapper<CellularSurface::Params>
132 < std::reference_wrapper<const TPMS::MeshParams>
133 , std::reference_wrapper<const CellularSurface::Params>
#define MRVOXELS_API
Definition MRVoxels/MRVoxelsFwd.h:13
std::function< bool(float)> ProgressCallback
Definition MRMesh/MRMeshFwd.h:729
auto width(const Box< V > &box)
returns size along x axis
Definition MRMesh/MRBox.h:341
MRVOXELS_API float estimateDensity(float period, float width, float r)
Estimate the density of the cellular surface.
MRVOXELS_API Expected< Mesh > fill(const Mesh &mesh, const Params ¶ms, const ProgressCallback &cb={})
Fill given mesh with a cellular surface.
MRVOXELS_API std::optional< float > estimateWidth(float period, float r, float targetDensity)
MRVOXELS_API Expected< Mesh > build(const Vector3f &size, const Params ¶ms, const ProgressCallback &cb={})
Build a cellular surface of size size.
MRVOXELS_API float estimateIso(Type type, float targetDensity)
MRVOXELS_API std::vector< std::string > getTypeTooltips()
Returns the tooltips for each type of filling.
MRVOXELS_API bool isThick(Type type)
Returns true if the type is thick.
MRVOXELS_API size_t getNumberOfVoxels(const Mesh &mesh, float frequency, float resolution)
Returns number of voxels that would be used to perform fillWithTPMS.
Type
Supported types of TPMS (Triply Periodic Minimal Surfaces)
Definition MRFillingSurface.h:20
MRVOXELS_API float getMinimalResolution(Type type, float iso)
Returns minimal reasonable resolution for given parameters.
MRVOXELS_API Expected< Mesh > build(const Vector3f &size, const MeshParams ¶ms, ProgressCallback cb={})
Constructs TPMS level-set and then convert it to mesh.
MRVOXELS_API Expected< Mesh > fill(const Mesh &mesh, const MeshParams ¶ms, ProgressCallback cb={})
Constructs TPMS-filling for the given mesh.
MRVOXELS_API FunctionVolume buildVolume(const Vector3f &size, const VolumeParams ¶ms)
MRVOXELS_API float estimateDensity(Type type, float targetIso)
MRVOXELS_API std::vector< std::string > getTypeNames()
Returns the names for each type of filling.
Definition MRFillingSurface.h:12
std::variant< std::reference_wrapper< const TPMS::MeshParams >, std::reference_wrapper< const CellularSurface::Params > > ConstMeshParamsRef
Definition MRFillingSurface.h:131
Kind
Definition MRFillingSurface.h:120
MRVOXELS_API std::vector< std::string > getKindNames()
std::variant< std::reference_wrapper< TPMS::MeshParams >, std::reference_wrapper< CellularSurface::Params > > MeshParamsRef
Definition MRFillingSurface.h:126
MR_BIND_IGNORE MRVOXELS_API Expected< Mesh > build(const Vector3f &size, ConstMeshParamsRef params, ProgressCallback cb={})
Unified functions to build and fill using the specified filling structures.
MR_BIND_IGNORE MRVOXELS_API Expected< Mesh > fill(const Mesh &mesh, ConstMeshParamsRef params, ProgressCallback cb={})
ImVec2 size(const ViewportRectangle &rect)
Definition MRViewport.h:29
tl::expected< T, E > Expected
Definition MRExpected.h:25
std::array< Vector3f, 3 > MR_BIND_IGNORE
Definition MRMeshBuilderTypes.h:10
Definition MRFillingSurface.h:90
float r
the radius of uniting spheres
Definition MRFillingSurface.h:93
Vector3f period
the distance between consecutive cylinders in each direction
Definition MRFillingSurface.h:91
Vector3f width
the width of cylinders in each direction
Definition MRFillingSurface.h:92
bool highRes
Definition MRFillingSurface.h:97
Definition MRFillingSurface.h:47
bool decimate
Definition MRFillingSurface.h:49
float iso
Definition MRFillingSurface.h:48
Definition MRFillingSurface.h:40
float resolution
Definition MRFillingSurface.h:43
Type type
Definition MRFillingSurface.h:41
float frequency
Definition MRFillingSurface.h:42
Definition MRMesh/MRMesh.h:23