Iray SDK API nvidia_logo_transpbg.gif Up
mi::neuraylib::ILight Class Referenceabstract

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

#include <ilight.h>

Inheritance diagram for mi::neuraylib::ILight:

Public Member Functions

Light properties
virtual Light_type get_type () const =0
 Returns the light type. More...
 
virtual void set_type (Light_type type)=0
 Sets the light type. More...
 
virtual Light_area_shape get_area_shape () const =0
 Returns the area light shape. More...
 
virtual void set_area_shape (Light_area_shape light_area_shape)=0
 Sets the area light shape. More...
 
virtual Float64 get_area_radius () const =0
 Returns the radius of the area for area lights. More...
 
virtual void set_area_radius (Float64 radius)=0
 Sets the radius of the area for area lights. More...
 
virtual Float64 get_area_size_x () const =0
 Returns the size of the area in x direction for area lights. More...
 
virtual void set_area_size_x (Float64 size_x)=0
 Sets the size of the area in x direction for area lights. More...
 
virtual Float64 get_area_size_y () const =0
 Returns the size of the area in y direction for area lights. More...
 
virtual void set_area_size_y (Float64 size_y)=0
 Sets the size of the area in y direction for area light types. More...
 
Methods related to the bounding box
virtual Bbox3_struct get_bbox () const =0
 Returns the bounding box of the light. More...
 
virtual Bbox3_struct get_tight_bbox (const Float64_4_4_struct &transformation_matrix) const =0
 Returns the bounding box of the light after transformation. More...
 
- Public Member Functions inherited from mi::neuraylib::IScene_element
virtual Element_type get_element_type () const =0
 Indicates the actual scene element represented by interfaces derived from this interface. More...
 
- Public Member Functions inherited from mi::neuraylib::IAttribute_set
virtual IDatacreate_attribute (const char *name, const char *type)=0
 Creates a new attribute name of the type type. More...
 
template<class T>
T * create_attribute (const char *name, const char *type)
 Creates a new attribute name of the type type. More...
 
template<class T>
T * create_attribute (const char *name)
 Creates a new attribute name of the type T. More...
 
virtual bool destroy_attribute (const char *name)=0
 Destroys the attribute name. More...
 
virtual const IDataaccess_attribute (const char *name) const =0
 Returns a const pointer to the attribute name. More...
 
template<class T>
const T * access_attribute (const char *name) const
 Returns a const pointer to the attribute name. More...
 
virtual IDataedit_attribute (const char *name)=0
 Returns a mutable pointer to the attribute name. More...
 
template<class T>
T * edit_attribute (const char *name)
 Returns a mutable pointer to the attribute name. More...
 
virtual bool is_attribute (const char *name) const =0
 Indicates existence of an attribute. More...
 
virtual const char * get_attribute_type_name (const char *name) const =0
 Returns the type of an attribute. More...
 
virtual Sint32 set_attribute_propagation (const char *name, Propagation_type value)=0
 Sets the propagation type of the attribute name. More...
 
virtual Propagation_type get_attribute_propagation (const char *name) const =0
 Returns the propagation type of the attribute name. More...
 
virtual const char * enumerate_attributes (Sint32 index) const =0
 Returns the name of the attribute indicated by index. 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< 0xc9a437cf, ... >
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::Interface_declare< 0x8a2a4da9, ... >
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::Interface_declare< 0x1bcb8d48, ... >
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< 0xc9a437cf, ... >
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::Interface_declare< 0x8a2a4da9, ... >
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::Interface_declare< 0x1bcb8d48, ... >
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

Point, spot, directional and area lighting.

All lights are positioned at the origin of the local light space and point down the negative z -axis, like the camera. This differs from some traditional scene description formats, in which a light can have an origin, a direction, and possibly other orientation vectors. Instead, the Iray SDK uses transformations to express these properties.

For directional lights, the (transformed) position is irrelevant. The traditional use of a directional light is as an approximation of the rays of the sun, which is at such a great distance to the earth that at human scale the light rays are effectively parallel.

In addition, the Iray SDK provides the ability to specify an emission distribution function in a material. In this way, any object can be a source of light emission, but may also have reflective and transmissive properties as well.

See also "Environment dome".

See also
mi::neuraylib::Light_type, mi::neuraylib::Light_area_shape

Member Function Documentation

 get_area_radius()

virtual Float64 mi::neuraylib::ILight::get_area_radius ( ) const
pure virtual

Returns the radius of the area for area lights.

This value is only meaningful for lights of type mi::neuraylib::AREA_DISC, mi::neuraylib::AREA_SPHERE, and mi::neuraylib::AREA_CYLINDER.

 get_area_shape()

virtual Light_area_shape mi::neuraylib::ILight::get_area_shape ( ) const
pure virtual

Returns the area light shape.

 get_area_size_x()

virtual Float64 mi::neuraylib::ILight::get_area_size_x ( ) const
pure virtual

Returns the size of the area in x direction for area lights.

This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE and mi::neuraylib::AREA_CYLINDER. For cylindrical area lights, this value is half of the height of the cylinder.

 get_area_size_y()

virtual Float64 mi::neuraylib::ILight::get_area_size_y ( ) const
pure virtual

Returns the size of the area in y direction for area lights.

This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE.

 get_bbox()

virtual Bbox3_struct mi::neuraylib::ILight::get_bbox ( ) const
pure virtual

Returns the bounding box of the light.

Note
For infinite lights, an empty bounding box is returned.

 get_tight_bbox()

virtual Bbox3_struct mi::neuraylib::ILight::get_tight_bbox ( const Float64_4_4_struct transformation_matrix) const
pure virtual

Returns the bounding box of the light after transformation.

Note
For infinite lights, an empty bounding box is returned.
Parameters
transformation_matrixThe world-to-object space transformation matrix that is applied to the object before the bounding box is computed.

 get_type()

virtual Light_type mi::neuraylib::ILight::get_type ( ) const
pure virtual

Returns the light type.

 set_area_radius()

virtual void mi::neuraylib::ILight::set_area_radius ( Float64  radius)
pure virtual

Sets the radius of the area for area lights.

This value is only meaningful for lights of type mi::neuraylib::AREA_DISC, mi::neuraylib::AREA_SPHERE, and mi::neuraylib::AREA_CYLINDER.

 set_area_shape()

virtual void mi::neuraylib::ILight::set_area_shape ( Light_area_shape  light_area_shape)
pure virtual

Sets the area light shape.

 set_area_size_x()

virtual void mi::neuraylib::ILight::set_area_size_x ( Float64  size_x)
pure virtual

Sets the size of the area in x direction for area lights.

This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE and mi::neuraylib::AREA_CYLINDER. For cylindrical area lights, this value is half of the height of the cylinder.

 set_area_size_y()

virtual void mi::neuraylib::ILight::set_area_size_y ( Float64  size_y)
pure virtual

Sets the size of the area in y direction for area light types.

This value is only meaningful for lights of type mi::neuraylib::AREA_RECTANGLE.

 set_type()

virtual void mi::neuraylib::ILight::set_type ( Light_type  type)
pure virtual

Sets the light type.