7#ifndef MI_NEURAYLIB_IINSTANCE_H
8#define MI_NEURAYLIB_IINSTANCE_H
29 TRANSFORMATION_TYPE_FORCE_32_BIT = 0xffffffffU
115 public base::Interface_declare<0x11b46e5a,0x577b,0x4767,0x8b,0x35,0x88,0xd5,0xa3,0x3e,0xd0,0xe9,
116 neuraylib::IScene_element>
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:117
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.
#define mi_static_assert(expr)
Compile time assertion that raises a compilation error if the constant expression expr evaluates to f...
Definition: assert.h:65
unsigned int Uint32
32-bit unsigned integer.
Definition: types.h:49
Uint64 Size
Unsigned integral type that is large enough to hold the size of all types.
Definition: types.h:112
double Float64
64-bit float.
Definition: types.h:52
signed int Sint32
32-bit signed integer.
Definition: types.h:46
Transformation_type
The four different types of elementary transformations.
Definition: iinstance.h:24
@ TRANSLATION
translation
Definition: iinstance.h:27
@ MATRIX
general transformation
Definition: iinstance.h:28
@ ROTATION
rotation
Definition: iinstance.h:26
@ SCALING
scaling
Definition: iinstance.h:25
Base class for all scene elements.
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH.
Definition: neuraylib.h:179
Storage class for a NxM-dimensional matrix class template of fixed dimensions.
Definition: matrix.h:90
Typedefs for types from the math API.