Iray SDK API nvidia_logo_transpbg.gif Up
iinstance.h
Go to the documentation of this file.
1/***************************************************************************************************
2 * Copyright 2025 NVIDIA Corporation. All rights reserved.
3 **************************************************************************************************/
6
7#ifndef MI_NEURAYLIB_IINSTANCE_H
8#define MI_NEURAYLIB_IINSTANCE_H
9
12#include <mi/neuraylib/version.h> // for MI_NEURAYLIB_DEPRECATED_ENUM_VALUE
13
14namespace mi {
15
16namespace neuraylib {
17
29 MATRIX
30 MI_NEURAYLIB_DEPRECATED_ENUM_VALUE(TRANSFORMATION_TYPE_FORCE_32_BIT, 0xffffffffU)
31};
32
114 public base::Interface_declare<0x11b46e5a,0x577b,0x4767,0x8b,0x35,0x88,0xd5,0xa3,0x3e,0xd0,0xe9,
115 neuraylib::IScene_element>
116{
117public:
139 virtual Sint32 attach( const char* scene_element) = 0;
140
146 virtual void detach() = 0;
147
151 virtual const char* get_item() const = 0;
152
154
155
157 virtual bool srt_mode() const = 0;
158
160
162
165 virtual void set_matrix( const Float64_4_4_struct& matrix) = 0;
166
171 virtual const Float64_4_4_struct& get_matrix() const = 0;
172
174
176
184 virtual void resize_time_slots( Size count) = 0;
185
187 virtual Size time_slots_size() const = 0;
188
204 virtual Sint32 set_time_value( Size time_index, Float64 value) = 0;
205
214 virtual Sint32 get_time_value( Size time_index, Float64& value) const = 0;
215
222 virtual void resize_transformation_sequences( Size count) = 0;
223
226
243 virtual Sint32 set_transformation_type( Size sequence_index, Transformation_type type) = 0;
244
254 Size sequence_index, Transformation_type& type) const = 0;
255
271 Size time_index, Size sequence_index, const Float64* data) = 0;
272
288 Size time_index, Size sequence_index, Float64* data) const = 0;
289
291
293
308 virtual Float64_4_4_struct evaluate( Float64 time = 0.0) const = 0;
309
311};
312 // end group mi_neuray_scene_graph_structure
314
315} // namespace neuraylib
316
317} // namespace mi
318
319#endif // MI_NEURAYLIB_IINSTANCE_H
Mixin class template for deriving new interface declarations.
Definition: interface_declare.h:43
An instance is a scene element that adds a transformation and attributes to another scene element.
Definition: iinstance.h:116
virtual Sint32 set_transformation_type(Size sequence_index, Transformation_type type)=0
Sets the transformation type of an elementary transformation for a given sequence index.
virtual Sint32 get_transformation_data(Size time_index, Size sequence_index, Float64 *data) const =0
Returns the transformation data of an elementary transformation for a given time slot and sequence in...
virtual Sint32 get_time_value(Size time_index, Float64 &value) const =0
Returns the time value associated with a particular time slot.
virtual Sint32 attach(const char *scene_element)=0
Attaches a scene element to the instance.
virtual void resize_time_slots(Size count)=0
Sets the number of time slots to count (and switches the transformation mode to SRT mode).
virtual Size time_slots_size() const =0
Returns the number of time slots (or 0 if the transformation mode is in matrix mode).
virtual void set_matrix(const Float64_4_4_struct &matrix)=0
Stores the given transformation matrix (and switches the transformation mode to matrix mode).
virtual const Float64_4_4_struct & get_matrix() const =0
Returns the stored transformation matrix if the transformation mode is matrix mode,...
virtual const char * get_item() const =0
Returns the name of the referenced element.
virtual Size transformation_sequences_size() const =0
Returns the number of transformations per time slot (or 0 if the object is in matrix mode).
virtual bool srt_mode() const =0
Indicates whether the transformation mode is SRT mode or matrix mode.
virtual Sint32 set_transformation_data(Size time_index, Size sequence_index, const Float64 *data)=0
Sets the transformation data of an elementary transformation for a given time slot and sequence index...
virtual Sint32 get_transformation_type(Size sequence_index, Transformation_type &type) const =0
Returns the transformation type of an elementary transformation for a given sequence index.
virtual void detach()=0
Detaches the scene element from the instance.
virtual void resize_transformation_sequences(Size count)=0
Sets the number of transformations per time slot to count (and switches the object to SRT mode).
virtual Float64_4_4_struct evaluate(Float64 time=0.0) const =0
Computes the effective transformation for a given time value.
virtual Sint32 set_time_value(Size time_index, Float64 value)=0
Sets the time value associated with a particular time slot.
int Sint32
32-bit signed integer.
Definition: types.h:46
double Float64
64-bit float.
Definition: types.h:52
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Transformation_type
The four different types of elementary transformations.
Definition: iinstance.h:25
@ TRANSLATION
translation
Definition: iinstance.h:28
@ MATRIX
general transformation
Definition: iinstance.h:29
@ ROTATION
rotation
Definition: iinstance.h:27
@ SCALING
scaling
Definition: iinstance.h:26
Base class for all scene elements.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
Major and minor version number and an optional qualifier.
Storage class for a NxM-dimensional matrix class template of fixed dimensions.
Definition: matrix.h:90
Typedefs for types from the math API.