neuray API Programmer's Manual

ilight.h File Reference

Description

Scene element Light.

Code Example

ilight.h

‎/***************************************************************************************************
 * Copyright 2023 NVIDIA Corporation. All rights reserved.
 **************************************************************************************************/

#ifndef MI_NEURAYLIB_ILIGHT_H
#define MI_NEURAYLIB_ILIGHT_H

#include <mi/neuraylib/iscene_element.h>
#include <mi/neuraylib/typedefs.h>

namespace mi {

namespace neuraylib {




enum Light_type {
    LIGHT_POINT       = 0,       
    LIGHT_INFINITE    = 2,       
    LIGHT_FORCE_32_BIT = 0xffffffffU
};

mi_static_assert( sizeof( Light_type) == sizeof( Uint32));

enum Light_area_shape {
    AREA_NONE         = 0,       
    AREA_RECTANGLE    = 1,       
    AREA_DISC         = 2,       
    AREA_SPHERE       = 3,       
    AREA_CYLINDER     = 4,       
    N_AREA_TYPES,
    AREA_FORCE_32_BIT = 0xffffffffU
};

mi_static_assert( sizeof( Light_area_shape) == sizeof( Uint32));

class ILight :
    public base::Interface_declare<0xc9a437cf,0x6d47,0x4666,0x9c,0xf6,0xa4,0x3f,0x50,0xe8,0x0b,0x90,
                                   neuraylib::IScene_element>
{
public:


    virtual Light_type 
               get_type() const = 0;

    virtual void set_type(Light_type type) = 0;

    virtual Light_area_shape 
               get_area_shape() const = 0;

    virtual void set_area_shape(Light_area_shape light_area_shape) = 0;

    virtual Float64 
               get_area_radius() const = 0;

    virtual void set_area_radius(Float64 radius) = 0;

    virtual Float64 
               get_area_size_x() const = 0;

    virtual void set_area_size_x(Float64 size_x) = 0;

    virtual Float64 
               get_area_size_y() const = 0;

    virtual void set_area_size_y(Float64 size_y) = 0;




    virtual Bbox3_struct 
               get_bbox() const = 0;

    virtual Bbox3_struct 
               get_tight_bbox( const Float64_4_4_struct& transformation_matrix) const = 0;

};
 // end group mi_neuray_leaf_nodes

} // namespace neuraylib

} // namespace mi

#endif // MI_NEURAYLIB_ILIGHT_H

Namespaces

namespace 
Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
namespace 
Namespace for the neuray API. More...

Classes

class 
Point, spot, directional and area lighting. More...

Enumerations

enum  {AREA_NONE = 0, AREA_RECTANGLE = 1, AREA_DISC = 2, AREA_SPHERE = 3, AREA_CYLINDER = 4, N_AREA_TYPES, AREA_FORCE_32_BIT = 0xffffffffU }
Supported area light shapes. More...
enum  {LIGHT_POINT = 0, LIGHT_INFINITE = 2, LIGHT_FORCE_32_BIT = 0xffffffffU }
Supported light types. More...