NVIDIA IndeX API nvidia_logo_transpbg.gif Up
iscene_group.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_ISCENE_GROUP_H
8#define NVIDIA_INDEX_ISCENE_GROUP_H
9
10#include <mi/base/interface_declare.h>
11#include <mi/dice.h>
12#include <mi/math/matrix.h>
13
15
16namespace nv
17{
18namespace index
19{
20
21class IScene;
22
32 public mi::base::Interface_declare<0xdf29205a,0x010c,0x42c1,0xbe,0xc5,0xb9,0x5e,0xcd,0x3c,0x76,0x74,
33 nv::index::IScene_element>
34{
35public:
45 virtual bool append(
46 mi::neuraylib::Tag_struct scene_element_tag,
47 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
48
59 virtual bool prepend(
60 mi::neuraylib::Tag_struct scene_element_tag,
61 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
62
66 virtual mi::Uint32 nb_elements() const = 0;
67
74 virtual mi::neuraylib::Tag_struct get_scene_element(mi::Uint32 index) const = 0;
75
87 virtual bool insert(
88 mi::Uint32 index,
89 mi::neuraylib::Tag_struct scene_element_tag,
90 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
91
98 virtual bool remove(
99 mi::Uint32 index,
100 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
101
107 virtual bool remove(
108 mi::neuraylib::Tag_struct scene_element_tag,
109 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
110
115 virtual void clear(
116 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
117};
118
130 public mi::base::Interface_declare<0xf6de2020,0x3fcd,0x4764,0xb3,0xbe,0x3a,0x07,0xf0,0xee,0xd6,0x60,
131 nv::index::IScene_group>
132{
133public:
136 virtual void set_transform(
137 const mi::math::Matrix_struct<mi::Float32, 4, 4>& transform_mat) = 0;
138
141 virtual mi::math::Matrix_struct<mi::Float32, 4, 4> get_transform() const = 0;
142};
143
157 public mi::base::Interface_declare<0x11971a80,0x8607,0x4f8b,0xa7,0x77,0x04,0x42,0x6a,0xc2,0xcc,0xda,
158 nv::index::IScene_group>
159{
160};
161
170 public mi::base::Interface_declare<0xab821bda,0x0214,0x4908,0xbb,0x51,0xb4,0xd6,0x76,0x74,0xb9,0xb6,
171 nv::index::ITransformed_scene_group>
172{
173public:
182 virtual void build(
183 mi::neuraylib::Tag_struct manipulator_tag,
184 const IScene* scene,
185 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
186
189 virtual mi::neuraylib::Tag_struct get_manipulator() const = 0;
190};
191
200 public mi::base::Interface_declare<0x8ba83935,0xb95b,0x44ce,0x83,0x2a,0x14,0x06,0x52,0x93,0x45,0x14,
201 mi::neuraylib::IElement>
202{
203public:
212 virtual void build(
213 IShape_scene_group* shape_group,
214 const IScene* scene,
215 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
216};
217
218}} // namespace index / nv
219
220#endif // NVIDIA_INDEX_ISCENE_GROUP_H
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
A transformed scene group is used in the typical manner for structuring the scene but also defines a ...
Definition: iscene_group.h:132
virtual void set_transform(const mi::math::Matrix_struct< mi::Float32, 4, 4 > &transform_mat)=0
Set the transformation matrix.
virtual mi::math::Matrix_struct< mi::Float32, 4, 4 > get_transform() const =0
Get the current transformation matrix.
Interface class representing scene elements in the scene description.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349