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

The abstract interface class representing the entire scene. More...

#include <iscene.h>

Inherits mi::base::Interface_declare< 0xf28ba414, ... >.

Public Member Functions

View and transformation.
virtual void set_camera (mi::neuraylib::Tag_struct tag)=0
 Sets the camera that defines the viewpoint of the scene. More...
 
virtual mi::neuraylib::Tag_struct get_camera () const =0
 Returns the camera associated with the scene. More...
 
virtual void set_transform_matrix (const mi::math::Matrix_struct< mi::Float32, 4, 4 > &transform_mat)=0
 Sets the global scene transformation matrix. More...
 
virtual void set_transform_matrix (const mi::math::Vector_struct< mi::Float32, 3 > &translation, const mi::math::Matrix_struct< mi::Float32, 4, 4 > &rotation, const mi::math::Vector_struct< mi::Float32, 3 > &scaling)=0
 Sets the global scene transformation. More...
 
virtual mi::math::Matrix_struct< mi::Float32, 4, 4 > get_transform_matrix () const =0
 Returns the global scene transformation matrix. More...
 
Creating cameras.
virtual ICameracreate_camera (const mi::base::Uuid &class_id) const =0
 Creates a new camera of the given type, e.g. More...
 
template<class T>
T * create_camera () const
 Creates a new camera of the given type. More...
 
Creating scene groups.
virtual IScene_groupcreate_scene_group (const mi::base::Uuid &class_id) const =0
 Creates a new scene group of the given type, but does not yet add it to the scene description. More...
 
template<class T>
T * create_scene_group () const
 Creates a new scene group of the given type, but does not yet add it to the scene description. More...
 
Creating higher-level object space shapes and image space shapes.
virtual IShapecreate_shape (const mi::base::Uuid &class_id) const =0
 Creates a new shape of the given type, but does not yet add it to the scene description. More...
 
template<class T>
T * create_shape () const
 Creates a new shape of the given type, but does not yet add it to the scene description. More...
 
virtual IIrregular_volume_scene_elementcreate_irregular_volume (const mi::math::Bbox_struct< mi::Float32, 3 > &ijk_bbox, const mi::Float32 max_mesh_edge_length, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new irregular volume scene element from the given import configuration, but does not yet add it to the scene description. More...
 
virtual ISparse_volume_scene_elementcreate_sparse_volume (const mi::math::Bbox_struct< mi::Float32, 3 > &ijk_bbox, const mi::math::Matrix_struct< mi::Float32, 4, 4 > &transform_matrix, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new sparse volume scene element from the given import configuration, but does not yet add it to the scene description. More...
 
virtual ICorner_point_gridcreate_corner_point_grid (const mi::math::Vector_struct< mi::Uint32, 3 > &grid_dims, const mi::math::Bbox_struct< mi::Float32, 3 > &bbox, const mi::math::Matrix_struct< mi::Float32, 4, 4 > &transform_matrix, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new corner-point grid scene element from the given import configuration, but does not yet add it to the scene description. More...
 
virtual IParticle_volume_scene_elementcreate_particle_volume (const mi::math::Bbox_struct< mi::Float32, 3 > &ijk_bbox, const mi::math::Matrix_struct< mi::Float32, 4, 4 > &transform_matrix, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new particle volume scene element from the given import configuration, but does not yet add it to the scene description. More...
 
virtual IVDB_scene_elementcreate_vdb_scene_element (const mi::math::Bbox_struct< mi::Float32, 3 > &object_space_bbox, const mi::math::Matrix_struct< mi::Float32, 4, 4 > &transform_matrix, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new VDB scene element from the given import configuration, but does not yet add it to the scene description. More...
 
virtual IPipe_setcreate_pipe_set (const mi::math::Bbox_struct< mi::Float32, 3 > &bbox, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new pipe set scene element from the given import configuration, but does not yet add it to the scene description. More...
 
virtual IRegular_heightfieldcreate_regular_heightfield (const mi::math::Vector_struct< mi::Float32, 3 > &scaling, mi::Float32 rotation_k, const mi::math::Vector_struct< mi::Float32, 3 > &translation, const mi::math::Vector_struct< mi::Uint32, 2 > &grid_size, const mi::math::Vector_struct< mi::Float32, 2 > &k_range, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new regular heightfield scene element from the given import configuration. More...
 
virtual IRegular_heightfieldcreate_regular_heightfield (mi::Float32 default_height, const mi::math::Vector_struct< mi::Float32, 3 > &scaling, mi::Float32 rotation_k, const mi::math::Vector_struct< mi::Float32, 3 > &translation, const mi::math::Vector_struct< mi::Uint32, 2 > &grid_size, const mi::math::Vector_struct< mi::Float32, 2 > &k_range, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a default regular heightfield scene element. More...
 
virtual IHeight_field_scene_elementcreate_height_field (const mi::math::Vector_struct< mi::Float32, 3 > &scaling, mi::Float32 rotation_k, const mi::math::Vector_struct< mi::Float32, 3 > &translation, const mi::math::Vector_struct< mi::Uint32, 2 > &grid_size, const mi::math::Vector_struct< mi::Float32, 2 > &k_range, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a default height field scene element. More...
 
virtual ITriangle_mesh_scene_elementcreate_triangle_mesh (const mi::math::Bbox_struct< mi::Float32, 3 > &ijk_bbox, nv::index::IDistributed_data_import_callback *importer_callback, mi::neuraylib::IDice_transaction *dice_transaction) const =0
 Creates a new triangle mesh scene element from the given import configuration, but does not yet add it to the scene description. More...
 
Creating attributes.
virtual IAttributecreate_attribute (const mi::base::Uuid &class_id) const =0
 Creates a new attribute of the given type, but does not yet add it to the scene description. More...
 
template<class T>
T * create_attribute () const
 Creates a new attribute of the given type, but does not yet add it to the scene description. More...
 
Bounding boxes and region of interest
virtual void set_clipped_bounding_box (const mi::math::Bbox_struct< mi::Float32, 3 > &bbox)=0
 Clipping the space in which the entire scene contents is positioned. More...
 
virtual mi::math::Bbox_struct< mi::Float32, 3 > get_clipped_bounding_box () const =0
 Returns the bounding box that clips the space that contains the scene contents. More...
 

Detailed Description

The abstract interface class representing the entire scene.

The scene is also the root node of the scene description and therefore implements the IScene_group interface.

The scene defines the global three-dimensional space bounded by the minimal volume that encloses all scene elements. An associated ICamera controls the viewpoint from which the scene can be rendered.

The scene manages the scene elements which are the graphical representations of datasets. A scene defines a global region of interest which is the bounding box that can be used to confine rendering to a subset of the entire world space.

Member Function Documentation

 create_attribute() [1/2]

template<class T>
T * nv::index::IScene::create_attribute ( ) const
inline

Creates a new attribute of the given type, but does not yet add it to the scene description.

Returns
The new IAttribute

 create_attribute() [2/2]

virtual IAttribute * nv::index::IScene::create_attribute ( const mi::base::Uuid &  class_id) const
pure virtual

Creates a new attribute of the given type, but does not yet add it to the scene description.

Parameters
[in]class_idIdentifier of the type of attribute
Returns
The new IAttribute

 create_camera() [1/2]

template<class T>
T * nv::index::IScene::create_camera ( ) const
inline

Creates a new camera of the given type.

Returns
The new ICamera

 create_camera() [2/2]

virtual ICamera * nv::index::IScene::create_camera ( const mi::base::Uuid &  class_id) const
pure virtual

Creates a new camera of the given type, e.g.

IPerspective_camera or IOrthographic_camera.

Parameters
[in]class_idIdentifier of the type of camera.
Returns
The new ICamera

 create_corner_point_grid()

virtual ICorner_point_grid * nv::index::IScene::create_corner_point_grid ( const mi::math::Vector_struct< mi::Uint32, 3 > &  grid_dims,
const mi::math::Bbox_struct< mi::Float32, 3 > &  bbox,
const mi::math::Matrix_struct< mi::Float32, 4, 4 > &  transform_matrix,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new corner-point grid scene element from the given import configuration, but does not yet add it to the scene description.

Parameters
[in]grid_dimsDimensions of the corner-pointer grid. Layer resolution in x and y, number of layers in z.
[in]bboxThe local space bounding box.
[in]transform_matrixTransformation matrix.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new ICorner_point_grid instance.

 create_height_field()

virtual IHeight_field_scene_element * nv::index::IScene::create_height_field ( const mi::math::Vector_struct< mi::Float32, 3 > &  scaling,
mi::Float32  rotation_k,
const mi::math::Vector_struct< mi::Float32, 3 > &  translation,
const mi::math::Vector_struct< mi::Uint32, 2 > &  grid_size,
const mi::math::Vector_struct< mi::Float32, 2 > &  k_range,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a default height field scene element.

The default heightfield has the given elevation value at each grid location of the given 2D patch. The scene element can be transformed by specifying scaling, a rotation around its local K-axis, and a translation. These transformations generate the matrix that will be returned by IHeight_field_scene_element::get_transform() and is applied to transform the scene element from the heightfield's local space to the global space.

Parameters
[in]scalingScaling; use (1, 1, 1) to disable
[in]rotation_kRotation around the K-axis (in radians)
[in]translationTranslation; use (0, 0, 0) to remain at the origin
[in]grid_sizeNumber of grid points in each direction
[in]k_rangeMinimum and maximum K-value (equal to height) in the heightfield
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new IRegular_heightfield instance..

 create_irregular_volume()

virtual IIrregular_volume_scene_element * nv::index::IScene::create_irregular_volume ( const mi::math::Bbox_struct< mi::Float32, 3 > &  ijk_bbox,
const mi::Float32  max_mesh_edge_length,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new irregular volume scene element from the given import configuration, but does not yet add it to the scene description.

Note
The longest mesh edge information is required for correct visual results. It sets an important bound for the renderer to consider for setting up internal resources.
Parameters
[in]ijk_bboxThe local space bounding box.
[in]max_mesh_edge_lengthThe length of the longest edge in the irregular volume mesh.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new IIrregular_volume_scene_element instance.

 create_particle_volume()

virtual IParticle_volume_scene_element * nv::index::IScene::create_particle_volume ( const mi::math::Bbox_struct< mi::Float32, 3 > &  ijk_bbox,
const mi::math::Matrix_struct< mi::Float32, 4, 4 > &  transform_matrix,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new particle volume scene element from the given import configuration, but does not yet add it to the scene description.

Parameters
[in]ijk_bboxThe local space bounding box.
[in]transform_matrixTransformation matrix from IJK (local) to XYZ (global) space.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new IParticle_volume_scene_element instance.

 create_pipe_set()

virtual IPipe_set * nv::index::IScene::create_pipe_set ( const mi::math::Bbox_struct< mi::Float32, 3 > &  bbox,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new pipe set scene element from the given import configuration, but does not yet add it to the scene description.

Parameters
[in]bboxThe object space bounding box.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
Returns a new IPipe_set instance.

 create_regular_heightfield() [1/2]

virtual IRegular_heightfield * nv::index::IScene::create_regular_heightfield ( const mi::math::Vector_struct< mi::Float32, 3 > &  scaling,
mi::Float32  rotation_k,
const mi::math::Vector_struct< mi::Float32, 3 > &  translation,
const mi::math::Vector_struct< mi::Uint32, 2 > &  grid_size,
const mi::math::Vector_struct< mi::Float32, 2 > &  k_range,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new regular heightfield scene element from the given import configuration.

The created heightfield scene element will be returned and must then be added to the scene description.

The scene element can be transformed by specifying scaling, a rotation around its local K-axis, and a translation. These transformations generate the matrix that will be returned by IRegular_heightfield::get_transform() and is applied to transform the scene element from the heightfield's local space to the global space.

Parameters
[in]scalingScaling; use (1, 1, 1) to disable.
[in]rotation_kRotation around the K-axis (in radians).
[in]translationTranslation; use (0, 0, 0) to remain at the origin.
[in]grid_sizeNumber of grid points in each direction.
[in]k_rangeMinimum and maximum K-value (equal to height) in the heightfield.
[in]importer_callbackDistributed data import callback function
[in]dice_transactionThe DiCE transaction.
Returns
The new IRegular_heightfield instance.

 create_regular_heightfield() [2/2]

virtual IRegular_heightfield * nv::index::IScene::create_regular_heightfield ( mi::Float32  default_height,
const mi::math::Vector_struct< mi::Float32, 3 > &  scaling,
mi::Float32  rotation_k,
const mi::math::Vector_struct< mi::Float32, 3 > &  translation,
const mi::math::Vector_struct< mi::Uint32, 2 > &  grid_size,
const mi::math::Vector_struct< mi::Float32, 2 > &  k_range,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a default regular heightfield scene element.

The default heightfield has the given elevation value at each grid location of the given 2D patch. The scene element can be transformed by specifying scaling, a rotation around its local K-axis, and a translation. These transformations generate the matrix that will be returned by IRegular_heightfield::get_transform() and is applied to transform the scene element from the heightfield's local space to the global space.

Parameters
[in]default_heightThe elevation value used at every grid position of the heightfield
[in]scalingScaling; use (1, 1, 1) to disable
[in]rotation_kRotation around the K-axis (in radians)
[in]translationTranslation; use (0, 0, 0) to remain at the origin
[in]grid_sizeNumber of grid points in each direction
[in]k_rangeMinimum and maximum K-value (equal to height) in the heightfield
[in]dice_transactionThe DiCE transaction.
Returns
The new IRegular_heightfield instance..

 create_scene_group() [1/2]

template<class T>
T * nv::index::IScene::create_scene_group ( ) const
inline

Creates a new scene group of the given type, but does not yet add it to the scene description.

Returns
The new IScene_group

 create_scene_group() [2/2]

virtual IScene_group * nv::index::IScene::create_scene_group ( const mi::base::Uuid &  class_id) const
pure virtual

Creates a new scene group of the given type, but does not yet add it to the scene description.

Parameters
[in]class_idIdentifier of the type of scene group
Returns
The new IScene_group

 create_shape() [1/2]

template<class T>
T * nv::index::IScene::create_shape ( ) const
inline

Creates a new shape of the given type, but does not yet add it to the scene description.

Returns
Returns an instance of IShape.

 create_shape() [2/2]

virtual IShape * nv::index::IScene::create_shape ( const mi::base::Uuid &  class_id) const
pure virtual

Creates a new shape of the given type, but does not yet add it to the scene description.

Parameters
[in]class_idIdentifier of the type of shape
Returns
Returns an instance of IShape.

 create_sparse_volume()

virtual ISparse_volume_scene_element * nv::index::IScene::create_sparse_volume ( const mi::math::Bbox_struct< mi::Float32, 3 > &  ijk_bbox,
const mi::math::Matrix_struct< mi::Float32, 4, 4 > &  transform_matrix,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new sparse volume scene element from the given import configuration, but does not yet add it to the scene description.

Parameters
[in]ijk_bboxThe local space bounding box.
[in]transform_matrixTransformation matrix from IJK (local) to XYZ (global) space.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new ISparse_volume_scene_element instance.

 create_triangle_mesh()

virtual ITriangle_mesh_scene_element * nv::index::IScene::create_triangle_mesh ( const mi::math::Bbox_struct< mi::Float32, 3 > &  ijk_bbox,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new triangle mesh scene element from the given import configuration, but does not yet add it to the scene description.

Parameters
[in]ijk_bboxThe local space bounding box.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new ITriangle_mesh_scene_element instance.

 create_vdb_scene_element()

virtual IVDB_scene_element * nv::index::IScene::create_vdb_scene_element ( const mi::math::Bbox_struct< mi::Float32, 3 > &  object_space_bbox,
const mi::math::Matrix_struct< mi::Float32, 4, 4 > &  transform_matrix,
nv::index::IDistributed_data_import_callback importer_callback,
mi::neuraylib::IDice_transaction *  dice_transaction 
) const
pure virtual

Creates a new VDB scene element from the given import configuration, but does not yet add it to the scene description.

Parameters
[in]object_space_bboxThe object space bounding box.
[in]transform_matrixTransformation matrix from object to global space.
[in]importer_callbackDistributed data import callback function.
[in]dice_transactionThe DiCE transaction.
Returns
The new IVDB_scene_element instance.

 get_camera()

virtual mi::neuraylib::Tag_struct nv::index::IScene::get_camera ( ) const
pure virtual

Returns the camera associated with the scene.

Returns
Tag of an ICamera

 get_clipped_bounding_box()

virtual mi::math::Bbox_struct< mi::Float32, 3 > nv::index::IScene::get_clipped_bounding_box ( ) const
pure virtual

Returns the bounding box that clips the space that contains the scene contents.

Returns
Returns the bounding box that clips the space containing the scene contents. The bounding box is defined in the joint subdivision space.

 get_transform_matrix()

virtual mi::math::Matrix_struct< mi::Float32, 4, 4 > nv::index::IScene::get_transform_matrix ( ) const
pure virtual

Returns the global scene transformation matrix.

Returns
transformation matrix

 set_camera()

virtual void nv::index::IScene::set_camera ( mi::neuraylib::Tag_struct  tag)
pure virtual

Sets the camera that defines the viewpoint of the scene.

Parameters
[in]tagTag of an ICamera

 set_clipped_bounding_box()

virtual void nv::index::IScene::set_clipped_bounding_box ( const mi::math::Bbox_struct< mi::Float32, 3 > &  bbox)
pure virtual

Clipping the space in which the entire scene contents is positioned.

The scene contents is positioned in a joint 'global' space. The joint space is used for spatial subdivision and, thus, is also know as 'subdivision space'.

Parameters
[in]bboxThe bounding box clips the space that contains all the scene contents. Only those parts of the scene that are inside the clipped space are displayed. The bounding box is defined in the joint subdivision space.

 set_transform_matrix() [1/2]

virtual void nv::index::IScene::set_transform_matrix ( const mi::math::Matrix_struct< mi::Float32, 4, 4 > &  transform_mat)
pure virtual

Sets the global scene transformation matrix.

This transformation is applied in addition to the camera transformation and can be used, for example, to adapt to a custom coordinate system.

Parameters
[in]transform_matTransformation matrix

 set_transform_matrix() [2/2]

virtual void nv::index::IScene::set_transform_matrix ( const mi::math::Vector_struct< mi::Float32, 3 > &  translation,
const mi::math::Matrix_struct< mi::Float32, 4, 4 > &  rotation,
const mi::math::Vector_struct< mi::Float32, 3 > &  scaling 
)
pure virtual

Sets the global scene transformation.

This transformation is applied in addition to the camera transformation and can be used, for example, to adapt to a custom coordinate system. The transformation is specified by three components which are applied in this order: translation, rotation, scaling.

Parameters
[in]translationTranslation component of the transformation
[in]rotationRotation component of the transformation (specified as a rotation matrix)
[in]scalingScaling component of the transformation

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