MDL SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::IBsdf_buffer Class Referenceabstract

Abstract interface for a buffer of BSDF values. More...

#include <ibsdf_isotropic_data.h>

Inheritance diagram for mi::neuraylib::IBsdf_buffer:

Public Member Functions

virtual const Float32get_data () const =0
 Returns the memory block containing the actual BSDF values. More...
 
- Public Member Functions inherited from mi::base::IInterface
virtual Uint32 retain () const =0
 Increments the reference count. More...
 
virtual Uint32 release () const =0
 Decrements the reference count. More...
 
virtual const IInterfaceget_interface (const Uuid &interface_id) const =0
 Acquires a const interface from another. More...
 
template<class T>
const T * get_interface () const
 Acquires a const interface from another. More...
 
virtual IInterfaceget_interface (const Uuid &interface_id)=0
 Acquires a mutable interface from another. More...
 
template<class T>
T * get_interface ()
 Acquires a mutable interface from another. More...
 
virtual Uuid get_iid () const =0
 Returns the interface ID of the most derived interface. More...
 

Additional Inherited Members

- Public Types inherited from mi::base::Interface_declare< 0xdf3e6121, ... >
typedef Interface_declare< id1, ... > Self
 Own type. More...
 
typedef Uuid_t< id1, ... > IID
 Declares the interface ID (IID) of this interface. More...
 
- Public Types inherited from mi::base::IInterface
typedef Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> IID
 Declares the interface ID (IID) of this interface. More...
 
- Static Public Member Functions inherited from mi::base::Interface_declare< 0xdf3e6121, ... >
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
 
- Static Public Member Functions inherited from mi::base::IInterface
static bool compare_iid (const Uuid &iid)
 Compares the interface ID iid against the interface ID of this interface. More...
 

Detailed Description

Abstract interface for a buffer of BSDF values.

See also
mi::neuraylib::IBsdf_measurement and mi::neuraylib::IBsdf_isotropic_data for related interfaces
mi::neuraylib::Bsdf_buffer for an example implementation of this interface

Member Function Documentation

 get_data()

virtual const Float32 * mi::neuraylib::IBsdf_buffer::get_data ( ) const
pure virtual

Returns the memory block containing the actual BSDF values.

The size of the array is given by

res_theta^2 * res_phi * factor

where res_phi is the value returned by mi::neuraylib::IBsdf_isotropic_data::get_resolution_phi(), res_theta is the value returned by mi::neuraylib::IBsdf_isotropic_data::get_resolution_theta(), and factor is 1 if mi::neuraylib::IBsdf_isotropic_data::get_type() returns mi::neuraylib::BSDF_SCALAR and 3 otherwise.

The index of the (first) element for a particular triple (index_theta_in, index_theta_out, index_phi_in) is given by

factor * (index_theta_in * (res_phi * res_theta) + index_theta_out * res_phi + index_phi)

The pointer returned by this method has to be valid for the lifetime of this interface.

Implemented in mi::neuraylib::Bsdf_buffer.