SetMaterialColor (inline)

This function defines the color definition of any material instance.

Syntax

//
//   Linux, MacOS and non-Visual Studio Windows solutions (pure C++11 / C++98)
//


static  inline  void    SetMaterialColor(
                                int64_t             owlInstanceMaterial,
                                uint32_t            ambient,
                                uint32_t            diffuse,
                                uint32_t            emissive,
                                uint32_t            specular
                            )
{
    assert(IsInstanceOfClass(owlInstanceMaterial, "Material"));

    int64_t * values = nullptr, card = 0;
    GetObjectProperty(
            owlInstanceMaterial,
            GetPropertyByName(
                    GetModel(owlInstanceMaterial),
                    (char*) "color"
                ),
            &values,
            &card
        );

    SetColor(
            (card == 1) ?
                values[0] :
                CreateInstance(
                        GetClassByName(
                                GetModel(owlInstanceMaterial),
                                "color"
                            )
                    ),
            ambient,
            diffuse,
            emissive,
            specular
        );
}


//
//   Visual Studio for Windows
//


static  inline  void    SetMaterialColor(
                                __int64             owlInstanceMaterial,
                                unsigned __int32    ambient,
                                unsigned __int32    diffuse,
                                unsigned __int32    emissive,
                                unsigned __int32    specular
                            )
{
    assert(IsInstanceOfClass(owlInstanceMaterial, "Material"));

    int64_t * values = nullptr, card = 0;
    GetObjectProperty(
            owlInstanceMaterial,
            GetPropertyByName(
                    GetModel(owlInstanceMaterial),
                    (char*) "color"
                ),
            &values,
            &card
        );

    SetColor(
            (card == 1) ?
                values[0] :
                CreateInstance(
                        GetClassByName(
                                GetModel(owlInstanceMaterial),
                                "color"
                            )
                    ),
            ambient,
            diffuse,
            emissive,
            specular
        );
}
    

Property owlInstanceMaterial

Size: 64 bit / 8 byte (value)
The handle of the Material instance.

Property ambient

Size: 32 bit / 4 byte (value)
Defines the ambient color as a 32 bit value; the 32 bit value is build up as 8 : 8 : 8 : 8 bits representing RGBA (or sometimes called RGBW), i.e. Red, Green, Blue, Alpha (transparency) each defined as a unsigned char value 0 .. 255.

Property diffuse

Size: 32 bit / 4 byte (value)
Defines the diffuse color as a 32 bit value; the 32 bit value is build up as 8 : 8 : 8 : 8 bits representing RGBA (or sometimes called RGBW), i.e. Red, Green, Blue, Alpha (transparency) each defined as a unsigned char value 0 .. 255.

Property emissive

Size: 32 bit / 4 byte (value)
Defines the emissive color as a 32 bit value; the 32 bit value is build up as 8 : 8 : 8 : 8 bits representing RGBA (or sometimes called RGBW), i.e. Red, Green, Blue, Alpha (transparency) each defined as a unsigned char value 0 .. 255.

Property specular

Size: 32 bit / 4 byte (value)
Defines the specular color as a 32 bit value; the 32 bit value is build up as 8 : 8 : 8 : 8 bits representing RGBA (or sometimes called RGBW), i.e. Red, Green, Blue, Alpha (transparency) each defined as a unsigned char value 0 .. 255.