VolumeInterface Class Reference

#include <volume.h>

Inheritance diagram for VolumeInterface:

Detailed Description

VolumeInterface represents a core volume object in cinema.

Public Member Functions

MAXON_METHOD Result< void > LoadFromFile (const Url &url, Float scale, Int gridIndex)
 
MAXON_METHOD Result< void > WriteToFile (const Url &url, Float scale, const DataDictionary &metaData=DataDictionary()) const
 
MAXON_METHOD Bool HasGrid () const
 
MAXON_METHOD GRIDTYPE GetGridType () const
 
MAXON_METHOD GRIDCLASS GetGridClass () const
 
MAXON_METHOD void SetGridClass (GRIDCLASS gridClass)
 
MAXON_METHOD void SetGridTransform (Matrix newTransform)
 
MAXON_METHOD Matrix GetGridTransform () const
 
MAXON_METHOD Vector GetGridSize () const
 
MAXON_METHOD void SetGridName (String name) const
 
MAXON_METHOD String GetGridName () const
 
MAXON_METHOD const Range< Vector > & GetWorldBoundingBox () const
 
MAXON_METHOD IntVector32 GetActiveVoxelDim () const
 
MAXON_METHOD Int GetActiveVoxelCount () const
 
MAXON_METHOD Data GetBackground () const
 
MAXON_METHOD Int GetMemUsage () const
 
MAXON_METHOD Range< FloatGetMinMaxValues (Bool includeBackground=false) const
 
MAXON_METHOD Result< void > SetVecType (VECTORGRIDTYPE gridType)
 
MAXON_METHOD VECTORGRIDTYPE GetVecType () const
 
MAXON_METHOD Result< void > MergeVolume (Volume &otherVolume, Bool keepOldVolume=false)
 
MAXON_METHOD Result< void > SetMinMaxValues (Range< Float > minMaxRange)
 

Static Public Member Functions

static MAXON_METHOD Result< Volume > CreateFromFile (const Url &url, Float scale, Int gridIndex)
 

Private Member Functions

 MAXON_INTERFACE (VolumeInterface, MAXON_REFERENCE_COPY_ON_WRITE, "net.maxon.volume.interface.volume")
 

Private Attributes

 MAXON_INTERFACE_SINGLE_IMPLEMENTATION
 

Member Function Documentation

◆ MAXON_INTERFACE()

MAXON_INTERFACE ( VolumeInterface  ,
MAXON_REFERENCE_COPY_ON_WRITE  ,
"net.maxon.volume.interface.volume"   
)
private

◆ CreateFromFile()

static MAXON_METHOD Result<Volume> CreateFromFile ( const Url url,
Float  scale,
Int  gridIndex 
)
static

Creates a new volume from a .vdb file.

Parameters
[in]urlThe url of the file.
[in]scaleThe scale to load the volume with.
[in]gridIndexThe index of the grid in the file.
Returns
The newly created Volume.

◆ LoadFromFile()

MAXON_METHOD Result<void> LoadFromFile ( const Url url,
Float  scale,
Int  gridIndex 
)

Loads a grid from .vdb file into this volume object.

Parameters
[in]urlThe url of the file.
[in]scaleThe scale to load the volume with.
[in]gridIndexThe index of the grid in the file.
Returns
OK on success.

◆ WriteToFile()

MAXON_METHOD Result<void> WriteToFile ( const Url url,
Float  scale,
const DataDictionary &  metaData = DataDictionary() 
) const

Writes the attached grid to a .vdb file.

Parameters
[in]urlThe url of the file.
[in]scaleThe scale to write the volume with.
[in]metaDataOptional meta data to write to the file. These need to be stored with a string key in the data dictionary.
Returns
OK on success.

◆ HasGrid()

MAXON_METHOD Bool HasGrid ( ) const

Retrieve if a grid is attached to this volume.

Returns
True if this volume holds a grid.

◆ GetGridType()

MAXON_METHOD GRIDTYPE GetGridType ( ) const

Retrieve the datatype of this grid.

Returns
The GRIDTYPE of this volume.

◆ GetGridClass()

MAXON_METHOD GRIDCLASS GetGridClass ( ) const

Retrieve the grid class of this grid.

Returns
The GRIDCLASS of this volume.

◆ SetGridClass()

MAXON_METHOD void SetGridClass ( GRIDCLASS  gridClass)

Set the grid class for this grid.

Parameters
[in]gridClassThe GRIDCLASS to set for this volume.

◆ SetGridTransform()

MAXON_METHOD void SetGridTransform ( Matrix  newTransform)

Set the grid transform for this grid.

Parameters
[in]newTransformThe transformation matrix to set for this volume.

◆ GetGridTransform()

MAXON_METHOD Matrix GetGridTransform ( ) const

Retrieve the grid transform for this grid.

Returns
The transformation matrix of this volume.

◆ GetGridSize()

MAXON_METHOD Vector GetGridSize ( ) const

Retrieve the grid size for this grid.

Returns
The size vector of this volume.

◆ SetGridName()

MAXON_METHOD void SetGridName ( String  name) const

Set the grid name for this grid.

Parameters
[in]nameThe name to set for this volume.

◆ GetGridName()

MAXON_METHOD String GetGridName ( ) const

Retrieve the grid name for this grid.

Returns
The name of this volume.

◆ GetWorldBoundingBox()

MAXON_METHOD const Range<Vector>& GetWorldBoundingBox ( ) const

Retrieve the bounding box of all active voxels of this grid.

Returns
The bounding box of the active voxels of this volume.

◆ GetActiveVoxelDim()

MAXON_METHOD IntVector32 GetActiveVoxelDim ( ) const

Retrieve the active voxel dimensions.

Returns
The active voxel dimensions of this volume.

◆ GetActiveVoxelCount()

MAXON_METHOD Int GetActiveVoxelCount ( ) const

Retrieve the active voxel count.

Returns
The amount of active voxels in this volume.

◆ GetBackground()

MAXON_METHOD Data GetBackground ( ) const

Retrieve the background value of the grid.

Returns
The background value of the grid.

◆ GetMemUsage()

MAXON_METHOD Int GetMemUsage ( ) const

Returns the amount of memory in bytes used by this volume.

Returns
The memory usage in bytes.

◆ GetMinMaxValues()

MAXON_METHOD Range<Float> GetMinMaxValues ( Bool  includeBackground = false) const

Returns the Min and Max values of the volume. If it is the first time being called the resulting values are being cached. Only works for numerical gridtypes. If the volume is a vector volume, the magnitude of the vectors will be used.

Parameters
[in]includeBackgroundIf true the volume background will be part of the Range, otherwise not.
Returns
The Minimum and Maximum Value of this volume.

◆ SetVecType()

MAXON_METHOD Result<void> SetVecType ( VECTORGRIDTYPE  gridType)

Set the Vector grid type to indicate how transformations should be applied.

Parameters
[in]gridTypeThe grid type to set.
Returns
OK on success.

◆ GetVecType()

MAXON_METHOD VECTORGRIDTYPE GetVecType ( ) const

Get the Vector grid type to indicate how transformations should be applied.

Returns
The set vec grid type.

◆ MergeVolume()

MAXON_METHOD Result<void> MergeVolume ( Volume &  otherVolume,
Bool  keepOldVolume = false 
)

Merges two volumes of same Type and Class.

Parameters
[in]otherVolumeThe volume to merge into the current one.
[in]keepOldVolumeIf false the otherVolume will be flushed/emptied.

◆ SetMinMaxValues()

MAXON_METHOD Result<void> SetMinMaxValues ( Range< Float minMaxRange)

Sets the Min and Max values of the volume. This will be returned when GetMinMaxValues is called instead of the underlying data. Only works for numerical gridtypes. If the volume is a vector volume, the magnitude of the vectors will be used. Be careful as settings this carelessly can break some stuff.

Parameters
[in]minMaxRangeThe range including the minimum and maximum value.

Member Data Documentation

◆ MAXON_INTERFACE_SINGLE_IMPLEMENTATION

MAXON_INTERFACE_SINGLE_IMPLEMENTATION
private