VolumeObject Manual

About

A VolumeObject represents a volume (maxon::VolumeInterface) inside a Cinema 4D scene. Typically a VolumeObject is found in the cache of a generator like the VolumeBuilder. The VolumeObject class is defined in the lib_volumeobject.h header file.

A VolumeObject object is an instance of Ovolume.

// This example checks if the given object is a volume builder.
// If so, it accesses the cache to get the VolumeObject.
// check if VolumeBuilder
if (object->IsInstanceOf(Ovolumebuilder) == false)
return maxon::OK;
VolumeBuilder* const volumeBuilder = static_cast<VolumeBuilder*>(object);
// get cache
BaseObject* const cache = volumeBuilder->GetCache(nullptr);
if (cache == nullptr)
return maxon::IllegalStateError(MAXON_SOURCE_LOCATION);
// check for volume object
if (cache->IsInstanceOf(Ovolume))
{
const VolumeObject* const volumeObject = static_cast<VolumeObject*>(cache);
const maxon::Volume volume = volumeObject->GetVolume();
const maxon::String gridName = volume.GetGridName();
DiagnosticOutput("Grid Name: @", gridName);
}

VolumeObject

A VolumeObject can be created with these functions:

The volume represented by the object is accessed with:

Further Reading

VolumeObject
Definition: lib_volumeobject.h:40
BaseObject::GetCache
BaseObject * GetCache(HierarchyHelp *hh=nullptr)
Definition: c4d_baseobject.h:809
BaseObject
Definition: c4d_baseobject.h:224
maxon::String
Definition: string.h:1213
maxon::OK
return OK
Definition: apibase.h:2546
MAXON_SOURCE_LOCATION
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:66
DiagnosticOutput
#define DiagnosticOutput(formatString,...)
Definition: debugdiagnostics.h:167
VolumeBuilder
Definition: lib_volumebuilder.h:42
VolumeObject::GetVolume
const maxon::VolumeInterface * GetVolume() const
Ovolumebuilder
#define Ovolumebuilder
Volume Builder.
Definition: ge_prepass.h:1101
Ovolume
#define Ovolume
Volume Object.
Definition: ge_prepass.h:1099
C4DAtom::IsInstanceOf
Bool IsInstanceOf(Int32 id) const
Definition: c4d_baselist.h:1403