NVIDIA IndeX API nvidia_logo_transpbg.gif Up
iscene_query_results.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright 2023 NVIDIA Corporation. All rights reserved.
3 *****************************************************************************/
6
7#ifndef NVIDIA_INDEX_ISCENE_QUERY_RESULTS_H
8#define NVIDIA_INDEX_ISCENE_QUERY_RESULTS_H
9
10#include <mi/base/interface_declare.h>
11#include <mi/base/types.h>
12#include <mi/base/uuid.h>
13#include <mi/math/color.h>
14#include <mi/math/matrix.h>
15#include <mi/math/vector.h>
16#include <mi/dice.h>
17
19
20namespace nv
21{
22namespace index
23{
24
38 public mi::base::Interface_declare<0xce092e73,0x46c6,0x492f,0x87,0x9b,0x6e,0x14,0x23,0x07,0x33,0x26>
39{
40public:
46 virtual mi::Uint32 get_length() const = 0;
47
64 virtual mi::neuraylib::Tag_struct get_node(mi::Uint32 index) const = 0;
65};
66
79 public mi::base::Interface_declare<0x0e201838,0xf0e5,0x41f7,0xa4,0xe0,0xfc,0x02,0x43,0xe6,0x06,0xce>
80{
81public:
102 virtual mi::base::Uuid get_intersection_info_class() const = 0;
103
111 virtual mi::neuraylib::Tag_struct get_scene_element() const = 0;
112
122 virtual mi::Sint32 get_scene_element_sub_index() const = 0;
123
138 virtual const IData_sample* get_data_sample() const = 0;
139
148 virtual const mi::math::Color_struct& get_color() const = 0;
149
158 virtual const mi::math::Vector_struct<mi::Float32, 3>& get_intersection() const = 0;
159
167 virtual mi::Float32 get_distance() const = 0;
168
177 virtual const mi::math::Matrix_struct<mi::Float32, 4, 4>& get_transform() const = 0;
178
186 virtual const IScene_path* get_scene_path() const = 0;
187};
188
198 public mi::base::Interface_declare<0xe39d04d8,0x1176,0x44c5,0xb0,0xc9,0xd3,0xff,0xf5,0x79,0x04,0xba>
199{
200public:
206 virtual mi::Uint32 get_nb_results() const = 0;
207
217 virtual IScene_pick_result* get_result(mi::Uint32 index) const = 0;
218
224 virtual mi::Size get_viewport_index() const = 0;
225};
226
231 public mi::base::Interface_declare<0x7e0c9571,0xf362,0x4f78,0x88,0x2f,0x12,0x88,0x71,0xa7,0xa7,0x61>
232{
233public:
237 virtual mi::Size size() const = 0;
238
243 virtual nv::index::IScene_pick_results* get(mi::Size index) const = 0;
244};
245
258 public mi::base::Interface_declare<0x8832eb30,0x1c5e,0x4ab8,0x90,0x77,0xca,0x62,0x07,0xdb,0x3c,0x5c>
259{
260public:
278 virtual mi::base::Uuid get_intersection_info_class() const = 0;
279};
280
281}} // namespace index / nv
282
283#endif // NVIDIA_INDEX_ISCENE_QUERY_RESULTS_H
Base-interface class for all data-sample interface classes.
Definition: idata_sample.h:26
Interface class that returns the result of a entry lookup operation.
Definition: iscene_query_results.h:259
virtual mi::base::Uuid get_intersection_info_class() const =0
Represents the interface class of the entry lookup result.
Describes a path through the scene description to identify a specific instance of a scene element.
Definition: iscene_query_results.h:39
virtual mi::Uint32 get_length() const =0
Returns the number of nodes in the path from the scene root to the chosen scene element instance.
virtual mi::neuraylib::Tag_struct get_node(mi::Uint32 index) const =0
Returns a node in the path from the scene root to the chosen scene element instance.
Interface class that returns the result of a pick operation.
Definition: iscene_query_results.h:80
virtual mi::Float32 get_distance() const =0
Returns the distance of the intersection from the camera position.
virtual const mi::math::Vector_struct< mi::Float32, 3 > & get_intersection() const =0
Returns the intersection between the scene element and the ray.
virtual const IData_sample * get_data_sample() const =0
The hit point of the ray with the scene element may be associated with a regular volume sample value.
virtual const IScene_path * get_scene_path() const =0
Returns the scene path from the scene root to the intersected scene element.
virtual const mi::math::Color_struct & get_color() const =0
The hit point of the ray with the scene element may be associated with a color value.
virtual const mi::math::Matrix_struct< mi::Float32, 4, 4 > & get_transform() const =0
Returns the transformation matrix of the intersected scene element.
virtual mi::base::Uuid get_intersection_info_class() const =0
Represents the interface class of the intersection info result.
virtual mi::neuraylib::Tag_struct get_scene_element() const =0
Returns the intersected scene element's tag.
virtual mi::Sint32 get_scene_element_sub_index() const =0
Returns the sub index that specifies which of the sub elements was hit, if any.
Defines a list of pick results.
Definition: iscene_query_results.h:232
virtual nv::index::IScene_pick_results * get(mi::Size index) const =0
Returns the pick results at the given position in the list.
virtual mi::Size size() const =0
Returns the number of pick results in this list.
Interface class that returns all results of a pick operation in front-to-back order.
Definition: iscene_query_results.h:199
virtual mi::Uint32 get_nb_results() const =0
Returns the number of intersections between the scene elements in the scene and the cast ray.
virtual IScene_pick_result * get_result(mi::Uint32 index) const =0
Returns a single pick result determined by the given index that corresponds to the depth ordering.
virtual mi::Size get_viewport_index() const =0
Returns which viewport the pick results come from.
Interfaces for data samples returned for example by IScene_pick_results instances.
Common namespace for all NVIDIA APIs.
Definition: iindex.h:349