Caelum  0.6.4
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
Caelum::SpriteSun Class Reference

Class representing the sun as billboard with texture on it. More...

#include <Sun.h>

Inheritance diagram for Caelum::SpriteSun:
[legend]

Public Member Functions

 SpriteSun (Ogre::SceneManager *sceneMgr, Ogre::SceneNode *caelumRootNode, const Ogre::String &sunTextureName="sun_disc.png", const Ogre::Degree &sunTextureAngularSize=Ogre::Degree(3.77f))
 Constructor. More...
 
virtual ~SpriteSun ()
 Destructor. More...
 
void setSunTexture (const Ogre::String &textureName)
 Updates the sun material. More...
 
void setSunTextureAngularSize (const Ogre::Degree &sunTextureAngularSize)
 Updates the sun size. More...
 
void setBodyColour (const Ogre::ColourValue &colour)
 Sets the sun sphere colour. More...
 
virtual void notifyCameraChanged (Ogre::Camera *cam)
 Handle camera change.
 
virtual void setQueryFlags (uint flags)
 
virtual uint getQueryFlags () const
 
virtual void setVisibilityFlags (uint flags)
 
virtual uint getVisibilityFlags () const
 
- Public Member Functions inherited from Caelum::BaseSkyLight
 BaseSkyLight (Ogre::SceneManager *sceneMgr, Ogre::SceneNode *caelumRootNode)
 Constructor. More...
 
virtual ~BaseSkyLight ()=0
 Destructor.
 
virtual void update (const Ogre::Vector3 &direction, const Ogre::ColourValue &lightColour, const Ogre::ColourValue &bodyColour)
 Updates skylight parameters. More...
 
const Ogre::Vector3 getLightDirection () const
 Retrieves the latest light direction.
 
virtual void setLightDirection (const Ogre::Vector3 &dir)
 Set the sun direction.
 
const Ogre::ColourValue getBodyColour () const
 Get current body colour, as set in setBodyColour.
 
const Ogre::ColourValue getLightColour () const
 Get current light colour, as set in setLightColour.
 
virtual void setLightColour (const Ogre::ColourValue &colour)
 Sets the skylight colour.
 
void setDiffuseMultiplier (const Ogre::ColourValue &diffuse)
 Set diffuse multiplier for light colour.
 
const Ogre::ColourValue getDiffuseMultiplier () const
 Set diffuse multiplier for light colour.
 
void setSpecularMultiplier (const Ogre::ColourValue &specular)
 Set specular multiplier for light colour.
 
const Ogre::ColourValue getSpecularMultiplier () const
 Set specular multiplier for light colour.
 
void setAmbientMultiplier (const Ogre::ColourValue &ambient)
 Set ambient multiplier for light colour This value is only stored here; the SceneManager is not touched However, CaelumSystem does use this value.
 
const Ogre::ColourValue getAmbientMultiplier () const
 Set ambient multiplier for light colour.
 
Ogre::LightgetMainLight () const
 Direct access to the Ogre::Light.
 
bool getAutoDisable () const
 Check if the light is automatically disabled.
 
void setAutoDisable (bool value)
 Turn on and off auto-disabling of the light when too dim. More...
 
Ogre::Real getAutoDisableThreshold () const
 Get the auto-disable threshold.
 
void setAutoDisableThreshold (Ogre::Real value)
 Set the auto-disable threshold.
 
void setForceDisable (bool value)
 Disable the light by force; without taking intensity into account.
 
bool getForceDisable () const
 
- Public Member Functions inherited from Caelum::CameraBoundElement
 CameraBoundElement ()
 Constructor. More...
 
virtual ~CameraBoundElement ()
 Virtual Destructor.
 
void forceFarRadius (Ogre::Real radius)
 Forces the "far" size of the element to a specific radius. More...
 
bool getAutoRadius () const
 Checks if this element is in auto-radius mode. More...
 
void setAutoRadius ()
 Re-enable auto-radius; if disabled. More...
 

Static Public Attributes

static const Ogre::String SUN_MATERIAL_NAME
 Name of the sun material.
 
- Static Public Attributes inherited from Caelum::BaseSkyLight
static const Ogre::Real DEFAULT_AUTO_DISABLE_THRESHOLD
 
- Static Public Attributes inherited from Caelum::CameraBoundElement
static const Ogre::Real CAMERA_FAR_DISTANCE_MULTIPLIER
 Camera distances multiplier for the far clipping distance. More...
 
static const Ogre::Real CAMERA_NEAR_DISTANCE_MULTIPLIER
 Camera distances multiplier for the near clipping distance. More...
 

Protected Attributes

PrivateMaterialPtr mSunMaterial
 The sun material.
 
PrivateBillboardSetPtr mSunBillboardSet
 The sun sprite / billboard.
 
Ogre::Degree mSunTextureAngularSize
 The sun sprite visible angle.
 
- Protected Attributes inherited from Caelum::BaseSkyLight
Ogre::LightmMainLight
 The main directional light.
 
Ogre::SceneNodemNode
 The sun scene node.
 
float mRadius
 Base distance of the light.
 
Ogre::Vector3 mDirection
 The latest normalised sun direction.
 
Ogre::ColourValue mBodyColour
 Body sphere colour, as set by setBodyColour.
 
Ogre::ColourValue mLightColour
 Sun light colour, as set by setLightColour.
 
Ogre::ColourValue mDiffuseMultiplier
 Colour multiplier for light diffuse colour.
 
Ogre::ColourValue mSpecularMultiplier
 Colour multiplier for light specular colour.
 
Ogre::ColourValue mAmbientMultiplier
 Colour multiplier for ambient light colour. More...
 
bool mAutoDisableLight
 If the light is automatically disabled beneath mAutoDisableThreshold.
 
Ogre::Real mAutoDisableThreshold
 Threshold beneath which the light is automatically disabled.
 
bool mForceDisableLight
 If the light is always disabled. Separate from the mAutoDisable mechanism.
 

Additional Inherited Members

- Protected Member Functions inherited from Caelum::BaseSkyLight
virtual void setFarRadius (Ogre::Real radius)
 Handle far radius.
 
void setMainLightColour (const Ogre::ColourValue &colour)
 Temporary change main light color.
 
bool shouldEnableLight (const Ogre::ColourValue &colour)
 If the light should be enabled for a certain value. More...
 

Detailed Description

Class representing the sun as billboard with texture on it.

Constructor & Destructor Documentation

◆ SpriteSun()

Caelum::SpriteSun::SpriteSun ( Ogre::SceneManager sceneMgr,
Ogre::SceneNode caelumRootNode,
const Ogre::String sunTextureName = "sun_disc.png",
const Ogre::Degree sunTextureAngularSize = Ogre::Degree(3.77f) 
)

Constructor.

Parameters
sceneMgrThe scene manager where the lights will be created.
sunTextureAngularSize0.53f is real angular size of Sun and Moon, 3.77f is compatible with SphereSun

◆ ~SpriteSun()

virtual Caelum::SpriteSun::~SpriteSun ( )
virtual

Destructor.

Note
If a sun position model is in use, it will be deleted.

Member Function Documentation

◆ setSunTexture()

void Caelum::SpriteSun::setSunTexture ( const Ogre::String textureName)

Updates the sun material.

Parameters
textureNameThe new sun texture name.

◆ setSunTextureAngularSize()

void Caelum::SpriteSun::setSunTextureAngularSize ( const Ogre::Degree sunTextureAngularSize)

Updates the sun size.

Parameters
sunTextureAngularSizeThe new sun texture angular size.

◆ setBodyColour()

void Caelum::SpriteSun::setBodyColour ( const Ogre::ColourValue colour)
virtual

Sets the sun sphere colour.

Parameters
colourThe colour used to draw the sun

Reimplemented from Caelum::BaseSkyLight.