Stellarium  HEAD
Data Structures | Public Slots | Signals | Public Member Functions | Properties
StelSkyLayerMgr Class Reference

Manage the sky background images, including DSS and deep sky objects images. More...

#include <StelSkyLayerMgr.hpp>

Public Slots

void setFlagShow (bool b)
 Set whether Sky Background should be displayed.
 
bool loadSkyImage (const QString &id, const QString &filename, double long0, double lat0, double long1, double lat1, double long2, double lat2, double long3, double lat3, double minRes, double maxBright, bool visible, StelCore::FrameType frameType=StelCore::FrameJ2000, bool withAberration=true, int decimateBy=1)
 Load an image from a file into a quad described with 4 corner coordinates. More...
 
void showLayer (const QString &id, bool b)
 Decide to show or not to show a layer by its ID. More...
 
bool getShowLayer (const QString &id) const
 Get the current shown status of a specified image. More...
 
QString insertSkyImage (const QString &uri, const QString &keyHint=QString(), bool show=true, int decimateBy=1)
 Add a new SkyImage from its URI (URL or local file name). More...
 
void removeSkyLayer (const QString &key)
 Remove a sky layer from the list. More...
 
QStringList getAllKeys () const
 Return the list of all the layer currently loaded.
 

Signals

void flagShowChanged (bool b)
 

Public Member Functions

void init () override
 Initialize.
 
void draw (StelCore *core) override
 Draws sky background.
 
double getCallOrder (StelModuleActionName actionName) const override
 Determines the order in which the various modules are drawn.
 
QString insertSkyLayer (StelSkyLayerP l, const QString &keyHint=QString(), bool show=true)
 Add a new layer. More...
 
void removeSkyLayer (StelSkyLayerP l)
 Remove a layer.
 
QMap< QString, StelSkyLayerP > getAllSkyLayers () const
 Get the list of all the currently loaded layers.
 
StelSkyLayerP getSkyLayer (const QString &key) const
 
bool getFlagShow () const
 Get whether Sky Background should be displayed.
 
- Public Member Functions inherited from StelModule
 StelModule ()
 Constructor. Every derived class MUST call setObjectName(className) in its constructor.
 
virtual void deinit ()
 Called before the module will be deleted, and before the OpenGL context is suppressed. More...
 
virtual QSettings * getSettings ()
 Return module-specific settings. More...
 
virtual void update (double deltaTime)
 Update the module with respect to the time. More...
 
virtual QString getModuleVersion () const
 Get the version of the module, default is stellarium main version.
 
virtual QString getAuthorName () const
 Get the name of the module author.
 
virtual QString getAuthorEmail () const
 Get the email address of the module author.
 
virtual void handleMouseClicks (class QMouseEvent *)
 Handle mouse clicks. More...
 
virtual void handleMouseWheel (class QWheelEvent *)
 Handle mouse wheel. More...
 
virtual bool handleMouseMoves (int x, int y, Qt::MouseButtons b)
 Handle mouse moves. More...
 
virtual void handleKeys (class QKeyEvent *e)
 Handle key events. More...
 
virtual bool handlePinch (qreal scale, bool started)
 Handle pinch gesture events. More...
 
virtual bool configureGui (bool show=true)
 Detect or show the configuration GUI elements for the module. More...
 

Properties

bool flagShow
 

Additional Inherited Members

- Public Types inherited from StelModule
enum  StelModuleSelectAction { AddToSelection , ReplaceSelection , RemoveFromSelection }
 Enum used when selecting objects to define whether to add to, replace, or remove from the existing selection list. More...
 
enum  StelModuleActionName {
  ActionDraw , ActionUpdate , ActionHandleMouseClicks , ActionHandleMouseMoves ,
  ActionHandleKeys
}
 Define the possible action for which an order is defined. More...
 
- Protected Member Functions inherited from StelModule
class StelActionaddAction (const QString &id, const QString &groupId, const QString &text, QObject *target, const char *slot, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to slot) to the StelActionMgr object. More...
 
class StelActionaddAction (const QString &id, const QString &groupId, const QString &text, const char *slot, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to own slot) to the StelActionMgr object. More...
 
StelActionaddAction (const QString &id, const QString &groupId, const QString &text, QObject *contextObject, std::function< void()> lambda, const QString &shortcut="", const QString &altShortcut="")
 convenience methods to add an action (call to Lambda functor) to the StelActionMgr object. More...
 

Detailed Description

Manage the sky background images, including DSS and deep sky objects images.

Drawn after Milky Way, but before Zodiacal Light. It is not intended to be used to "overdraw" images into the foreground without a concept of surface magnitude.

Member Function Documentation

◆ getShowLayer

bool StelSkyLayerMgr::getShowLayer ( const QString &  id) const
slot

Get the current shown status of a specified image.

Parameters
idthe ID of the image whose status is desired.
Returns
the current shown status of the specified image:
  • true means the specified image is currently shown.
  • false means the specified image is currently not shown.

◆ insertSkyImage

QString StelSkyLayerMgr::insertSkyImage ( const QString &  uri,
const QString &  keyHint = QString(),
bool  show = true,
int  decimateBy = 1 
)
slot

Add a new SkyImage from its URI (URL or local file name).

The image is owned by the manager and will be destroyed at the end of the program or when removeSkyImage is called with the same URI

Parameters
urithe local file or the URL where the JSON image description is located.
keyHinta hint on which key to use for later referencing the image.
showdefined whether the image should be shown by default.
decimateByAllow image size reduction (e.g., 2...8) on very limited hardware
Returns
the reference key to use when accessing this image later on.

◆ insertSkyLayer()

QString StelSkyLayerMgr::insertSkyLayer ( StelSkyLayerP  l,
const QString &  keyHint = QString(),
bool  show = true 
)

Add a new layer.

Parameters
lthe layer to insert.
keyHinta hint on which key to use for later referencing the image.
showdefined whether the layer should be shown by default
Returns
the reference key to use when accessing this layer later on.

◆ loadSkyImage

bool StelSkyLayerMgr::loadSkyImage ( const QString &  id,
const QString &  filename,
double  long0,
double  lat0,
double  long1,
double  lat1,
double  long2,
double  lat2,
double  long3,
double  lat3,
double  minRes,
double  maxBright,
bool  visible,
StelCore::FrameType  frameType = StelCore::FrameJ2000,
bool  withAberration = true,
int  decimateBy = 1 
)
slot

Load an image from a file into a quad described with 4 corner coordinates.

The corners are always given in counterclockwise from top-left, also for azaltimuthal images. This should not be called directly from scripts because it is not thread safe. Instead use the similarly named function in the core scripting object.

Parameters
ida string identifier for the image
filenamethe name of the image file to load. Will be searched for using StelFileMgr, so partial names are fine.
lon0right ascension/longitude/azimuth of top-left corner 0 in degrees
lat0declination/latitude/altitude of corner 0 in degrees
lon1right ascension/longitude/azimuth of bottom-left corner 1 in degrees
lat1declination/latitude/altitude of corner 1 in degrees
lon2right ascension/longitude/azimuth of bottom-right corner 2 in degrees
lat2declination/latitude/altitude of corner 2 in degrees
lon3right ascension/longitude/azimuth of top-right corner 3 in degrees
lat3declination/latitude/altitude of corner 3 in degrees
minResthe minimum resolution setting for the image
maxBrightthe maximum brightness setting for the image
visibleinitial visibility setting
frameTypeCoordinate frame type
withAberrationthe image shall undergo aberration effects. Else it is really fixed to the frame. This flag is only used for images linked to FrameJ2000.
decimateByallow texture reduction on loading, useful on very limited hardware.
Note
frameType has been added 2017-03. Use loadSkyImage(... , StelCore::FrameJ2000) for the previous behaviour!
For frameType=AzAlt, azimuth currently is counted from South towards East.

◆ removeSkyLayer

void StelSkyLayerMgr::removeSkyLayer ( const QString &  key)
slot

Remove a sky layer from the list.

Note: this is not thread safe, and so should not be used directly from scripts - use the similarly named function in the core scripting API object to delete SkyLayers.

Parameters
keythe reference key (id) generated by insertSkyImage.

◆ showLayer

void StelSkyLayerMgr::showLayer ( const QString &  id,
bool  b 
)
slot

Decide to show or not to show a layer by its ID.

Parameters
idthe id of the layer whose status is to be changed.
bthe new shown value:
  • true means the specified image will be shown.
  • false means the specified image will not be shown.