About
A maxon::VolumeInterface is used to store and handle volume data. It is typically obtained from a VolumeObject, see VolumeObject Manual.
VolumeInterface
Volume information can be stored in a file:
if (volumeObj == nullptr)
doc->InsertObject(volumeObj, nullptr, nullptr);
Definition: lib_volumeobject.h:41
void SetVolume(const maxon::VolumeInterface *volumeObj)
static VolumeObject * Alloc()
Definition: lib_volumeobject.h:53
static MAXON_METHOD Result< Volume > CreateFromFile(const Url &url, Float scale, Int gridIndex)
Int64 Int
signed 32/64 bit int, size depends on the platform
Definition: apibase.h:190
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:67
#define iferr_return
Definition: resultbase.h:1465
The grid settings are accessed with:
const maxon::Volume volume = volumeObject->GetVolume();
if (volume.HasGrid())
{
const GRIDCLASS gridClass = volume.GetGridClass();
}
Definition: string.h:1226
#define DiagnosticOutput(formatString,...)
Definition: debugdiagnostics.h:176
GRIDCLASS
Volume Classes.
Definition: ge_prepass.h:1728
Iterator
The data stored in a volume is accessed with the maxon::GridIteratorInterface iterator:
const maxon::Volume volume = volumeObject->GetVolume();
for (; iterator.IsNotAtEnd(); iterator.StepNext())
{
const Float32 value = iterator.GetValue();
pos = transform * pos;
}
Definition: volumeiterators.h:28
maxon::Float32 Float32
Definition: ge_sys_math.h:68
static auto Create(ARGS &&... args)
Definition: apibase.h:2730
A vector consisting of three components X, Y and Z.
Definition: vec.h:16
Accessor
The grid accessor can be used to both retrieve and set the volume data:
Volume data is accessed with:
if (volumeObj == nullptr)
doc->InsertObject(volumeObj, nullptr, nullptr);
volume.SetGridName("Example Grid"_s);
const
Vector scaleFactor { 10.0 };
const
Float scale = 100.0;
const
Float scaleY = 10.0;
while (offset < 50.0)
{
offset = offset + 0.01;
}
Definition: volumeaccessors.h:24
FOG
Definition: ge_prepass.h:2
maxon::Float64 Float64
Definition: ge_sys_math.h:67
maxon::Float Float
Definition: ge_sys_math.h:66
int32_t Int32
32 bit signed integer datatype.
Definition: apibase.h:178
MAXON_ATTRIBUTE_FORCE_INLINE void SinCos(Float32 val, Float32 &sn, Float32 &cs)
Calculates both sine and cosine of a value.
Definition: apibasemath.h:486
The maxon namespace contains all declarations of the MAXON API.
Definition: c4d_basedocument.h:16
VOLUMESAMPLER
Definition: volumeaccessors.h:16
Further Reading