7#ifndef NVIDIA_INDEX_ISCENE_GROUP_H
8#define NVIDIA_INDEX_ISCENE_GROUP_H
10#include <mi/base/interface_declare.h>
12#include <mi/math/matrix.h>
32 public mi::base::Interface_declare<0xdf29205a,0x010c,0x42c1,0xbe,0xc5,0xb9,0x5e,0xcd,0x3c,0x76,0x74,
33 nv::index::IScene_element>
46 mi::neuraylib::Tag_struct scene_element_tag,
47 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
60 mi::neuraylib::Tag_struct scene_element_tag,
61 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
89 mi::neuraylib::Tag_struct scene_element_tag,
90 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
100 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
108 mi::neuraylib::Tag_struct scene_element_tag,
109 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
116 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
130 public mi::base::Interface_declare<0xf6de2020,0x3fcd,0x4764,0xb3,0xbe,0x3a,0x07,0xf0,0xee,0xd6,0x60,
131 nv::index::IScene_group>
137 const mi::math::Matrix_struct<mi::Float32, 4, 4>& transform_mat) = 0;
141 virtual mi::math::Matrix_struct<mi::Float32, 4, 4>
get_transform()
const = 0;
157 public mi::base::Interface_declare<0x11971a80,0x8607,0x4f8b,0xa7,0x77,0x04,0x42,0x6a,0xc2,0xcc,0xda,
158 nv::index::IScene_group>
170 public mi::base::Interface_declare<0xab821bda,0x0214,0x4908,0xbb,0x51,0xb4,0xd6,0x76,0x74,0xb9,0xb6,
171 nv::index::ITransformed_scene_group>
183 mi::neuraylib::Tag_struct manipulator_tag,
185 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
200 public mi::base::Interface_declare<0x8ba83935,0xb95b,0x44ce,0x83,0x2a,0x14,0x06,0x52,0x93,0x45,0x14,
201 mi::neuraylib::IElement>
215 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
A scene group allows structuring a scene in a hierarchical form.
Definition: iscene_group.h:34
virtual mi::neuraylib::Tag_struct get_scene_element(mi::Uint32 index) const =0
Get the scene element tag at the position index of the scene group's element list.
virtual bool remove(mi::Uint32 index, mi::neuraylib::IDice_transaction *dice_transaction)=0
Remove the scene element at the position index in the element list from the group.
virtual void clear(mi::neuraylib::IDice_transaction *dice_transaction)=0
Remove all scene elements from the group.
virtual bool append(mi::neuraylib::Tag_struct scene_element_tag, mi::neuraylib::IDice_transaction *dice_transaction)=0
Append a scene element at the end of the scene group's element list.
virtual bool remove(mi::neuraylib::Tag_struct scene_element_tag, mi::neuraylib::IDice_transaction *dice_transaction)=0
Remove all scene elements with the given tag from the group.
virtual bool prepend(mi::neuraylib::Tag_struct scene_element_tag, mi::neuraylib::IDice_transaction *dice_transaction)=0
Add a scene element as the new first item of the scene group's element list.
virtual bool insert(mi::Uint32 index, mi::neuraylib::Tag_struct scene_element_tag, mi::neuraylib::IDice_transaction *dice_transaction)=0
Insert a scene element into the scene group's element list at position index.
virtual mi::Uint32 nb_elements() const =0
Get the number of scene elements contained in this group.
The abstract interface class representing the entire scene.
Definition: iscene.h:52
An implementation of IShape_scene_group_manipulator creates user-defined geometry by filling an IShap...
Definition: iscene_group.h:202
virtual void build(IShape_scene_group *shape_group, const IScene *scene, mi::neuraylib::IDice_transaction *dice_transaction)=0
Creates the geometry inside the given shape group.
A shape scene group (or simply "shape group") aggregates multiple scene elements to create new user-d...
Definition: iscene_group.h:172
virtual void build(mi::neuraylib::Tag_struct manipulator_tag, const IScene *scene, mi::neuraylib::IDice_transaction *dice_transaction)=0
Fill the shape group with geometry using the given manipulator.
virtual mi::neuraylib::Tag_struct get_manipulator() const =0
Returns the manipulator that is associated with the shape group.
A static scene group is used in the typical manner for structuring the scene but does not maintain it...
Definition: iscene_group.h:159
Interface class representing scene elements in the scene description.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349