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 ICamera * | create_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_group * | create_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 IShape * | create_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_element * | 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 =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_element * | 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 =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_grid * | 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 =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_element * | 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 =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_element * | 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 =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_set * | 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 =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_heightfield * | 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 =0 |
Creates a new regular heightfield scene element from the given import configuration. More... | |
virtual IRegular_heightfield * | 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 =0 |
Creates a default regular heightfield scene element. More... | |
virtual IHeight_field_scene_element * | 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 =0 |
Creates a default height field scene element. More... | |
virtual ITriangle_mesh_scene_element * | 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 =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 IAttribute * | create_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... | |
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.
|
inline |
Creates a new attribute of the given type, but does not yet add it to the scene description.
IAttribute
|
pure virtual |
Creates a new attribute of the given type, but does not yet add it to the scene description.
[in] | class_id | Identifier of the type of attribute |
IAttribute
|
inline |
Creates a new camera of the given type.
ICamera
|
pure virtual |
Creates a new camera of the given type, e.g.
IPerspective_camera
or IOrthographic_camera
.
[in] | class_id | Identifier of the type of camera. |
ICamera
|
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.
[in] | grid_dims | Dimensions of the corner-pointer grid. Layer resolution in x and y, number of layers in z. |
[in] | bbox | The local space bounding box. |
[in] | transform_matrix | Transformation matrix. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
ICorner_point_grid
instance.
|
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.
[in] | scaling | Scaling; use (1, 1, 1) to disable |
[in] | rotation_k | Rotation around the K-axis (in radians) |
[in] | translation | Translation; use (0, 0, 0) to remain at the origin |
[in] | grid_size | Number of grid points in each direction |
[in] | k_range | Minimum and maximum K-value (equal to height) in the heightfield |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
IRegular_heightfield
instance..
|
pure virtual |
Creates a new irregular volume scene element from the given import configuration, but does not yet add it to the scene description.
[in] | ijk_bbox | The local space bounding box. |
[in] | max_mesh_edge_length | The length of the longest edge in the irregular volume mesh. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
IIrregular_volume_scene_element
instance.
|
pure virtual |
Creates a new particle volume scene element from the given import configuration, but does not yet add it to the scene description.
[in] | ijk_bbox | The local space bounding box. |
[in] | transform_matrix | Transformation matrix from IJK (local) to XYZ (global) space. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
IParticle_volume_scene_element
instance.
|
pure virtual |
Creates a new pipe set scene element from the given import configuration, but does not yet add it to the scene description.
[in] | bbox | The object space bounding box. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
IPipe_set
instance.
|
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.
[in] | scaling | Scaling; use (1, 1, 1) to disable. |
[in] | rotation_k | Rotation around the K-axis (in radians). |
[in] | translation | Translation; use (0, 0, 0) to remain at the origin. |
[in] | grid_size | Number of grid points in each direction. |
[in] | k_range | Minimum and maximum K-value (equal to height) in the heightfield. |
[in] | importer_callback | Distributed data import callback function |
[in] | dice_transaction | The DiCE transaction. |
IRegular_heightfield
instance.
|
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.
[in] | default_height | The elevation value used at every grid position of the heightfield |
[in] | scaling | Scaling; use (1, 1, 1) to disable |
[in] | rotation_k | Rotation around the K-axis (in radians) |
[in] | translation | Translation; use (0, 0, 0) to remain at the origin |
[in] | grid_size | Number of grid points in each direction |
[in] | k_range | Minimum and maximum K-value (equal to height) in the heightfield |
[in] | dice_transaction | The DiCE transaction. |
IRegular_heightfield
instance..
|
inline |
Creates a new scene group of the given type, but does not yet add it to the scene description.
IScene_group
|
pure virtual |
Creates a new scene group of the given type, but does not yet add it to the scene description.
[in] | class_id | Identifier of the type of scene group |
IScene_group
|
inline |
Creates a new shape of the given type, but does not yet add it to the scene description.
IShape
.
|
pure virtual |
Creates a new shape of the given type, but does not yet add it to the scene description.
[in] | class_id | Identifier of the type of shape |
IShape
.
|
pure virtual |
Creates a new sparse volume scene element from the given import configuration, but does not yet add it to the scene description.
[in] | ijk_bbox | The local space bounding box. |
[in] | transform_matrix | Transformation matrix from IJK (local) to XYZ (global) space. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
ISparse_volume_scene_element
instance.
|
pure virtual |
Creates a new triangle mesh scene element from the given import configuration, but does not yet add it to the scene description.
[in] | ijk_bbox | The local space bounding box. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
ITriangle_mesh_scene_element
instance.
|
pure virtual |
Creates a new VDB scene element from the given import configuration, but does not yet add it to the scene description.
[in] | object_space_bbox | The object space bounding box. |
[in] | transform_matrix | Transformation matrix from object to global space. |
[in] | importer_callback | Distributed data import callback function. |
[in] | dice_transaction | The DiCE transaction. |
IVDB_scene_element
instance.
|
pure virtual |
Returns the camera associated with the scene.
ICamera
|
pure virtual |
Returns the bounding box that clips the space that contains the scene contents.
|
pure virtual |
Returns the global scene transformation matrix.
|
pure virtual |
Sets the camera that defines the viewpoint of the scene.
[in] | tag | Tag of an ICamera |
|
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'.
[in] | bbox | The 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. |
|
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.
[in] | transform_mat | Transformation matrix |
|
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.
[in] | translation | Translation component of the transformation |
[in] | rotation | Rotation component of the transformation (specified as a rotation matrix) |
[in] | scaling | Scaling component of the transformation |