Example implementation of the abstract interface mi::neuraylib::IBsdf_isotropic_data. More...
#include <bsdf_isotropic_data.h>
Public Member Functions | |
Bsdf_isotropic_data (Uint32 resolution_theta, Uint32 resolution_phi, Bsdf_type type) | |
Constructor. More... | |
Uint32 | get_resolution_theta () const override |
Returns the number of values in theta direction. More... | |
Uint32 | get_resolution_phi () const override |
Returns the number of values in phi direction. More... | |
Bsdf_type | get_type () const override |
Returns the type of the values. More... | |
const Bsdf_buffer * | get_bsdf_buffer () const override |
Returns the buffer containing the values (const). More... | |
Bsdf_buffer * | get_bsdf_buffer () |
Returns the buffer containing the values (mutable). More... | |
Public Member Functions inherited from mi::base::Interface_implement< neuraylib::IBsdf_isotropic_data > | |
Interface_implement (Uint32 initial=1) | |
Constructor. More... | |
Interface_implement (const Interface_implement< neuraylib::IBsdf_isotropic_data > &other) | |
Copy constructor. More... | |
Interface_implement (Interface_implement &&other) | |
Move constructor. More... | |
Interface_implement< neuraylib::IBsdf_isotropic_data > & | operator= (const Interface_implement< neuraylib::IBsdf_isotropic_data > &other) |
Assignment operator. More... | |
Interface_implement & | operator= (Interface_implement &&other) |
Move assignment. More... | |
Uint32 | retain () const override |
Increments the reference count. More... | |
Uint32 | release () const override |
Decrements the reference count. More... | |
const IInterface * | get_interface (const Uuid &interface_id) const override |
Acquires a const interface. More... | |
IInterface * | get_interface (const Uuid &interface_id) override |
Acquires a mutable interface. More... | |
Uuid | get_iid () const override |
Returns the interface ID of the most derived interface. More... | |
virtual Uint32 | get_resolution_theta () const =0 |
Returns the number of values in theta direction. More... | |
virtual Uint32 | get_resolution_phi () const =0 |
Returns the number of values in phi direction. More... | |
virtual Bsdf_type | get_type () const =0 |
Returns the type of the values. More... | |
virtual const IBsdf_buffer * | get_bsdf_buffer () const =0 |
Returns the buffer containing the actual 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 IInterface * | get_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 IInterface * | get_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< 0x23fd6d83, ... > | |
using | Self = Interface_declare< id1, ... > |
Own type. More... | |
using | IID = Uuid_t< id1, ... > |
Declares the interface ID (IID) of this interface. More... | |
Public Types inherited from mi::base::IInterface | |
using | IID = Uuid_t<0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0> |
Declares the interface ID (IID) of this interface. More... | |
Static Public Member Functions inherited from mi::base::Interface_declare< 0x23fd6d83, ... > | |
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... | |
Protected Member Functions inherited from mi::base::Interface_implement< neuraylib::IBsdf_isotropic_data > | |
Atom32 & | refcount () const |
Get the current refcount. More... | |
Example implementation of the abstract interface mi::neuraylib::IBsdf_isotropic_data.
The resolution and type of the BSDF data are specified in the constructor and cannot be changed later. This simple implementation creates (the interface owning) the memory block holding all values in its constructor and keeps it for its lifetime. More advanced implementations might convert the data from other representations on the fly in get_bsdf_buffer() and might return a temporary instance of mi::neuraylib::IBsdf_buffer without keeping a reference to that instance.
|
inline |
Constructor.
|
inline |
Returns the buffer containing the values (mutable).
|
inlineoverridevirtual |
Returns the buffer containing the values (const).
Implements mi::neuraylib::IBsdf_isotropic_data.
|
inlineoverridevirtual |
Returns the number of values in phi direction.
Implements mi::neuraylib::IBsdf_isotropic_data.
|
inlineoverridevirtual |
Returns the number of values in theta direction.
Implements mi::neuraylib::IBsdf_isotropic_data.
|
inlineoverridevirtual |
Returns the type of the values.
Implements mi::neuraylib::IBsdf_isotropic_data.