BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Attributes | List of all members
BALL::VIEW::LightSource Class Reference

#include <BALL/VIEW/KERNEL/stage.h>

Public Types

enum  Types { AMBIENT = 0, POSITIONAL, DIRECTIONAL }
 Enumeration of different types of lights. More...
 

Public Member Functions

virtual void dump (std::ostream &s=std::cout, Size depth=0) const
 
Constructors and Destructors
 LightSource ()
 
 LightSource (const LightSource &light_source)
 
virtual ~LightSource ()
 
Accessors
const Vector3getPosition () const
 Get position. More...
 
void setPosition (const Vector3 &position)
 Set position. More...
 
const Vector3getDirection () const
 Get the direction vector of the light. More...
 
void setDirection (const Vector3 &direction)
 Set the direction vector of the light. More...
 
const Vector3getAttenuation () const
 Get the attenuation parameters of the light. More...
 
void setAttenuation (const Vector3 &attenuation)
 Set the attenuation parameters of the light. More...
 
const AnglegetAngle () const
 Get the angle of the light cone. More...
 
void setAngle (const Angle &angle)
 Set the angle of the light cone. More...
 
float getIntensity () const
 
void setIntensity (float intensity)
 
const ColorRGBAgetColor () const
 
void setColor (const ColorRGBA &color)
 
Index getType () const
 
void setType (Types type)
 
void setRelativeToCamera (bool state)
 If set to true, the LightSource will move with the Camera. More...
 
bool isRelativeToCamera () const
 Test if a LightSource will move with the Camera. More...
 
LightSourceoperator= (const LightSource &light)
 
bool operator< (const LightSource &light) const
 needed for MSVC, dont use it otherwise! More...
 
Predicates
bool operator== (const LightSource &light_source) const
 

Protected Attributes

Vector3 position_
 
Vector3 direction_
 
Vector3 attenuation_
 
Vector3 r_position_
 
Vector3 r_direction_
 
Angle angle_
 
float intensity_
 
ColorRGBA color_
 
Index type_
 
bool relative_
 

Detailed Description

Light source is mainly used for Renderer classes (e.g. OpenGL and POVRay). Currently we support ambient, positional and directional light sources. The Position and direction of lights can be stored twofold:

Definition at line 45 of file stage.h.

Member Enumeration Documentation

Enumeration of different types of lights.

Enumerator
AMBIENT 

Ambient light doesn't come from any particular direction. All the objects in the scene will be lit up by the ambient light.

POSITIONAL 

Diffuse light is created the light source and is reflected off the surface of any object in the scene. Any surface of an object that the light hits directly will be very bright, and areas the light barely gets to will be darker.

DIRECTIONAL 

Definition at line 50 of file stage.h.

Constructor & Destructor Documentation

BALL::VIEW::LightSource::LightSource ( )

Constructor

BALL::VIEW::LightSource::LightSource ( const LightSource light_source)

Copy Constructor

virtual BALL::VIEW::LightSource::~LightSource ( )
inlinevirtual

Destructor

Definition at line 83 of file stage.h.

Member Function Documentation

virtual void BALL::VIEW::LightSource::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const
virtual

Internal value dump. Dump the current state of this instance to the output ostream s with dumping depth depth.

Parameters
soutput stream
depththe dumping depth
const Angle& BALL::VIEW::LightSource::getAngle ( ) const
inline

Get the angle of the light cone.

Definition at line 116 of file stage.h.

const Vector3& BALL::VIEW::LightSource::getAttenuation ( ) const
inline

Get the attenuation parameters of the light.

Definition at line 107 of file stage.h.

const ColorRGBA& BALL::VIEW::LightSource::getColor ( ) const
inline

Get the color of the light. The alpha channel of the color is ignored.

Definition at line 138 of file stage.h.

const Vector3& BALL::VIEW::LightSource::getDirection ( ) const
inline

Get the direction vector of the light.

Definition at line 99 of file stage.h.

float BALL::VIEW::LightSource::getIntensity ( ) const
inline

Get the light intensity. 0 is the minumum, 1 is the maximum.

Definition at line 126 of file stage.h.

const Vector3& BALL::VIEW::LightSource::getPosition ( ) const
inline

Get position.

Definition at line 91 of file stage.h.

Index BALL::VIEW::LightSource::getType ( ) const
inline

Get the type of the light.

See Also
Types

Definition at line 150 of file stage.h.

bool BALL::VIEW::LightSource::isRelativeToCamera ( ) const
inline

Test if a LightSource will move with the Camera.

Definition at line 164 of file stage.h.

bool BALL::VIEW::LightSource::operator< ( const LightSource light) const

needed for MSVC, dont use it otherwise!

LightSource& BALL::VIEW::LightSource::operator= ( const LightSource light)
bool BALL::VIEW::LightSource::operator== ( const LightSource light_source) const
void BALL::VIEW::LightSource::setAngle ( const Angle angle)
inline

Set the angle of the light cone.

Definition at line 120 of file stage.h.

void BALL::VIEW::LightSource::setAttenuation ( const Vector3 attenuation)
inline

Set the attenuation parameters of the light.

Definition at line 111 of file stage.h.

void BALL::VIEW::LightSource::setColor ( const ColorRGBA color)
inline

Set the color of the light. The alpha channel of the color is ignored.

Definition at line 144 of file stage.h.

void BALL::VIEW::LightSource::setDirection ( const Vector3 direction)
inline

Set the direction vector of the light.

Definition at line 103 of file stage.h.

void BALL::VIEW::LightSource::setIntensity ( float  intensity)
inline

Set the intensity. 0 is the minumum, 1 is the maximum.

Definition at line 132 of file stage.h.

void BALL::VIEW::LightSource::setPosition ( const Vector3 position)
inline

Set position.

Definition at line 95 of file stage.h.

void BALL::VIEW::LightSource::setRelativeToCamera ( bool  state)
inline

If set to true, the LightSource will move with the Camera.

Definition at line 160 of file stage.h.

void BALL::VIEW::LightSource::setType ( Types  type)
inline

Set the type of the light.

See Also
Types

Definition at line 156 of file stage.h.

Member Data Documentation

Angle BALL::VIEW::LightSource::angle_
protected

Definition at line 209 of file stage.h.

Vector3 BALL::VIEW::LightSource::attenuation_
protected

Definition at line 200 of file stage.h.

ColorRGBA BALL::VIEW::LightSource::color_
protected

Definition at line 215 of file stage.h.

Vector3 BALL::VIEW::LightSource::direction_
protected

Definition at line 197 of file stage.h.

float BALL::VIEW::LightSource::intensity_
protected

Definition at line 212 of file stage.h.

Vector3 BALL::VIEW::LightSource::position_
protected

Definition at line 194 of file stage.h.

Vector3 BALL::VIEW::LightSource::r_direction_
protected

Definition at line 206 of file stage.h.

Vector3 BALL::VIEW::LightSource::r_position_
protected

Definition at line 203 of file stage.h.

bool BALL::VIEW::LightSource::relative_
protected

Definition at line 221 of file stage.h.

Index BALL::VIEW::LightSource::type_
protected

Definition at line 218 of file stage.h.