neuray Services API Programmer's Manual

itonemap.h File Reference

Description

neuray services tonemapping

Code Example

itonemap.h

‎/******************************************************************************
 * Copyright 2010-2020 MIGENIUS PTY LTD, Australia. All rights reserved.
 *
 * Portions Copyright 1986-2011 by mental images GmbH, Fasanenstr. 81,
 * D-10623 Berlin, Germany. All rights reserved.
 *****************************************************************************/
//*****************************************************************************
#if !defined(MI_NSERVICES_ITONEMAP_H)
#define MI_NSERVICES_ITONEMAP_H

#include <mi/base/interface_declare.h>
#include <mi/neuraylib/iuser_class.h>


namespace mi{
namespace neuraylib{
class IAttribute_set;
class IPlugin_api;
class ICanvas;
class ITransaction;
}
namespace nservices {

class ITonemap_context : public 
    mi::base::Interface_declare<0xf3527e90,0x19fc,0x4270,0x82,0xc9,0x08,0x59,0x19,0x6a,0x3e,0x90>
{
public:
    virtual mi::neuraylib::ITransaction* get_execution_transaction() = 0 ;

    virtual mi::neuraylib::ITransaction* get_user_state_transaction() = 0;

    virtual mi::neuraylib::IPlugin_api* get_plugin_api() const = 0;

    virtual const mi::neuraylib::IAttribute_set* get_attributes() const = 0;

    virtual const char* get_attributes_name() const = 0;

    virtual mi::neuraylib::ICanvas* get_canvas() const = 0;   


};


class ITonemap_operator : public
    mi::base::Interface_declare<0x9a397dd0,0xfe77,0x41b9,0xa1,0x76,0xb7,0xd8,0x80,0xa6,0x9e,0x2a, 
                                mi::neuraylib::IUser_class>
{
public:
    virtual mi::Sint32 
               init(ITonemap_context *tonemap_context) = 0;

    virtual void finish(ITonemap_context *tonemap_context) = 0;

    virtual bool full_control() const = 0;

    virtual void process_pixel(ITonemap_context *tonemap_context, 
                               const mi::Float32 *color_in,
                               mi::Float32 *color_out,
                               mi::Uint32 x_coord, 
                               mi::Uint32 y_coord) = 0;

    virtual void process(ITonemap_context *tonemap_context) = 0;

};

template <Uint32 i_id1, Uint16 i_id2, Uint16 i_id3
, Uint8 i_id4, Uint8 i_id5, Uint8 i_id6, Uint8 i_id7
, Uint8 i_id8, Uint8 i_id9, Uint8 i_id10, Uint8 i_id11
, class I = ITonemap_operator>
class Tonemap_operator :public 
mi::neuraylib::User_class<i_id1,i_id2,i_id3,i_id4,i_id5,i_id6,i_id7,i_id8,i_id9,i_id10,i_id11,I>
{
public:
    virtual mi::neuraylib::IUser_class* copy() const
    {
        return NULL;
    }

    virtual mi::IArray* get_references( mi::neuraylib::ITransaction* transaction) const
    {
        return NULL;
    }

   
    virtual void serialize(
        mi::neuraylib::ISerializer* serializer) const
    {

    }

    virtual void deserialize(
        mi::neuraylib::IDeserializer* deserializer)
    {
        
    }
}; 
 // end group mi_nservices_tonemapping

} //end namespace nservices

}//end namespace mi
#endif

Namespaces

namespace mi
namespace mi::neuraylib
namespace 
Namespace for the neuray Services API. More...

Classes

class 
Defines a context in which a tonemapping operation is performed. More...
class 
Provides a contract for tone mapping implementations. More...
class 
This mixin class can be used to implement the minservices::ITonemap_operator interface. More...