NVIDIA IndeX API nvidia_logo_transpbg.gif Up
isession.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_ISESSION_H
8#define NVIDIA_INDEX_ISESSION_H
9
10#include <mi/dice.h>
11#include <mi/base/interface_declare.h>
12#include <mi/base/handle.h>
13
14#include <mi/math/vector.h>
15#include <mi/math/matrix.h>
16
17#include <nv/index/icamera.h>
18#include <nv/index/iindex.h>
22
23namespace nv {
24
25namespace index {
26
27class IViewport;
28class IViewport_list;
29
38class ISession :
39 public mi::base::Interface_declare<0x21638be2,0xab6b,0x4396,0x9a,0xb7,0x3b,0xa5,0xe2,0xc9,0xe0,0xe6,
40 mi::neuraylib::IElement>
41{
42public:
46
57 virtual mi::neuraylib::Tag_struct create_scene(
58 mi::neuraylib::IDice_transaction* dice_transaction) = 0;
59
64 virtual mi::neuraylib::Tag_struct get_scene() const = 0;
65
67
68
72
85 virtual void visit(
86 IScene_visitor* visitor,
87 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
89
93
113 virtual mi::neuraylib::Tag_struct create_camera(
114 mi::neuraylib::IDice_transaction* dice_transaction,
115 const mi::base::Uuid& camera_type_uuid = IPerspective_camera::IID(),
116 const char* camera_name = 0) const = 0;
117
119
123
127 virtual mi::neuraylib::Tag_struct get_config() const = 0;
128
130
134
141 virtual mi::neuraylib::Tag_struct get_data_access_factory() const = 0;
142
149 virtual mi::neuraylib::Tag_struct get_distribution_layout() const = 0;
150
152
153
157
170 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
171
173
177
185 virtual IViewport* create_viewport() const = 0;
186
195
204
206
207
211
225
227
228
232
254 };
255
286 virtual void export_session(
287 mi::Uint32 export_mode,
288 mi::IString* output,
289 mi::neuraylib::IDice_transaction* dice_transaction,
290 const IViewport_list* viewport_list = 0) const = 0;
291
301 //
303 mi::neuraylib::Tag_struct scene_element_tag,
304 mi::Uint32 export_mode,
305 mi::IString* output,
306 mi::neuraylib::IDice_transaction* dice_transaction) const = 0;
307
309};
310
311}} // namespace index / nv
312
313#endif // NVIDIA_INDEX_ISESSION_H
Defines a list of canvases with associated viewports.
Definition: iviewport.h:204
An interface class that provides a convenient way to change commonly used scene manipulations.
Definition: iscene_convenience_manipulation.h:38
Enables user-specific evaluations of the scene representation.
Definition: iscene_visitor.h:35
The session represents the entire workspace with the NVIDIA IndeX environment.
Definition: isession.h:41
virtual mi::neuraylib::Tag_struct create_camera(mi::neuraylib::IDice_transaction *dice_transaction, const mi::base::Uuid &camera_type_uuid=IPerspective_camera::IID(), const char *camera_name=0) const =0
Creates a new camera object.
virtual mi::neuraylib::Tag_struct get_config() const =0
Returns the configuration settings of this session.
virtual ISubdivision * get_spatial_subdivision(mi::neuraylib::IDice_transaction *dice_transaction) const =0
Returns the spatial subdivision.
virtual IViewport * create_viewport() const =0
Creates a new viewport.
virtual IScene_convenience_manipulation * get_conveniences() const =0
The convenience interface class allows an application-writer to perform common manipulations on a sce...
virtual mi::neuraylib::Tag_struct get_distribution_layout() const =0
Returns the object that exposes the distribution of large-scale data in the cluster environment.
virtual void export_scene_element(mi::neuraylib::Tag_struct scene_element_tag, mi::Uint32 export_mode, mi::IString *output, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Returns a textual representation of the internal state of the given scene element.
virtual ICanvas_viewport_list * create_canvas_viewport_list() const =0
Creates a new list of canvas/viewport-list pairs.
virtual IViewport_list * create_viewport_list() const =0
Creates a new viewport list.
virtual mi::neuraylib::Tag_struct get_scene() const =0
The scene is part of the session description and can be accessed.
virtual mi::neuraylib::Tag_struct create_scene(mi::neuraylib::IDice_transaction *dice_transaction)=0
Creates a new scene for the current session.
virtual void export_session(mi::Uint32 export_mode, mi::IString *output, mi::neuraylib::IDice_transaction *dice_transaction, const IViewport_list *viewport_list=0) const =0
Returns a textual representation of the internal state of the scene and the rendering parameters that...
virtual void visit(IScene_visitor *visitor, mi::neuraylib::IDice_transaction *dice_transaction) const =0
Visiting the scene by traversing through the entire scene description.
Export_mode
Controls how the export will be performed by export_session().
Definition: isession.h:235
@ EXPORT_DEBUG
Add additional debug information as comments.
Definition: isession.h:247
@ EXPORT_FORMAT_PRJ
.prj output format for use with the NVIDIA IndeX demo viewer
Definition: isession.h:237
@ EXPORT_DEFAULT
Default mode.
Definition: isession.h:253
@ EXPORT_SYSINFO
Show system information.
Definition: isession.h:241
@ EXPORT_FORMAT_JSON
JSON output format.
Definition: isession.h:239
@ EXPORT_HINTS
Add type and range hints to properties (for building a UI)
Definition: isession.h:249
@ EXPORT_MEMORY
Add memory statistics to system information.
Definition: isession.h:243
@ EXPORT_VERBOSE
Add additional comments.
Definition: isession.h:245
@ EXPORT_USER_DATA
Add detailed output of user-defined data (e.g. source code and parameters from rendering kernel progr...
Definition: isession.h:251
virtual mi::neuraylib::Tag_struct get_data_access_factory() const =0
Returns the factory that exposes access to the distributed large-scale datasets.
Spatial subdivision.
Definition: isubdivision.h:20
Defines a list of viewports that will be rendered onto a canvas.
Definition: iviewport.h:134
A viewport defines a two-dimensional area of a canvas where the scene from a given DiCE scope should ...
Definition: iviewport.h:74
Generic camera.
Main API of the NVIDIA IndeX library.
Interface for a convenience scene manipulations.
Results exposed by the NVIDIA IndeX library when querying a scene's contents.
Spatial subdivision information.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349