Defines the volume data to be used with a MarchingCube object.
More...
#include <MarchingCubes.hpp>
List of all members.
Classes |
| struct | Cube |
| | A Volume cell.
|
Public Member Functions |
| | Volume () |
| virtual const char * | className () |
| | Returns the name of the class.
|
| void | setup (float *data, const vl::fvec3 &bottom_left, const vl::fvec3 &top_right, const vl::ivec3 &slices) |
| void | setup (const Volume &) |
| vl::ref< Volume > | downsample () const |
| | Returns a new volume which is half of the size of the original volume in each direction (thus requires up to 1/8th of the memory).
|
| const float * | values () const |
| float * | values () |
| const float & | value (int i) const |
| float & | value (int i) |
| const float & | value (int x, int y, int z) const |
| float & | value (int x, int y, int z) |
| void | normalHQ (vl::fvec3 &normal, const vl::fvec3 &v, float dx, float dy, float dz) |
| | Computes a high quality normal (best rendering quality)
|
| void | normalLQ (vl::fvec3 &normal, const vl::fvec3 &v, float dx, float dy, float dz) |
| | Computes a low quality normal (best performances)
|
| float | sampleSmooth (float x, float y, float z) const |
| | Samples the volume using tri-linear interpolation sampling.
|
| float | sampleNearest (float x, float y, float z) const |
| | Samples the volume using nearest point sampling.
|
| vl::fvec3 | coordinate (int x, int y, int z) const |
| const vl::fvec3 & | bottomLeft () const |
| const vl::fvec3 & | topRight () const |
| const vl::ivec3 & | slices () const |
| vl::fvec3 | size () const |
| float | computeMinimum () const |
| float | computeMaximum () const |
| float | computeAverage () const |
| float | minimum () const |
| float | maximum () const |
| float | average () const |
| const Volume::Cube & | cube (int x, int y, int z) const |
| const vl::fvec3 & | cellSize () const |
| | Returns the x/y/z size of a cell.
|
| bool | dataIsDirty () const |
| | Returns true if the internal data hasn't been updated since the last call to setDataDirty() or setup()
|
| void | setDataDirty () |
| | Notifies that the data of a Volume has changed and that the internal acceleration structures should be recomputed.
|
| void | setupInternalData () |
Protected Attributes |
| std::vector< float > | mValues |
| vl::fvec3 | mBottomLeft |
| vl::fvec3 | mTopRight |
| vl::fvec3 | mSize |
| vl::ivec3 | mSlices |
| vl::fvec3 | mCellSize |
| float | mMinimum |
| float | mMaximum |
| float | mAverage |
| bool | mDataIsDirty |
| std::vector< Cube > | mCubes |
Detailed Description
Defines the volume data to be used with a MarchingCube object.
Constructor & Destructor Documentation
Member Function Documentation
| virtual const char* vlVolume::Volume::className |
( |
) |
[inline, virtual] |
Returns the name of the class.
Reimplemented from vl::Object.
| void Volume::setup |
( |
const Volume & |
volume ) |
|
Returns a new volume which is half of the size of the original volume in each direction (thus requires up to 1/8th of the memory).
Use this function when the volume data to be processed is too big or produces too many polygons.
| const float* vlVolume::Volume::values |
( |
) |
const [inline] |
| float* vlVolume::Volume::values |
( |
) |
[inline] |
| const float& vlVolume::Volume::value |
( |
int |
i ) |
const [inline] |
| float& vlVolume::Volume::value |
( |
int |
i ) |
[inline] |
| const float& vlVolume::Volume::value |
( |
int |
x, |
|
|
int |
y, |
|
|
int |
z |
|
) |
| const [inline] |
| float& vlVolume::Volume::value |
( |
int |
x, |
|
|
int |
y, |
|
|
int |
z |
|
) |
| [inline] |
| void Volume::normalHQ |
( |
vl::fvec3 & |
normal, |
|
|
const vl::fvec3 & |
v, |
|
|
float |
dx, |
|
|
float |
dy, |
|
|
float |
dz |
|
) |
| |
Computes a high quality normal (best rendering quality)
| void Volume::normalLQ |
( |
vl::fvec3 & |
normal, |
|
|
const vl::fvec3 & |
v, |
|
|
float |
dx, |
|
|
float |
dy, |
|
|
float |
dz |
|
) |
| |
Computes a low quality normal (best performances)
| float Volume::sampleSmooth |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
| const |
Samples the volume using tri-linear interpolation sampling.
| float Volume::sampleNearest |
( |
float |
x, |
|
|
float |
y, |
|
|
float |
z |
|
) |
| const |
Samples the volume using nearest point sampling.
| vl::fvec3 vlVolume::Volume::coordinate |
( |
int |
x, |
|
|
int |
y, |
|
|
int |
z |
|
) |
| const [inline] |
| const vl::fvec3& vlVolume::Volume::bottomLeft |
( |
) |
const [inline] |
| const vl::fvec3& vlVolume::Volume::topRight |
( |
) |
const [inline] |
| const vl::ivec3& vlVolume::Volume::slices |
( |
) |
const [inline] |
| vl::fvec3 vlVolume::Volume::size |
( |
) |
const [inline] |
| float Volume::computeMinimum |
( |
) |
const |
| float Volume::computeMaximum |
( |
) |
const |
| float Volume::computeAverage |
( |
) |
const |
| float vlVolume::Volume::minimum |
( |
) |
const [inline] |
| float vlVolume::Volume::maximum |
( |
) |
const [inline] |
| float vlVolume::Volume::average |
( |
) |
const [inline] |
| const Volume::Cube& vlVolume::Volume::cube |
( |
int |
x, |
|
|
int |
y, |
|
|
int |
z |
|
) |
| const [inline] |
| const vl::fvec3& vlVolume::Volume::cellSize |
( |
) |
const [inline] |
Returns the x/y/z size of a cell.
| bool vlVolume::Volume::dataIsDirty |
( |
) |
const [inline] |
| void vlVolume::Volume::setDataDirty |
( |
) |
[inline] |
Notifies that the data of a Volume has changed and that the internal acceleration structures should be recomputed.
| void Volume::setupInternalData |
( |
) |
|
Member Data Documentation
The documentation for this class was generated from the following files: