neuray API Programmer's Manual

imodule.h File Reference

Description

Scene element Module.

Code Example

imodule.h

‎/***************************************************************************************************
 * Copyright 2024 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_IMODULE_H
#define MI_NEURAYLIB_IMODULE_H

#include <mi/neuraylib/iexpression.h>
#include <mi/neuraylib/iscene_element.h>

namespace mi {

class IArray;

namespace neuraylib {

class IAnnotation_block;
class IAnnotation_definition;
class IExpression_list;
class IMdl_execution_context;
class IType_list;
class IType_resource;
class IValue_list;
class IValue_resource;
 // end group mi_neuray_mdl_elements




class IModule : public
    mi::base::Interface_declare<0xe283b0ee,0x712b,0x4bdb,0xa2,0x13,0x32,0x77,0x7a,0x98,0xf9,0xa6,
                                neuraylib::IScene_element>
{
public:
    virtual const char* get_filename() const = 0;

    virtual const char* get_mdl_name() const = 0;

    virtual Size 
               get_mdl_package_component_count() const = 0;

    virtual const char* get_mdl_package_component_name( Size index) const = 0;

    virtual const char* get_mdl_simple_name() const = 0;

    virtual Mdl_version 
               get_mdl_version() const = 0;

    virtual Size 
               get_import_count() const = 0;

    virtual const char* get_import( Size index) const = 0;

    virtual const IStruct_category_list* get_struct_categories() const = 0;

    virtual const IType_list* get_types() const = 0;

    virtual const IValue_list* get_constants() const = 0;

    virtual Size 
               get_function_count() const = 0;

    virtual const char* get_function( Size index) const = 0;

    virtual Size 
               get_material_count() const = 0;

    virtual const char* get_material( Size index) const = 0;

    virtual Size 
               get_resources_count() const = 0;

    virtual const IValue_resource* get_resource( Size index) const = 0;

    virtual Size 
               get_annotation_definition_count() const = 0;

    virtual const IAnnotation_definition* get_annotation_definition( Size index) const = 0;

    virtual const IAnnotation_definition* get_annotation_definition( const char* name) const = 0;

    virtual const IAnnotation_block* get_annotations() const = 0;

    virtual bool is_standard_module() const = 0;

    virtual bool is_mdle_module() const = 0;

    virtual const IArray* get_function_overloads(
        const char* name, const IExpression_list* arguments = 0) const = 0;

    virtual const IArray* get_function_overloads(
        const char* name, const IArray* parameter_types) const = 0;

    virtual bool is_valid( IMdl_execution_context* context) const = 0;

    virtual Sint32 
               reload( bool recursive, IMdl_execution_context* context) = 0;

    virtual Sint32 
               reload_from_string(
        const char* module_source,
        bool recursive,
        IMdl_execution_context* context) = 0;
};
 // end group mi_neuray_mdl_elements

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_IMODULE_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
This interface represents an MDL module. More...