NVIDIA IndeX API nvidia_logo_transpbg.gif Up
nv::index::IIrregular_volume_subset Class Referenceabstract

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...
 

Detailed Description

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).

Note
The current implementation of NVIDIA IndeX supports rendering of irregular volumes that use the following cell shapes: tetrahedron, pyramid, wedge/prism, hexahedron.

Member Enumeration Documentation

 Attribute_affiliation

Types of attribute set affiliations.

Enumerator
ATTRIB_AFFIL_PER_VERTEX 

Per irregular volume mesh-vertex attribute.

ATTRIB_AFFIL_PER_CELL 

Per irregular volume mesh-cell attribute.

 Attribute_type

Types of attribute set values.

Enumerator
ATTRIB_TYPE_UINT8 

8bit unsigned integer scalar attribute type.

ATTRIB_TYPE_UINT8_2 

8bit unsigned integer vector attribute type with two components.

ATTRIB_TYPE_UINT8_3 

8bit unsigned integer vector attribute type with three components.

ATTRIB_TYPE_UINT8_4 

8bit unsigned integer vector attribute type with four components.

ATTRIB_TYPE_UINT16 

16bit unsigned integer scalar attribute type.

ATTRIB_TYPE_UINT16_2 

16bit unsigned integer vector attribute type with two components.

ATTRIB_TYPE_UINT16_3 

16bit unsigned integer vector attribute type with three components.

ATTRIB_TYPE_UINT16_4 

16bit unsigned integer vector attribute type with four components.

ATTRIB_TYPE_FLOAT32 

32bit floating point scalar attribute type.

ATTRIB_TYPE_FLOAT32_2 

32bit floating point vector attribute type with two components.

ATTRIB_TYPE_FLOAT32_3 

32bit floating point vector attribute type with three components.

ATTRIB_TYPE_FLOAT32_4 

32bit floating point vector attribute type with four components.

Member Function Documentation

 generate_attribute_storage()

virtual bool nv::index::IIrregular_volume_subset::generate_attribute_storage ( mi::Uint32  attrib_index,
const Attribute_parameters attrib_params,
Attribute_storage attrib_storage 
)
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.

Parameters
[in]attrib_indexThe storage index for this attribute set.
[in]attrib_paramsThe attribute parameters.
[out]attrib_storageAttribute storage instance that contains valid references to the attribute value array.
Returns
True if a valid storage was generated, false otherwise.

 generate_mesh_storage()

virtual bool nv::index::IIrregular_volume_subset::generate_mesh_storage ( const Mesh_parameters mesh_params,
Mesh_storage mesh_storage 
)
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.

Parameters
[in]mesh_paramsThe irregular volume mesh parameters.
[out]mesh_storageMesh_storage instance that contains valid references to the vertex, face, and cell arrays of the irregular volume mesh.
Returns
True if a valid storage was generated, false otherwise.

 get_active_attribute_device_storage()

virtual bool nv::index::IIrregular_volume_subset::get_active_attribute_device_storage ( mi::Uint32  attrib_index,
Attribute_storage attrib_storage 
) const
pure virtual

Get the currently valid attribute set device-storage for a given attribute index.

Parameters
[in]attrib_indexThe storage index of the attribute set.
[out]attrib_storageThe attribute storage for the given index.
Returns
True when the attribute storage according to the passed index could be found, false otherwise.
Note
Experimental

 get_attribute()

virtual bool nv::index::IIrregular_volume_subset::get_attribute ( mi::Uint32  attrib_index,
Attribute_storage attrib_storage 
) const
pure virtual

Get the currently valid attribute set storage for a given attribute index.

Parameters
[in]attrib_indexThe storage index of the attribute set.
[out]attrib_storageThe attribute storage for the given index.
Returns
True when the attribute storage according to the passed index could be found, false otherwise.

 get_attribute_parameters()

virtual bool nv::index::IIrregular_volume_subset::get_attribute_parameters ( mi::Uint32  attrib_index,
Attribute_parameters attrib_params 
) const
pure virtual

Get the attribute parameters of a currently valid attribute set for a given index.

Parameters
[in]attrib_indexThe storage index of the attribute set.
[out]attrib_paramsThe attribute set parameters for the given index.
Returns
True when the attribute set according to the passed index could be found, false otherwise.

 get_backup_attribute_device_storage()

virtual bool nv::index::IIrregular_volume_subset::get_backup_attribute_device_storage ( mi::Uint32  attrib_index,
Attribute_storage attrib_storage 
) const
pure virtual
Note
Experimental

 get_gpu_device_id()

virtual mi::Sint32 nv::index::IIrregular_volume_subset::get_gpu_device_id ( ) const
pure virtual

GPU device id if the buffer is located on a GPU device.

Returns
GPU device id, negative values indicate that the data is currently not stored on any device.
Note
Experimental

 get_mesh()

virtual Mesh_storage nv::index::IIrregular_volume_subset::get_mesh ( ) const
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).

Returns
A copy of the currently valid irregular volume mesh storage.

 get_mesh_parameters()

virtual Mesh_parameters nv::index::IIrregular_volume_subset::get_mesh_parameters ( ) const
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).

Returns
The irregular volume mesh parameters of the currently valid mesh storage.

 get_nb_attributes()

virtual mi::Uint32 nv::index::IIrregular_volume_subset::get_nb_attributes ( ) const
pure virtual

Get the current number of valid attribute sets.

Returns
The number of attribute sets.

 swap_active_attribute_storage()

virtual bool nv::index::IIrregular_volume_subset::swap_active_attribute_storage ( )
pure virtual
Note
Experimental

 use_cache_file()

virtual bool nv::index::IIrregular_volume_subset::use_cache_file ( const char *  filename,
mi::Uint32  mode,
mi::Uint32  flags 
)
pure virtual

Caching interface (preliminary).

Returns true if cache is loaded.

Note
Experimental

The documentation for this class was generated from the following file: