Stellarium 0.12.0
Home · All Namespaces · All Classes · Functions · Coding Style · Scripting · Plugins · Renderer · File Structure

StelSkyDrawer Class Reference

Provide a set of methods used to draw sky objects taking into account eyes adaptation, zoom level and instrument model. More...

#include <StelSkyDrawer.hpp>

List of all members.

Classes

struct  ColoredTexturedVertex
 2D vertex with position, color and texture coordinate.
struct  ColoredVertex
 2D vertex with position and color.

Public Slots

void setRelativeStarScale (double b=1.0)
 Set the way brighter stars will look bigger as the fainter ones.
float getRelativeStarScale () const
 Get the way brighter stars will look bigger as the fainter ones.
void setAbsoluteStarScale (double b=1.0)
 Set the absolute star brightness scale.
float getAbsoluteStarScale () const
 Get the absolute star brightness scale.
void setTwinkleAmount (double b)
 Set source twinkle amount.
float getTwinkleAmount () const
 Get source twinkle amount.
void setFlagTwinkle (bool b)
 Set flag for source twinkling.
bool getFlagTwinkle () const
 Get flag for source twinkling.
void setDrawStarsAsPoints (bool b)
 Set flag for displaying point sources as points (faster on some hardware but not so nice).
bool getDrawStarsAsPoints () const
 Get flag for displaying point sources as points (faster on some hardware but not so nice).
void setBortleScale (int index)
 Set the parameters so that the stars disapear at about the limit given by the bortle scale The limit is valid only at a given zoom level (around 60 deg) See http://en.wikipedia.org/wiki/Bortle_Dark-Sky_Scale.
int getBortleScale () const
 Get the current Bortle scale index.
float getLimitMagnitude () const
 Get the magnitude of the currently faintest visible point source It depends on the zoom level, on the eye adapation and on the point source rendering parameters.
float getLimitLuminance () const
 Get the luminance of the faintest visible object (e.g.
void setFlagLuminanceAdaptation (bool b)
 Set the value of the eye adaptation flag.
bool getFlagLuminanceAdaptation () const
 Get the current value of eye adaptation flag.
void setFlagHasAtmosphere (bool b)
 Informing the drawer whether atmosphere is displayed.
bool getFlagHasAtmosphere () const
 This is used to decide whether to apply refraction/extinction before rendering point sources et al.
void setExtinctionCoefficient (double extCoeff)
 Set extinction coefficient, mag/airmass (for extinction).
double getExtinctionCoefficient () const
 Get extinction coefficient, mag/airmass (for extinction).
void setAtmosphereTemperature (double celsius)
 Set atmospheric (ground) temperature in deg celsius (for refraction).
double getAtmosphereTemperature () const
 Get atmospheric (ground) temperature in deg celsius (for refraction).
void setAtmospherePressure (double mbar)
 Set atmospheric (ground) pressure in mbar (for refraction).
double getAtmospherePressure () const
 Get atmospheric (ground) pressure in mbar (for refraction).
const ExtinctiongetExtinction () const
 Get the current valid extinction computation class.
const RefractiongetRefraction () const
 Get the current valid fefraction computation class.
float getBig3dModelHaloRadius () const
 Get the radius of the big halo texture used when a 3d model is very bright.
void setBig3dModelHaloRadius (float r)
 Set the radius of the big halo texture used when a 3d model is very bright.

Public Member Functions

 StelSkyDrawer (StelCore *core, class StelRenderer *renderer)
 Constructor.
 ~StelSkyDrawer ()
 Destructor.
void init ()
 Init parameters from config file.
void update (double deltaTime)
 Update with respect to the time and StelProjector/StelToneReproducer state.
void preDrawPointSource ()
 Prepare to draw point sources (must be called before drawing).
void postDrawPointSource (StelProjectorP projector)
 Finalize the drawing of point sources.
bool pointSourceVisible (StelProjector *projector, const Vec3f &v, const float rcMag[2], bool checkInScreen, Vec3f &outWindowCoordinates)
 Determine if a point source is visible (should be drawn).
void drawPointSource (const Vec3f &win, const float rcMag[2], unsigned int bV)
 Draw a point source halo.
void drawPointSource (const Vec3f &win, const float rcMag[2], const Vec3f &bcolor)
void drawSunCorona (StelProjectorP projector, const Vec3d &v, float radius, float alpha)
 Draw's the sun's corona during a solar eclipse on earth.
void postDrawSky3dModel (StelProjectorP projector, const Vec3d &v, float illuminatedArea, float mag, const Vec3f &color=Vec3f(1.f, 1.f, 1.f))
 Terminate drawing of a 3D model, draw the halo.
bool computeRCMag (float mag, float rcMag[2]) const
 Compute RMag and CMag from magnitude.
void reportLuminanceInFov (float lum, bool fastAdaptation=false)
 Report that an object of luminance lum with an on-screen area of area pixels is currently displayed This information is used to determine the world adaptation luminance This method should be called during the update operations of the main loop.
void preDraw ()
 To be called before the drawing stage starts.

Static Public Member Functions

static float surfacebrightnessToLuminance (float sb)
 Compute the luminance for an extended source with the given surface brightness.
static float luminanceToSurfacebrightness (float lum)
 Compute the surface brightness from the luminance of an extended source.
static float indexToBV (unsigned char bV)
 Convert quantized B-V index to float B-V.
static const Vec3findexToColor (unsigned char bV)
 Convert quantized B-V index to RGB colors.

Detailed Description

Provide a set of methods used to draw sky objects taking into account eyes adaptation, zoom level and instrument model.

Definition at line 39 of file StelSkyDrawer.hpp.


Constructor & Destructor Documentation

StelSkyDrawer::StelSkyDrawer ( StelCore core,
class StelRenderer renderer 
)

Constructor.

StelSkyDrawer::~StelSkyDrawer (  ) 

Destructor.


Member Function Documentation

bool StelSkyDrawer::computeRCMag ( float  mag,
float  rcMag[2] 
) const

Compute RMag and CMag from magnitude.

Parameters:
mag the object integrated V magnitude
rcMag array of 2 floats containing the radius and luminance
Returns:
false if the object is too faint to be displayed
void StelSkyDrawer::drawPointSource ( const Vec3f win,
const float  rcMag[2],
unsigned int  bV 
) [inline]

Draw a point source halo.

This is used in combination with pointSourceVisible (which avoids unnecessary draws and projects a point source to window coordinates).

Example:

 Vec3f win;
 if(skyDrawer->pointSourceVisible(&(*projector), pos3D, rcMag, checkInScreen, win))
 {
    skyDrawer->drawPointSource(win, rcMag, bV);
 }
Parameters:
win Coordinates of the point source in the window (computed by pointSourceVisible)
rcMag the radius and luminance of the source as computed by computeRCMag()
bV the source B-V index

Definition at line 103 of file StelSkyDrawer.hpp.

void StelSkyDrawer::drawSunCorona ( StelProjectorP  projector,
const Vec3d v,
float  radius,
float  alpha 
)

Draw's the sun's corona during a solar eclipse on earth.

float StelSkyDrawer::getAbsoluteStarScale (  )  const [inline, slot]

Get the absolute star brightness scale.

Definition at line 167 of file StelSkyDrawer.hpp.

double StelSkyDrawer::getAtmospherePressure (  )  const [inline, slot]

Get atmospheric (ground) pressure in mbar (for refraction).

Definition at line 223 of file StelSkyDrawer.hpp.

double StelSkyDrawer::getAtmosphereTemperature (  )  const [inline, slot]

Get atmospheric (ground) temperature in deg celsius (for refraction).

Definition at line 219 of file StelSkyDrawer.hpp.

float StelSkyDrawer::getBig3dModelHaloRadius (  )  const [inline, slot]

Get the radius of the big halo texture used when a 3d model is very bright.

Definition at line 231 of file StelSkyDrawer.hpp.

int StelSkyDrawer::getBortleScale (  )  const [inline, slot]

Get the current Bortle scale index.

Definition at line 189 of file StelSkyDrawer.hpp.

bool StelSkyDrawer::getDrawStarsAsPoints (  )  const [inline, slot]

Get flag for displaying point sources as points (faster on some hardware but not so nice).

Definition at line 182 of file StelSkyDrawer.hpp.

const Extinction& StelSkyDrawer::getExtinction (  )  const [inline, slot]

Get the current valid extinction computation class.

Definition at line 226 of file StelSkyDrawer.hpp.

double StelSkyDrawer::getExtinctionCoefficient (  )  const [inline, slot]

Get extinction coefficient, mag/airmass (for extinction).

Definition at line 215 of file StelSkyDrawer.hpp.

bool StelSkyDrawer::getFlagHasAtmosphere (  )  const [inline, slot]

This is used to decide whether to apply refraction/extinction before rendering point sources et al.

Definition at line 210 of file StelSkyDrawer.hpp.

bool StelSkyDrawer::getFlagLuminanceAdaptation (  )  const [inline, slot]

Get the current value of eye adaptation flag.

Definition at line 204 of file StelSkyDrawer.hpp.

bool StelSkyDrawer::getFlagTwinkle (  )  const [inline, slot]

Get flag for source twinkling.

Definition at line 177 of file StelSkyDrawer.hpp.

float StelSkyDrawer::getLimitLuminance (  )  const [inline, slot]

Get the luminance of the faintest visible object (e.g.

RGB<0.05) It depends on the zoom level, on the eye adapation and on the point source rendering parameters

Returns:
the limit V luminance at which an object will be visible

Definition at line 199 of file StelSkyDrawer.hpp.

float StelSkyDrawer::getLimitMagnitude (  )  const [inline, slot]

Get the magnitude of the currently faintest visible point source It depends on the zoom level, on the eye adapation and on the point source rendering parameters.

Returns:
the limit V mag at which a point source will be displayed

Definition at line 194 of file StelSkyDrawer.hpp.

const Refraction& StelSkyDrawer::getRefraction (  )  const [inline, slot]

Get the current valid fefraction computation class.

Definition at line 228 of file StelSkyDrawer.hpp.

float StelSkyDrawer::getRelativeStarScale (  )  const [inline, slot]

Get the way brighter stars will look bigger as the fainter ones.

Definition at line 162 of file StelSkyDrawer.hpp.

float StelSkyDrawer::getTwinkleAmount (  )  const [inline, slot]

Get source twinkle amount.

Definition at line 172 of file StelSkyDrawer.hpp.

static float StelSkyDrawer::indexToBV ( unsigned char  bV  )  [inline, static]

Convert quantized B-V index to float B-V.

Definition at line 147 of file StelSkyDrawer.hpp.

static const Vec3f& StelSkyDrawer::indexToColor ( unsigned char  bV  )  [inline, static]

Convert quantized B-V index to RGB colors.

Definition at line 153 of file StelSkyDrawer.hpp.

void StelSkyDrawer::init (  ) 

Init parameters from config file.

static float StelSkyDrawer::luminanceToSurfacebrightness ( float  lum  )  [static]

Compute the surface brightness from the luminance of an extended source.

Parameters:
lum luminance in cd/m^2
Returns:
surface brightness in V magnitude/arcmin^2
bool StelSkyDrawer::pointSourceVisible ( StelProjector projector,
const Vec3f v,
const float  rcMag[2],
bool  checkInScreen,
Vec3f outWindowCoordinates 
) [inline]

Determine if a point source is visible (should be drawn).

This function is separate from drawPointSource for optimization.

Also projects the point source to window coordinates.

Parameters:
projector Projector to project the point source.
v the 3d position of the source in J2000 reference frame
rcMag the radius and luminance of the source as computed by computeRCMag()
checkInScreen Whether source in screen should be checked to avoid unnecessary drawing.
outWindowCoordinates Window coordinates out the point source are written here.
Returns:
true if the point source is visible, false otherwise.

Definition at line 75 of file StelSkyDrawer.hpp.

void StelSkyDrawer::postDrawPointSource ( StelProjectorP  projector  ) 

Finalize the drawing of point sources.

void StelSkyDrawer::postDrawSky3dModel ( StelProjectorP  projector,
const Vec3d v,
float  illuminatedArea,
float  mag,
const Vec3f color = Vec3f(1.f, 1.f, 1.f) 
)

Terminate drawing of a 3D model, draw the halo.

Parameters:
projector Projector to use for this drawing operation
v the 3d position of the source in J2000 reference frame
illuminatedArea the illuminated area in arcmin^2
mag the source integrated magnitude
color the object halo RGB color
void StelSkyDrawer::preDraw (  ) 

To be called before the drawing stage starts.

void StelSkyDrawer::preDrawPointSource (  ) 

Prepare to draw point sources (must be called before drawing).

void StelSkyDrawer::reportLuminanceInFov ( float  lum,
bool  fastAdaptation = false 
)

Report that an object of luminance lum with an on-screen area of area pixels is currently displayed This information is used to determine the world adaptation luminance This method should be called during the update operations of the main loop.

Parameters:
lum luminance in cd/m^2
fastAdaptation adapt the eye quickly if true, other wise use a smooth adaptation
void StelSkyDrawer::setAbsoluteStarScale ( double  b = 1.0  )  [inline, slot]

Set the absolute star brightness scale.

Definition at line 165 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setAtmospherePressure ( double  mbar  )  [inline, slot]

Set atmospheric (ground) pressure in mbar (for refraction).

Definition at line 221 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setAtmosphereTemperature ( double  celsius  )  [inline, slot]

Set atmospheric (ground) temperature in deg celsius (for refraction).

Definition at line 217 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setBig3dModelHaloRadius ( float  r  )  [inline, slot]

Set the radius of the big halo texture used when a 3d model is very bright.

Definition at line 233 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setBortleScale ( int  index  )  [slot]

Set the parameters so that the stars disapear at about the limit given by the bortle scale The limit is valid only at a given zoom level (around 60 deg) See http://en.wikipedia.org/wiki/Bortle_Dark-Sky_Scale.

void StelSkyDrawer::setDrawStarsAsPoints ( bool  b  )  [inline, slot]

Set flag for displaying point sources as points (faster on some hardware but not so nice).

Definition at line 180 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setExtinctionCoefficient ( double  extCoeff  )  [inline, slot]

Set extinction coefficient, mag/airmass (for extinction).

Definition at line 213 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setFlagHasAtmosphere ( bool  b  )  [inline, slot]

Informing the drawer whether atmosphere is displayed.

This is used to avoid twinkling/simulate extinction/refraction.

Definition at line 208 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setFlagLuminanceAdaptation ( bool  b  )  [inline, slot]

Set the value of the eye adaptation flag.

Definition at line 202 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setFlagTwinkle ( bool  b  )  [inline, slot]

Set flag for source twinkling.

Definition at line 175 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setRelativeStarScale ( double  b = 1.0  )  [inline, slot]

Set the way brighter stars will look bigger as the fainter ones.

Definition at line 160 of file StelSkyDrawer.hpp.

void StelSkyDrawer::setTwinkleAmount ( double  b  )  [inline, slot]

Set source twinkle amount.

Definition at line 170 of file StelSkyDrawer.hpp.

static float StelSkyDrawer::surfacebrightnessToLuminance ( float  sb  )  [static]

Compute the luminance for an extended source with the given surface brightness.

Parameters:
sb surface brightness in V magnitude/arcmin^2
Returns:
the luminance in cd/m^2
void StelSkyDrawer::update ( double  deltaTime  ) 

Update with respect to the time and StelProjector/StelToneReproducer state.

Parameters:
deltaTime the time increment in second since last call.

The documentation for this class was generated from the following file:
Generated on Thu Jan 31 14:05:47 2013 for Stellarium by  doxygen 1.6.3