16template <
typename Volume>
29 : accessor_(
volume.data->getConstAccessor() )
30 , minCoord_(
fromVdb(
volume.data->evalActiveVoxelBoundingBox().min() ) )
36 if ( !accessor_.probeValue(
toVdb( pos + minCoord_ ), res ) )
46 const Vector3i&
minCoord()
const {
return minCoord_; }
49 Vector3f
shift()
const {
return Vector3f( minCoord_ ); }
52 openvdb::FloatGrid::ConstAccessor accessor_;
72 return data_[indexer_.toVoxelId( pos )];
81 Vector3f
shift()
const {
return Vector3f::diagonal( 0.5f ); }
124 Vector3f
shift()
const {
return Vector3f::diagonal( 0.5f ); }
std::vector<T>-like container that requires specific indexing type,
Definition MRVector.h:23
Definition MRVolumeIndexer.h:65
helper class for generalized voxel volume data access
Definition MRVoxelsVolumeAccess.h:17
MR_BIND_IGNORE Vector3i fromVdb(const openvdb::Coord &v)
Definition MRVDBFloatGrid.h:42
MR_BIND_IGNORE openvdb::Coord toVdb(const Vector3i &v)
Definition MRVDBFloatGrid.h:47
constexpr const V & get(const Box< V > &box) noexcept
get<0> returns min, get<1> returns max
Definition MRBox.h:400
ValueType get(const VoxelLocation &loc) const
Definition MRVoxelsVolumeAccess.h:41
Vector3f shift() const
this additional shift shall be added to integer voxel coordinates during transformation in 3D space
Definition MRVoxelsVolumeAccess.h:81
double volume(const MeshTopology &topology, const VertCoords &points, const FaceBitSet *region=nullptr)
VoxelsVolumeAccessor(const VolumeType &volume)
Definition MRVoxelsVolumeAccess.h:65
const Vector3i & minCoord() const
Definition MRVoxelsVolumeAccess.h:46
VdbVolume VolumeType
Definition MRVoxelsVolumeAccess.h:24
VoxelsVolumeAccessor(const VolumeType &volume)
Definition MRVoxelsVolumeAccess.h:109
Vector3f shift() const
this additional shift shall be added to integer voxel coordinates during transformation in 3D space
Definition MRVoxelsVolumeAccess.h:49
typename VolumeType::ValueType ValueType
Definition MRVoxelsVolumeAccess.h:25
ValueType get(const Vector3i &pos) const
Definition MRVoxelsVolumeAccess.h:113
VoxelsVolumeMinMax< Vector< T, VoxelId > > VolumeType
Definition MRVoxelsVolumeAccess.h:94
static constexpr bool cacheEffective
caching results of this accessor does not make any sense since it returns values from a simple contai...
Definition MRVoxelsVolumeAccess.h:63
ValueType get(const VoxelLocation &loc) const
Definition MRVoxelsVolumeAccess.h:118
ValueType get(const Vector3i &pos) const
Definition MRVoxelsVolumeAccess.h:33
VoxelsVolumeAccessor(const VolumeType &volume)
Definition MRVoxelsVolumeAccess.h:28
MRVOXELS_CLASS VoxelsVolume
Definition MRVoxelsFwd.h:45
typename VolumeType::ValueType ValueType
Definition MRVoxelsVolumeAccess.h:95
Vector3f shift() const
this additional shift shall be added to integer voxel coordinates during transformation in 3D space
Definition MRVoxelsVolumeAccess.h:124
typename VolumeType::ValueType ValueType
Definition MRVoxelsVolumeAccess.h:62
typename VolumeType::ValueType ValueType
Definition MRVoxelsVolumeAccess.h:106
static constexpr bool cacheEffective
caching results of this accessor can improve performance
Definition MRVoxelsVolumeAccess.h:26
constexpr float cQuietNan
Definition MRIsNaN.h:16
class MRMESH_CLASS Vector(Edges, Vector< TwoVertIds, UndirectedEdgeId >)(Triangulation
mapping from UndirectedEdgeId to its end vertices
ValueType get(const VoxelLocation &loc) const
Definition MRVoxelsVolumeAccess.h:75
std::function< T(const Vector3i &)> VoxelValueGetter
Definition MRVoxelsFwd.h:43
static constexpr bool cacheEffective
caching results of this accessor can improve performance
Definition MRVoxelsVolumeAccess.h:107
VoxelsVolume< Vector< T, VoxelId > > VolumeType
Definition MRVoxelsVolumeAccess.h:61
ValueType get(const Vector3i &pos) const
Definition MRVoxelsVolumeAccess.h:70
typename VoxelTraits< T >::ValueType ValueType
Definition MRVoxelsVolume.h:52
VoxelsVolume< VoxelValueGetter< T > > VolumeType
Definition MRVoxelsVolumeAccess.h:105
VoxelId id
Definition MRVolumeIndexer.h:57
Vector3i pos
Definition MRVolumeIndexer.h:58
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
contains both linear Id and 3D coordinates of the same voxel
Definition MRVolumeIndexer.h:56
Definition MRVoxelsVolume.h:65
represents a box in 3D space subdivided on voxels stored in T
Definition MRVoxelsVolume.h:51