idata.h File Reference
Description
Types.
Code Example
idata.h
/***************************************************************************************************
* Copyright 2024 NVIDIA Corporation. All rights reserved.
**************************************************************************************************/
#ifndef MI_NEURAYLIB_IDATA_H
#define MI_NEURAYLIB_IDATA_H
#include <mi/base/interface_declare.h>
namespace mi {
class IData :
public base::Interface_declare<0x2e5f84bc,0x783a,0x4551,0x9f,0xca,0x72,0x2f,0xb8,0x38,0xc4,0x7c>
{
public:
virtual const char* get_type_name() const = 0;
};
// end group mi_neuray_types
class IData_simple :
public base::Interface_declare<0xc33c5a05,0xe7a5,0x4154,0xb8,0x87,0xee,0x1f,0x4d,0x5b,0x02,0x02,
IData>
{
};
// end group mi_neuray_simple_types
class IData_collection :
public base::Interface_declare<0x1bb2be0f,0x0dc6,0x44b2,0x93,0xb9,0xd1,0xba,0x6a,0x31,0x88,0x1c,
IData>
{
public:
virtual Size
get_length() const = 0;
virtual const char* get_key( Size index) const = 0;
virtual bool has_key( const char* key) const = 0;
virtual const base::IInterface* get_value( const char* key) const = 0;
template<class T>
const T* get_value( const char* key) const
{
const base::IInterface* ptr_iinterface = get_value( key);
if ( !ptr_iinterface)
return 0;
const T* ptr_T = static_cast<const T*>( ptr_iinterface->get_interface( typename T::IID()));
ptr_iinterface->release();
return ptr_T;
}
virtual base::IInterface* get_value( const char* key) = 0;
template<class T>
T* get_value( const char* key)
{
base::IInterface* ptr_iinterface = get_value( key);
if ( !ptr_iinterface)
return 0;
T* ptr_T = static_cast<T*>( ptr_iinterface->get_interface( typename T::IID()));
ptr_iinterface->release();
return ptr_T;
}
virtual const base::IInterface* get_value( Size index) const = 0;
template<class T>
const T* get_value( Size index) const
{
const base::IInterface* ptr_iinterface = get_value( index);
if ( !ptr_iinterface)
return 0;
const T* ptr_T = static_cast<const T*>( ptr_iinterface->get_interface( typename T::IID()));
ptr_iinterface->release();
return ptr_T;
}
virtual base::IInterface* get_value( Size index) = 0;
template<class T>
T* get_value( Size index)
{
base::IInterface* ptr_iinterface = get_value( index);
if ( !ptr_iinterface)
return 0;
T* ptr_T = static_cast<T*>( ptr_iinterface->get_interface( typename T::IID()));
ptr_iinterface->release();
return ptr_T;
}
virtual Sint32
set_value( const char* key, base::IInterface* value) = 0;
virtual Sint32
set_value( Size index, base::IInterface* value) = 0;
};
// end group mi_neuray_collections
class IVoid :
public base::Interface_declare<0x3142c0a4,0xa138,0x472f,0x85,0xe5,0xc0,0x13,0xfc,0xd1,0x04,0x6a,
IData_simple>
{
};
// end group mi_neuray_simple_types
} // namespace mi
#endif // MI_NEURAYLIB_IDATA_H
Namespaces
- namespace
- Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...