Distributed data storage class for irregular volume subsets. More...
#include <iirregular_volume_subset.h>
Inherits mi::base::Interface_declare< 0xac50a241, ... >.
Classes | |
struct | Attribute_parameters |
Irregular volume attribute parameters. More... | |
struct | Attribute_storage |
Attribute storage. More... | |
struct | Cell |
Irregular volume cell definition. More... | |
struct | Face |
Irregular volume cell-face definition. More... | |
struct | Mesh_parameters |
Irregular volume mesh storage parameters. More... | |
struct | Mesh_storage |
Irregular volume mesh storage. More... | |
Public Types | |
enum | Attribute_affiliation { ATTRIB_AFFIL_PER_VERTEX = 0x00 , ATTRIB_AFFIL_PER_CELL = 0x01 } |
Types of attribute set affiliations. More... | |
enum | Attribute_type { ATTRIB_TYPE_UINT8 = 0x00 , ATTRIB_TYPE_UINT8_2 = 0x01 , ATTRIB_TYPE_UINT8_3 = 0x02 , ATTRIB_TYPE_UINT8_4 = 0x03 , ATTRIB_TYPE_UINT16 = 0x04 , ATTRIB_TYPE_UINT16_2 = 0x05 , ATTRIB_TYPE_UINT16_3 = 0x06 , ATTRIB_TYPE_UINT16_4 = 0x07 , ATTRIB_TYPE_FLOAT32 = 0x08 , ATTRIB_TYPE_FLOAT32_2 = 0x09 , ATTRIB_TYPE_FLOAT32_3 = 0x10 , ATTRIB_TYPE_FLOAT32_4 = 0x11 } |
Types of attribute set values. More... | |
Public Member Functions | |
virtual bool | generate_mesh_storage (const Mesh_parameters &mesh_params, Mesh_storage &mesh_storage)=0 |
Generate and initialize an instance of irregular volume mesh storage. More... | |
virtual bool | generate_attribute_storage (mi::Uint32 attrib_index, const Attribute_parameters &attrib_params, Attribute_storage &attrib_storage)=0 |
Generate and initialize an instance of irregular volume attribute set storage. More... | |
virtual Mesh_parameters | get_mesh_parameters () const =0 |
Get the irregular volume mesh parameters of the currently valid mesh storage. More... | |
virtual Mesh_storage | get_mesh () const =0 |
Get the current valid irregular volume mesh storage. More... | |
virtual mi::Uint32 | get_nb_attributes () const =0 |
Get the current number of valid attribute sets. More... | |
virtual bool | get_attribute_parameters (mi::Uint32 attrib_index, Attribute_parameters &attrib_params) const =0 |
Get the attribute parameters of a currently valid attribute set for a given index. More... | |
virtual bool | get_attribute (mi::Uint32 attrib_index, Attribute_storage &attrib_storage) const =0 |
Get the currently valid attribute set storage for a given attribute index. More... | |
virtual mi::Sint32 | get_gpu_device_id () const =0 |
GPU device id if the buffer is located on a GPU device. More... | |
virtual bool | get_active_attribute_device_storage (mi::Uint32 attrib_index, Attribute_storage &attrib_storage) const =0 |
Get the currently valid attribute set device-storage for a given attribute index. More... | |
virtual bool | get_backup_attribute_device_storage (mi::Uint32 attrib_index, Attribute_storage &attrib_storage) const =0 |
virtual bool | swap_active_attribute_storage ()=0 |
virtual bool | use_cache_file (const char *filename, mi::Uint32 mode, mi::Uint32 flags)=0 |
Caching interface (preliminary). More... | |
Distributed data storage class for irregular volume subsets.
An irregular volume dataset is defined as a set of cells (see the IIrregular_volume_subset::Cell
structure). The
cells are defined by a set of faces (see the IIrregular_volume_subset::Face
structure). The faces, finally, are defined by a set of vertex positions in three dimensional space. The cell, face and vertex information is handled in
three separate arrays (see IIrregular_volume_subset::Mesh_storage
). In order to support irregular volumes with heterogeneous cell and face definitions, which allows for cells with varying numbers of faces and faces with varying numbers of vertices, the association of faces to cells and vertices to faces is handled by shared cell-face and face-vertex arrays. This further allows for sharing faces of connected cells in the irregular volume mesh.
Attribute values can either be defined per vertex or per cell (see IIrregular_volume_subset::Attribute_affiliation).
Types of attribute set values.
|
pure virtual |
Generate and initialize an instance of irregular volume attribute set storage.
This function initializes an instance of Attribute_storage
according to the passed instance of Attribute_parameters
. An irregular volume dataset can be associated with multiple attribute sets which are identified by an attribute index. At any point during the lifetime of an IIrregular_volume_subset
instance there can only be a single valid attribute storage per attribute index. Multiple calls to this function will invalidate previous instances of the attribute storage associated with the passed index value and return a new valid instance according the newly passed attribute parameters.
[in] | attrib_index | The storage index for this attribute set. |
[in] | attrib_params | The attribute parameters. |
[out] | attrib_storage | Attribute storage instance that contains valid references to the attribute value array. |
|
pure virtual |
Generate and initialize an instance of irregular volume mesh storage.
This function initializes an instance of Mesh_storage
according to the passed instance of Mesh_parameters
. At any point during the lifetime of an IIrregular_volume_subset
instance there can only be a single valid mesh storage. Multiple calls to this function will invalidate previous instances of the mesh storage and return a new valid instance according the newly passed mesh parameters.
[in] | mesh_params | The irregular volume mesh parameters. |
[out] | mesh_storage | Mesh_storage instance that contains valid references to the vertex, face, and cell arrays of the irregular volume mesh. |
|
pure virtual |
Get the currently valid attribute set device-storage for a given attribute index.
[in] | attrib_index | The storage index of the attribute set. |
[out] | attrib_storage | The attribute storage for the given index. |
|
pure virtual |
Get the currently valid attribute set storage for a given attribute index.
[in] | attrib_index | The storage index of the attribute set. |
[out] | attrib_storage | The attribute storage for the given index. |
|
pure virtual |
Get the attribute parameters of a currently valid attribute set for a given index.
[in] | attrib_index | The storage index of the attribute set. |
[out] | attrib_params | The attribute set parameters for the given index. |
|
pure virtual |
|
pure virtual |
GPU device id if the buffer is located on a GPU device.
|
pure virtual |
Get the current valid irregular volume mesh storage.
When this function is called before initializing a valid mesh storage (generate_mesh_storage()
) the returned instance of Mesh_storage
will hold invalid pointers to the particular arrays (i.e. value 0).
|
pure virtual |
Get the irregular volume mesh parameters of the currently valid mesh storage.
When this function is called before initializing a valid mesh storage (generate_mesh_storage()
) the returned instance of Mesh_parameters
will describe an empty irregular volume mesh (i.e. all values 0).
|
pure virtual |
Get the current number of valid attribute sets.
|
pure virtual |
|
pure virtual |
Caching interface (preliminary).
Returns true if cache is loaded.