NVIDIA Iray API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
iinstance.h
Go to the documentation of this file.
1
//*****************************************************************************
2
// Copyright 1986, 2014 NVIDIA Corporation. All rights reserved.
3
//*****************************************************************************
6
//*****************************************************************************
7
8
#ifndef MI_NEURAYLIB_IINSTANCE_H
9
#define MI_NEURAYLIB_IINSTANCE_H
10
11
#include <
mi/neuraylib/iscene_element.h
>
12
#include <
mi/neuraylib/typedefs.h
>
13
#include <
mi/neuraylib/version.h
>
14
15
namespace
mi {
16
21
enum
Transformation_type
{
25
SCALING
,
26
ROTATION
,
27
TRANSLATION
,
28
MATRIX
,
29
TRANSFORMATION_TYPE_FORCE_32_BIT = 0xffffffffU
30
};
31
32
mi_static_assert
(
sizeof
(
Transformation_type
) ==
sizeof
(
Uint32
));
33
98
class
IInstance
:
99
public
base::Interface_declare
<0x11b46e5a,0x577b,0x4767,0x8b,0x35,0x88,0xd5,0xa3,0x3e,0xd0,0xe9,
100
IScene_element>
101
{
102
public
:
114
virtual
Sint32
attach
(
const
char
* scene_element) = 0;
115
121
virtual
void
detach
() = 0;
122
126
virtual
const
char
*
get_item
()
const
= 0;
127
129
130
132
virtual
bool
srt_mode
()
const
= 0;
133
135
137
140
virtual
void
set_matrix
(
const
Float64_4_4_struct
& matrix) = 0;
141
146
virtual
const
Float64_4_4_struct
&
get_matrix
()
const
= 0;
147
149
151
159
virtual
void
resize_time_slots
(
Size
count) = 0;
160
162
virtual
Size
time_slots_size
()
const
= 0;
163
178
virtual
Sint32
set_time_value
(
Size
time_index,
Float64
value) = 0;
179
188
virtual
Sint32
get_time_value
(
Size
time_index,
Float64
& value)
const
= 0;
189
196
virtual
void
resize_transformation_sequences
(
Size
count) = 0;
197
199
virtual
Size
transformation_sequences_size
()
const
= 0;
200
214
virtual
Sint32
set_transformation_type
(
Size
sequence_index,
Transformation_type
type) = 0;
215
224
virtual
Sint32
get_transformation_type
(
225
Size
sequence_index,
Transformation_type
& type)
const
= 0;
226
241
virtual
Sint32
set_transformation_data
(
242
Size
time_index,
Size
sequence_index,
const
Float64
* data) = 0;
243
258
virtual
Sint32
get_transformation_data
(
259
Size
time_index,
Size
sequence_index,
Float64
* data)
const
= 0;
260
262
264
279
virtual
Float64_4_4_struct
evaluate
(
Float64
time = 0.0)
const
= 0;
280
282
283
virtual
const
base::IInterface
* MI_NEURAYLIB_DEPRECATED_METHOD_5_0(access_item)()
const
= 0;
284
285
#ifdef MI_NEURAYLIB_DEPRECATED_5_0
286
template
<
class
T>
287
const
T* access_item()
const
288
{
289
const
base::IInterface
* ptr_iinterface = access_item();
290
if
( !ptr_iinterface)
291
return
0;
292
const
T* ptr_T =
static_cast<
const
T*
>
( ptr_iinterface->
get_interface
(
typename
T::IID()));
293
ptr_iinterface->
release
();
294
return
ptr_T;
295
}
296
#endif
297
298
virtual
base::IInterface
* MI_NEURAYLIB_DEPRECATED_METHOD_5_0(edit_item)()
const
= 0;
299
300
#ifdef MI_NEURAYLIB_DEPRECATED_5_0
301
template
<
class
T>
302
T* edit_item()
const
303
{
304
base::IInterface
* ptr_iinterface = edit_item();
305
if
( !ptr_iinterface)
306
return
0;
307
T* ptr_T =
static_cast<
T*
>
( ptr_iinterface->
get_interface
(
typename
T::IID()));
308
ptr_iinterface->
release
();
309
return
ptr_T;
310
}
311
#endif
312
};
313
// end group mi_neuray_scene_graph_structure
315
316
}
// namespace mi
317
318
#endif // MI_NEURAYLIB_IINSTANCE_H
mi
neuraylib
iinstance.h
Generated on Tue Aug 12 2014 15:28:35. Build 221133.3991, Doxygen 1.8.4