Class hierarchy Compound list File list Compound Members File Members

# Light Class Reference

Generic light. More...

Inherits Interface.

List of all members.

## Public Members

- virtual long status () = 0
    Returns non-zero if an error has occurred.

- virtual long update () = 0
    Update the light state, after changing some settings.

- virtual long setColor (float Red, float Green, float Blue) = 0
    Set the light's color.

- virtual long setRange (float Range) = 0
    Set the light's range.

- virtual long setAngles (float Theta, float Phi) = 0
    Set the spot light's angles.

## Related Functions

(Note that these are not member functions.)

- DLLExport Light* newSunLight (float x, float y, float z, float Red=0.7f, float Green=0.9f, float Blue=0.7f)
    Create a new light, which is a parallel point (like Sun Light) with a specified color.

- DLLExport Light* newSunLight (const Vector3D& Position, const fColor& Color=fColor(0.7f, 0.9f, 0.7f))
    Create a new light, which is a parallel point (like Sun Light) with a specified color.

- DLLExport Light* newSpotLight (const Vector3D& Position, const Vector3D& Direction, const fColor& Color=fColor(1.0f, 1.0f, 1.0f), const float Range=-1, const float Theta=PI/4, const float Phi=PI/2)
    Create a new light, which is a spot.

- DLLExport Light* newPointLight (const Vector3D& Position, const fColor& Color=fColor(1.0f, 1.0f, 1.0f), const float Range=-1)
    Create a new light, which is a point source of light.

- DLLExport Light* newDirectionLight (const Vector3D& Direction, const fColor& Color=fColor(1.0f, 1.0f, 1.0f))
    Create a new light, which radiates in a specific direction always.

## Detailed Description

Generic light.

## Member Function Documentation

### virtual long Light::status() = 0`[pure virtual]`

Returns non-zero if an error has occurred.

### virtual long Light::update() = 0`[pure virtual]`

Update the light state, after changing some settings.

### virtual long Light::setColor(float Red, float Green, float Blue) = 0`[pure virtual]`

Set the light's color.

A call to update() must be made to make the changes active.

### virtual long Light::setRange(float Range) = 0`[pure virtual]`

Set the light's range.

Valid for spot/point lights. A negative range indicates maximum range. A call to update() must be made to make the changes active.

### virtual long Light::setAngles(float Theta, float Phi) = 0`[pure virtual]`

Set the spot light's angles.

Theta is the inner cone, and Phi is the outer cone. They must conform to: 0 <= Theta <= Phi <= PI A call to update() must be made to make the changes active.

### DLLExport Light* newSunLight(float x, float y, float z, float Red=0.7f, float Green=0.9f, float Blue=0.7f)

Create a new light, which is a parallel point (like Sun Light) with a specified color.

This is similar to a point light, but requires less calculations by assuming great distance. Coordinates specify the initial position for the light.

### DLLExport Light* newSunLight(const Vector3D& Position, const fColor& Color=fColor(0.7f, 0.9f, 0.7f))

Create a new light, which is a parallel point (like Sun Light) with a specified color.

This is similar to a point light, but requires less calculations by assuming great distance. Coordinates specify the initial position for the light.

### DLLExport Light* newSpotLight(const Vector3D& Position, const Vector3D& Direction, const fColor& Color=fColor(1.0f, 1.0f, 1.0f), const float Range=-1, const float Theta=PI/4, const float Phi=PI/2)

Create a new light, which is a spot.

It has direction, range and angles for cones of effect.

### DLLExport Light* newPointLight(const Vector3D& Position, const fColor& Color=fColor(1.0f, 1.0f, 1.0f), const float Range=-1)

Create a new light, which is a point source of light.

It radiates light equally in all directions but may have a limited range. (-1 => infinite range)

### DLLExport Light* newDirectionLight(const Vector3D& Direction, const fColor& Color=fColor(1.0f, 1.0f, 1.0f))

Create a new light, which radiates in a specific direction always.

It doesn't have a specific source position and has unlimited range.

The documentation for this class was generated from the following file:

- CON_3D.h