Stellarium  23.4
Public Member Functions
Refraction Class Reference

This class performs refraction computations, following literature from atmospheric optics and astronomy. More...

#include <RefractionExtinction.hpp>

Public Member Functions

void forward (Vec3d &altAzPos) const Q_DECL_OVERRIDE
 Apply refraction. More...
 
void backward (Vec3d &altAzPos) const Q_DECL_OVERRIDE
 Remove refraction from position ("reduce"). More...
 
void forward (Vec3f &altAzPos) const Q_DECL_OVERRIDE
 Apply refraction. More...
 
void backward (Vec3f &altAzPos) const Q_DECL_OVERRIDE
 Remove refraction from position ("reduce"). More...
 
void combine (const Mat4d &m) Q_DECL_OVERRIDE
 
Mat4d getApproximateLinearTransfo () const Q_DECL_OVERRIDE
 
QByteArray getForwardTransformShader () const override
 
void setForwardTransformUniforms (QOpenGLShaderProgram &program) const override
 
QByteArray getBackwardTransformShader () const override
 
void setBackwardTransformUniforms (QOpenGLShaderProgram &program) const override
 
StelProjector::ModelViewTranformP clone () const Q_DECL_OVERRIDE
 
void setPressure (float p_mbar)
 Set surface air pressure (mbars), influences refraction computation.
 
float getPressure () const
 
void setTemperature (float t_C)
 Set surface air temperature (degrees Celsius), influences refraction computation.
 
float getTemperature () const
 
void setPreTransfoMat (const Mat4d &m)
 Set the transformation matrices used to transform input vector to AltAz frame.
 
void setPostTransfoMat (const Mat4d &m)
 

Detailed Description

This class performs refraction computations, following literature from atmospheric optics and astronomy.

Refraction solutions can only be approximate, given the turbulent, unpredictable real atmosphere. Typical horizons do not go down below -1, so strange effects (distortion) between -2 and -5 should be covered. Note that forward/backward are no absolute reverse operations! All the computations should be in effect (1) only if atmosphere effects are true (2) only for celestial objects, never for landscape images (3) only for terrestrial locations, not on Moon/Mars/Saturn etc

Member Function Documentation

◆ backward() [1/2]

void Refraction::backward ( Vec3d altAzPos) const
virtual

Remove refraction from position ("reduce").

Parameters
altAzPosis the apparent star position vector, to be transformed into geometrical position. Note that forward/backward are no absolute reverse operations!

Implements StelProjector::ModelViewTranform.

◆ backward() [2/2]

void Refraction::backward ( Vec3f altAzPos) const
virtual

Remove refraction from position ("reduce").

Parameters
altAzPosis the apparent star position vector, to be transformed into geometrical position. Note that forward/backward are no absolute reverse operations!

Implements StelProjector::ModelViewTranform.

◆ forward() [1/2]

void Refraction::forward ( Vec3d altAzPos) const
virtual

Apply refraction.

Parameters
altAzPosis the geometrical star position vector, to be transformed into apparent position. Note that forward/backward are no absolute reverse operations!

Implements StelProjector::ModelViewTranform.

◆ forward() [2/2]

void Refraction::forward ( Vec3f altAzPos) const
virtual

Apply refraction.

Parameters
altAzPosis the geometrical star position vector, to be transformed into apparent position. Note that forward/backward are no absolute reverse operations!

Implements StelProjector::ModelViewTranform.