MeshLib C++ Docs
Loading...
Searching...
No Matches
MRFloatGrid.h
Go to the documentation of this file.
1#pragma once
2#include "MRVoxelsFwd.h"
3
4// this is a lightweight header unlike MRVDBFloatGrid.h
5
7
8namespace MR
9{
10
18
21{
22public:
24 MRVOXELS_API FloatGrid( std::shared_ptr<OpenVdbFloatGrid> ptr );
25
26 MRVOXELS_API void reset() noexcept;
27 MRVOXELS_API void swap( FloatGrid& other ) noexcept;
28 MRVOXELS_API static FloatGrid deepCopy( const FloatGrid& other ) noexcept;
29
30 MRVOXELS_API OpenVdbFloatGrid* get() const noexcept;
31 MRVOXELS_API OpenVdbFloatGrid& operator *() const noexcept;
32 MRVOXELS_API OpenVdbFloatGrid* operator ->() const noexcept;
33
34 MRVOXELS_API explicit operator bool() const noexcept;
35
36 MRVOXELS_API std::shared_ptr<OpenVdbFloatGrid> toVdb() const noexcept;
37
38private:
39 std::shared_ptr<OpenVdbFloatGrid> ptr_;
40};
41
43[[nodiscard]] MRVOXELS_API size_t heapBytes( const FloatGrid& grid );
44
46MRVOXELS_API FloatGrid resampled( const FloatGrid& grid, float voxelScale, ProgressCallback cb = {} );
47
49MRVOXELS_API FloatGrid resampled( const FloatGrid& grid, const Vector3f& voxelScale, ProgressCallback cb = {} );
50
52MRVOXELS_API FloatGrid cropped( const FloatGrid& grid, const Box3i& box, ProgressCallback cb = {} );
53
55[[nodiscard]] MRVOXELS_API size_t countVoxelsWithValuePred( const FloatGrid& grid, const std::function<bool( float )>& pred );
56
58[[nodiscard]] MRVOXELS_API size_t countVoxelsWithValueLess( const FloatGrid& grid, float value );
59
61[[nodiscard]] MRVOXELS_API size_t countVoxelsWithValueGreater( const FloatGrid& grid, float value );
62
64MRVOXELS_API void gaussianFilter( FloatGrid& grid, int width, int iters, ProgressCallback cb = {} );
65MRVOXELS_API FloatGrid gaussianFiltered( const FloatGrid& grid, int width, int iters, ProgressCallback cb = {} );
66
68[[nodiscard]] MRVOXELS_API float getValue( const FloatGrid & grid, const Vector3i & p );
69
72MRVOXELS_API void setValue( FloatGrid& grid, const Vector3i& p, float value );
73
76MRVOXELS_API void setValue( FloatGrid & grid, const VoxelBitSet& region, float value );
77
81[[nodiscard]] MRVOXELS_API Box3i findActiveBounds( const FloatGrid& grid );
82
85MRVOXELS_API void setValues( FloatGrid& grid, const VoxelBitSet& region, const std::vector<float>& values );
86
88MRVOXELS_API void setLevelSetType( FloatGrid & grid );
89
93
97
101
105
109
113
115
116}
constexpr A & operator*=(A &a, B b)
Definition MRImGuiVectorOperators.h:114
constexpr A operator-(A a)
Definition MRImGuiVectorOperators.h:98
constexpr A operator+(A a)
Definition MRImGuiVectorOperators.h:97
constexpr auto operator*(A a, B b)
Definition MRImGuiVectorOperators.h:107
constexpr A & operator-=(A &a, B b)
Definition MRImGuiVectorOperators.h:113
constexpr A & operator+=(A &a, B b)
Definition MRImGuiVectorOperators.h:112
#define MRVOXELS_API
Definition MRVoxelsFwd.h:14
#define MRVOXELS_CLASS
Definition MRVoxelsFwd.h:18
Definition MRFloatGrid.h:21
struct MRVOXELS_CLASS OpenVdbFloatGrid
Definition MRFloatGrid.h:17
Definition MRCameraOrientationPlugin.h:8