Ocean
Ocean::Rendering::LightSource Class Reference

This is the base class for all lights. More...

Inheritance diagram for Ocean::Rendering::LightSource:

Public Types

enum  TransformationType { TT_PARENT , TT_WORLD }
 Defines different transformation types. More...
 
- Public Types inherited from Ocean::Rendering::Object
enum  ObjectType {
  TYPE_UNKNOWN , TYPE_ABSOLUTE_TRANSFORM , TYPE_ATTRIBUTE , TYPE_ATTRIBUTE_SET ,
  TYPE_BACKGROUND , TYPE_BILLBOARD , TYPE_BITMAP_FRAMEBUFFER , TYPE_BLEND_ATTRIBUTE ,
  TYPE_BOX , TYPE_CONE , TYPE_CYLINDER , TYPE_DEPTH_ATTRIBUTE ,
  TYPE_DIRECTIONAL_LIGHT , TYPE_FRAMEBUFFER , TYPE_FRAME_TEXTURE_2D , TYPE_GEOMETRY ,
  TYPE_GROUP , TYPE_INDEPENDENT_PRIMITIVE , TYPE_LIGHT_SOURCE , TYPE_LINES ,
  TYPE_LINE_STRIPS , TYPE_LOD , TYPE_MATERIAL , TYPE_NODE ,
  TYPE_OBJECT , TYPE_PARALLEL_VIEW , TYPE_PERSPECTIVE_VIEW , TYPE_PHANTOM_ATTRIBUTE ,
  TYPE_POINT_LIGHT , TYPE_POINTS , TYPE_PRIMITIVE , TYPE_PRIMITIVE_ATTRIBUTE ,
  TYPE_QUAD_STRIPS , TYPE_QUADS , TYPE_RENDERABLE , TYPE_SCENE ,
  TYPE_SHADER_PROGRAM , TYPE_SHAPE , TYPE_SKY_BACKGROUND , TYPE_SPHERE ,
  TYPE_SPOT_LIGHT , TYPE_STEREO_ATTRIBUTE , TYPE_STEREO_VIEW , TYPE_STRIP_PRIMITIVE ,
  TYPE_SWITCH , TYPE_TEXT , TYPE_TEXTURE , TYPE_TEXTURE_2D ,
  TYPE_MEDIA_TEXTURE_2D , TYPE_TEXTURE_FRAMEBUFFER , TYPE_TEXTURES , TYPE_TRANSFORM ,
  TYPE_TRIANGLE_FANS , TYPE_TRIANGLES , TYPE_TRIANGLE_STRIPS , TYPE_UNDISTORTED_BACKGROUND ,
  TYPE_VERTEX_SET , TYPE_VIEW , TYPE_WINDOW_FRAMEBUFFER
}
 Definition of different object type. More...
 
typedef std::unordered_map< ObjectId, unsigned int > ObjectIdMap
 Definition of a map holding object ids to reference counters. More...
 

Public Member Functions

virtual RGBAColor ambientColor () const
 Returns the ambient color of this light source. More...
 
virtual RGBAColor diffuseColor () const
 Returns the diffuse color of this light source. More...
 
virtual RGBAColor specularColor () const
 Returns the specular color of this light source. More...
 
virtual Scalar intensity () const
 Returns the intensity of this light source. More...
 
virtual TransformationType transformationType () const
 Returns the transformation type of this light. More...
 
virtual bool enabled () const
 Returns whether this light source is enabled. More...
 
virtual void get (RGBAColor &ambient, RGBAColor &diffuse, RGBAColor &specular, Scalar &intensity)
 Gets all color values of the light at once. More...
 
virtual bool setAmbientColor (const RGBAColor &color)
 Sets the ambient color of the light source. More...
 
virtual bool setDiffuseColor (const RGBAColor &color)
 Sets the diffuse color of the light source. More...
 
virtual bool setSpecularColor (const RGBAColor &color)
 Sets the specular color of the light source. More...
 
virtual bool setIntensity (const Scalar intensity)
 Sets the specular exponent of this material. More...
 
virtual bool set (const RGBAColor &ambient, const RGBAColor &diffuse, const RGBAColor &specular, const Scalar intensity)
 Sets all color values of the light source at once. More...
 
virtual void setTransformationType (const TransformationType transformationType)
 Sets the transformation type of this light. More...
 
virtual void setEnabled (const bool state)
 Sets whether the light source is enabled. More...
 
ObjectType type () const override
 Returns the type of this object. More...
 
- Public Member Functions inherited from Ocean::Rendering::Object
ObjectId id () const
 Returns the unique object id of this object. More...
 
const std::string & name () const
 Returns the name of this object. More...
 
virtual void setName (const std::string &name)
 Sets or changes the name of this object. More...
 
virtual const std::string & engineName () const =0
 Returns the name of the owner engine. More...
 
ObjectRefs parentObjects () const
 Returns all parent objects. More...
 
ObjectRefSet parentNodes () const
 Returns all parent nodes. More...
 
virtual std::string descriptiveInformation () const
 Returns descriptive information about the object as string. More...
 

Protected Member Functions

 LightSource ()
 Creates a new light source object. More...
 
 ~LightSource () override
 Destructs a light source object. More...
 
- Protected Member Functions inherited from Ocean::Rendering::Object
 Object ()
 Creates a new object. More...
 
 Object (const Object &object)=delete
 Disabled copy constructor. More...
 
virtual ~Object ()
 Destructs an object. More...
 
Engineengine () const
 Returns the render engine which is owner of this object. More...
 
void registerParent (const ObjectId parentId)
 Registers a parent node for this (child) node. More...
 
void unregisterParent (const ObjectId parentId)
 Unregisters a parent node for this (child) node. More...
 
void registerThisObjectAsParent (const ObjectRef &child)
 Registers this object at a child as parent object. More...
 
void unregisterThisObjectAsParent (const ObjectRef &child)
 Unregisters this object from a child as parent. More...
 
Objectoperator= (const Object &object)=delete
 Disabled copy operator. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Ocean::Rendering::Object
static std::string translateObjectType (const ObjectType objectType)
 Translates an object type to a readable string. More...
 
- Protected Attributes inherited from Ocean::Rendering::Object
Lock objectLock
 Lock for the object. More...
 

Detailed Description

This is the base class for all lights.

Member Enumeration Documentation

◆ TransformationType

Defines different transformation types.

Enumerator
TT_PARENT 

The light is located in the coordinate system of the parent node, this is the default type.

TT_WORLD 

The light is located in the world coordinate system (an absolute location).

Constructor & Destructor Documentation

◆ LightSource()

Ocean::Rendering::LightSource::LightSource ( )
protected

Creates a new light source object.

◆ ~LightSource()

Ocean::Rendering::LightSource::~LightSource ( )
overrideprotected

Destructs a light source object.

Member Function Documentation

◆ ambientColor()

virtual RGBAColor Ocean::Rendering::LightSource::ambientColor ( ) const
virtual

Returns the ambient color of this light source.

Returns
Ambient color
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ diffuseColor()

virtual RGBAColor Ocean::Rendering::LightSource::diffuseColor ( ) const
virtual

Returns the diffuse color of this light source.

Returns
Diffuse color
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ enabled()

virtual bool Ocean::Rendering::LightSource::enabled ( ) const
virtual

Returns whether this light source is enabled.

Returns
True, if so
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ get()

virtual void Ocean::Rendering::LightSource::get ( RGBAColor ambient,
RGBAColor diffuse,
RGBAColor specular,
Scalar intensity 
)
virtual

Gets all color values of the light at once.

Parameters
ambientResulting ambient color of this light source
diffuseResulting diffuse color of this light source
specularResulting specular color of this light source
intensityResulting intensity of this light source
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ intensity()

virtual Scalar Ocean::Rendering::LightSource::intensity ( ) const
virtual

Returns the intensity of this light source.

Returns
Light intensity with range [0.0, 1.0]
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ set()

virtual bool Ocean::Rendering::LightSource::set ( const RGBAColor ambient,
const RGBAColor diffuse,
const RGBAColor specular,
const Scalar  intensity 
)
virtual

Sets all color values of the light source at once.

Parameters
ambientAmbient color to set
diffuseDiffuse color to set
specularSpecular color to set
intensityIntensity value to set
Returns
True, if at least one value is valid and could be set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ setAmbientColor()

virtual bool Ocean::Rendering::LightSource::setAmbientColor ( const RGBAColor color)
virtual

Sets the ambient color of the light source.

Parameters
colorAmbient color
Returns
True, if the specified color is valid and could be set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ setDiffuseColor()

virtual bool Ocean::Rendering::LightSource::setDiffuseColor ( const RGBAColor color)
virtual

Sets the diffuse color of the light source.

Parameters
colorDiffuse color
Returns
True, if the specified color is valid and could be set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ setEnabled()

virtual void Ocean::Rendering::LightSource::setEnabled ( const bool  state)
virtual

Sets whether the light source is enabled.

Parameters
stateTrue, if the light source has to be enabled
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ setIntensity()

virtual bool Ocean::Rendering::LightSource::setIntensity ( const Scalar  intensity)
virtual

Sets the specular exponent of this material.

Parameters
intensityLight intensity to set with range [0.0, 1.0]
Returns
True, if the valud is valid and could be set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ setSpecularColor()

virtual bool Ocean::Rendering::LightSource::setSpecularColor ( const RGBAColor color)
virtual

Sets the specular color of the light source.

Parameters
colorSpecular color
Returns
True, if the specified color is valid and could be set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ setTransformationType()

virtual void Ocean::Rendering::LightSource::setTransformationType ( const TransformationType  transformationType)
virtual

Sets the transformation type of this light.

Parameters
transformationTypeThe transformation type to set
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ specularColor()

virtual RGBAColor Ocean::Rendering::LightSource::specularColor ( ) const
virtual

Returns the specular color of this light source.

Returns
Specular color
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GlobalIllumination::GILightSource, and Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ transformationType()

virtual TransformationType Ocean::Rendering::LightSource::transformationType ( ) const
virtual

Returns the transformation type of this light.

Returns
The light's transformation type, TT_PARENT by default
Exceptions
NotSupportedExceptionIs thrown if this function is not supported

Reimplemented in Ocean::Rendering::GLESceneGraph::GLESLightSource.

◆ type()

ObjectType Ocean::Rendering::LightSource::type ( ) const
overridevirtual

Returns the type of this object.

See also
Object::type().

Reimplemented from Ocean::Rendering::Object.

Reimplemented in Ocean::Rendering::SpotLight, and Ocean::Rendering::PointLight.


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