neuray API Programmer's Manual

imdl_configuration.h File Reference

Description

API component for MDL related settings.

Code Example

imdl_configuration.h

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

#ifndef MI_NEURAYLIB_IMDL_CONFIGURATION_H
#define MI_NEURAYLIB_IMDL_CONFIGURATION_H

#include <mi/base/interface_declare.h>
#include <mi/neuraylib/itype.h>
#include <mi/neuraylib/version.h>

namespace mi {

class IString;

namespace base { class ILogger; }

namespace neuraylib {

class IMdl_entity_resolver;


class IMdl_configuration : public
    mi::base::Interface_declare<0x2657ec0b,0x8a40,0x46c5,0xa8,0x3f,0x2b,0xb5,0x72,0xa0,0x8b,0x9c>
{
public:



    virtual Sint32 
               add_mdl_path( const char* path) = 0;

    virtual Sint32 
               remove_mdl_path( const char* path) = 0;

    virtual void clear_mdl_paths() = 0;

    virtual Size 
               get_mdl_paths_length() const = 0;

    virtual const IString* get_mdl_path( Size index) const = 0;

    virtual Size 
               get_mdl_system_paths_length() const = 0;

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

    inline void add_mdl_system_paths()
    {
        for( mi::Size i = 0, n = get_mdl_system_paths_length(); i < n; ++i)
            add_mdl_path( get_mdl_system_path( i));
    }

    virtual Size 
               get_mdl_user_paths_length() const = 0;

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

    inline void add_mdl_user_paths()
    {
        for( mi::Size i = 0, n = get_mdl_user_paths_length(); i < n; ++i)
            add_mdl_path( get_mdl_user_path( i));
    }




    virtual Sint32 
               add_resource_path( const char* path) = 0;

    virtual Sint32 
               remove_resource_path( const char* path) = 0;

    virtual void clear_resource_paths() = 0;

    virtual Size 
               get_resource_paths_length() const = 0;

    virtual const IString* get_resource_path( Size index) const = 0;




    virtual Sint32 
               set_implicit_cast_enabled( bool value) = 0;

    virtual bool get_implicit_cast_enabled() const = 0;

    //        is no guarantee that the name of a particular let expression is exposed.
    virtual Sint32 
               set_expose_names_of_let_expressions( bool value) = 0;

    virtual bool get_expose_names_of_let_expressions() const = 0;

    virtual Sint32 
               set_simple_glossy_bsdf_legacy_enabled( bool value) = 0;

    virtual bool get_simple_glossy_bsdf_legacy_enabled() const = 0;




    virtual IMdl_entity_resolver* get_entity_resolver() const = 0;

    virtual void set_entity_resolver( IMdl_entity_resolver* resolver) = 0;


    virtual void MI_NEURAYLIB_DEPRECATED_METHOD_14_1(set_logger)( base::ILogger* logger) = 0;

    virtual base::ILogger* MI_NEURAYLIB_DEPRECATED_METHOD_14_1(get_logger)() = 0;



    virtual Sint32 
               set_material_ior_frequency( IType::Modifier frequency_qualifier) = 0;

    virtual IType::Modifier 
               get_material_ior_frequency() const = 0;

};
 // end group mi_neuray_configuration

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_IMDL_CONFIGURATION_H

Namespaces

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

Classes

class 
This interface can be used to query and change the MDL configuration. More...