![]() |
Radium Engine
1.6.3
|
#include <Core/Geometry/Volume.hpp>
Inheritance diagram for Ra::Core::Geometry::AbstractDiscreteVolume:
Collaboration diagram for Ra::Core::Geometry::AbstractDiscreteVolume:Public Types | |
| using | ValueType = AbstractVolume::ValueType |
| using | IndexType = Vector3i |
Public Types inherited from Ra::Core::Geometry::AbstractVolume | |
| enum | VolumeStorageType { UNKNOWN = 1 << 0 , PARAMETRIC = 1 << 1 , DISCRETE_DENSE = 1 << 2 , DISCRETE_SPARSE = 1 << 3 } |
| The type of geometry. More... | |
| using | ValueType = Scalar |
| Type of value encoded in the volume. | |
Public Member Functions | |
| AbstractDiscreteVolume (const AbstractDiscreteVolume &data)=default | |
| AbstractDiscreteVolume & | operator= (const AbstractDiscreteVolume &)=default |
| void | clear () override |
| Erases all data, making the geometry empty. | |
| Aabb | computeAabb () const override |
| Compute the aabb of the volume. | |
| const Vector3i & | size () const |
| return the size (number of bins ni each dimension) of the volume | |
| void | setSize (Eigen::Ref< const Vector3i > size) |
| const Vector3 & | binSize () const |
| return the bin size | |
| void | setBinSize (Eigen::Ref< const Vector3 > binSize) |
| Set the bin size. | |
| Utils::optional< ValueType > | getBinValue (Eigen::Ref< const IndexType > p) const |
| Get the value of the given bin. | |
| Utils::optional< ValueType > | getValue (Eigen::Ref< const Vector3 > p) const override final |
| bool | addToBin (const ValueType &value, Eigen::Ref< const IndexType > p) |
Public Member Functions inherited from Ra::Core::Geometry::AbstractVolume | |
| AbstractVolume (const AbstractVolume &data)=default | |
| AbstractVolume & | operator= (const AbstractVolume &)=default |
| VolumeStorageType | getType () const |
| Return the type of geometry. | |
| void | displayInfo () const |
| Print info to the Debug output. Need to be extended by child classes. | |
| bool | isParametric () const |
| bool | isDiscrete () const |
| Return true if the volume is discrete. Can be cast as AbstractDiscreteVolume. | |
| bool | isDense () const |
| Return true if the volume is dense (implies isDiscrete to be true) | |
| bool | isSparse () const |
| Return true if the volume is sparse (implies isDiscrete to be true) | |
Public Member Functions inherited from Ra::Core::Geometry::AbstractGeometry | |
| AbstractGeometry (const AbstractGeometry &other) | |
| AbstractGeometry & | operator= (const AbstractGeometry &other) |
| Ra::Core::Utils::ObservableVoid & | getAabbObservable () |
Protected Member Functions | |
| AbstractDiscreteVolume (const VolumeStorageType &type) | |
| Utils::optional< typename IndexType::Scalar > | linearIndex (Eigen::Ref< const IndexType > p) const |
| Convert the 3D position into a linear index on the bin set. | |
| virtual Utils::optional< ValueType > | getBinValue (typename IndexType::Scalar idx) const =0 |
| Get the bin value. | |
| virtual void | addToBin (const ValueType &value, typename IndexType::Scalar idx)=0 |
| Add a value to the bin. | |
| virtual void | updateStorage ()=0 |
| Method called when size as been updated. | |
Protected Member Functions inherited from Ra::Core::Geometry::AbstractVolume | |
| AbstractVolume (const VolumeStorageType &type) | |
| void | setType (const VolumeStorageType &type) |
| Set the type of geometry. | |
Protected Member Functions inherited from Ra::Core::Geometry::AbstractGeometry | |
| bool | isAabbValid () const |
| Core::Aabb | getAabb () const |
| void | invalidateAabb () const |
| void | setAabb (const Core::Aabb &aabb) const |
Additional Inherited Members | |
Protected Attributes inherited from Ra::Core::Geometry::AbstractVolume | |
| VolumeStorageType | m_type |
| The type of geometry for the object. | |
General interface for discrete volume that store the information into a set of bins indexed in 3D.
Definition at line 97 of file Volume.hpp.
| using Ra::Core::Geometry::AbstractDiscreteVolume::IndexType = Vector3i |
Definition at line 102 of file Volume.hpp.
| using Ra::Core::Geometry::AbstractDiscreteVolume::ValueType = AbstractVolume::ValueType |
Definition at line 101 of file Volume.hpp.
|
inlineprotected |
Definition at line 105 of file Volume.hpp.
|
inline |
Increment bin p by value.
Definition at line 155 of file Volume.hpp.
|
protectedpure virtual |
Add a value to the bin.
Implemented in Ra::Core::Geometry::VolumeGrid, and Ra::Core::Geometry::VolumeSparse.
|
inline |
return the bin size
Definition at line 128 of file Volume.hpp.
|
overridevirtual |
Erases all data, making the geometry empty.
Implements Ra::Core::Geometry::AbstractGeometry.
Definition at line 51 of file Volume.cpp.
|
overridevirtual |
Compute the aabb of the volume.
Implements Ra::Core::Geometry::AbstractGeometry.
Definition at line 57 of file Volume.cpp.
|
inline |
Get the value of the given bin.
Definition at line 138 of file Volume.hpp.
|
protectedpure virtual |
Get the bin value.
Implemented in Ra::Core::Geometry::VolumeGrid, and Ra::Core::Geometry::VolumeSparse.
|
inlinefinaloverridevirtual |
Get the function value at a given position p (discrete implementation).
Implements Ra::Core::Geometry::AbstractVolume.
Definition at line 147 of file Volume.hpp.
|
inlineprotected |
Convert the 3D position into a linear index on the bin set.
Definition at line 167 of file Volume.hpp.
|
inline |
Set the bin size.
Definition at line 131 of file Volume.hpp.
|
inline |
Definition at line 122 of file Volume.hpp.
|
inline |
return the size (number of bins ni each dimension) of the volume
Definition at line 120 of file Volume.hpp.
|
protectedpure virtual |
Method called when size as been updated.
Implemented in Ra::Core::Geometry::VolumeGrid, and Ra::Core::Geometry::VolumeSparse.