8 #ifndef MI_NEURAYLIB_MDL_DEFINITION_WRAPPER_H
9 #define MI_NEURAYLIB_MDL_DEFINITION_WRAPPER_H
30 class Mdl_definition_wrapper
169 const IAttribute_container* arguments = 0,
Sint32* errors = 0)
const;
196 if ( !ptr_iscene_element)
198 T* ptr_T =
static_cast<T*
>( ptr_iscene_element->
get_interface(
typename T::IID()));
210 MISTD::string m_name;
224 m_type = m_access.is_valid_interface()
225 ? m_access->get_element_type() :
static_cast<Element_type>( 0);
230 return m_access.is_valid_interface()
246 return md->get_name();
252 return fd->get_name();
264 return md->get_module();
270 return fd->get_module();
282 return md->get_parameter_count();
288 return fd->get_parameter_count();
300 return md->get_parameter_name( index);
306 return fd->get_parameter_name( index);
318 return md->get_parameter_type( parameter_name);
324 return fd->get_parameter_type( parameter_name);
336 return md->is_parameter_type_uniform( parameter_name);
342 return fd->is_parameter_type_uniform( parameter_name);
354 return md->get_argument_type( argument_name);
360 return fd->get_argument_type( argument_name);
376 return fd->get_return_type();
393 return fd->is_return_type_varying();
407 if( !argument.is_valid_interface())
410 return result == 0 ? 0 : -3;
417 if( !argument.is_valid_interface())
420 return result == 0 ? 0 : -3;
432 return md->get_annotations();
438 return fd->get_annotations();
445 const char* parameter_name)
const
451 return md->get_parameter_annotations( parameter_name);
457 return fd->get_parameter_annotations( parameter_name);
473 return fd->get_return_annotations();
487 return md->create_material_instance( arguments, errors);
491 Uint32 count = md->get_parameter_count();
492 for(
Uint32 i = 0; i < count; ++i) {
495 const char* name = md->get_parameter_name( i);
496 const char* type = md->get_argument_type( i);
498 local_arguments->create_attribute<
IAttachable>( name, type));
501 return md->create_material_instance( local_arguments.
get(), errors);
508 return fd->create_function_call( arguments, errors);
512 Uint32 count = fd->get_parameter_count();
513 for(
Uint32 i = 0; i < count; ++i) {
516 const char* name = fd->get_parameter_name( i);
517 const char* type = fd->get_argument_type( i);
519 local_arguments->create_attribute<
IAttachable>( name, type));
522 return fd->create_function_call( local_arguments.
get(), errors);
531 #endif // MI_NEURAYLIB_MDL_DEFINITION_WRAPPER_H