Stellarium 0.14.0
StelMainScriptAPI.hpp
1 /*
2  * Stellarium
3  * Copyright (C) 2009 Matthew Gates
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
18  */
19 
20 #ifndef _STELMAINSCRIPTAPI_HPP_
21 #define _STELMAINSCRIPTAPI_HPP_
22 
23 #include <QObject>
24 #include <QVariant>
25 #include <QStringList>
26 
27 class QScriptEngine;
28 
35 class StelMainScriptAPI : public QObject
36 {
37  Q_OBJECT
38  Q_PROPERTY(double JDay READ getJDay WRITE setJDay)
39  Q_PROPERTY(double timeSpeed READ getTimeRate WRITE setTimeRate)
40 
41 public:
42  StelMainScriptAPI(QObject *parent = 0);
44 
45 // These functions will be available in scripts
46 public slots:
49  void setJDay(double JD);
52  double getJDay() const;
53 
56  void setMJDay(double MJD);
59  double getMJDay() const;
60 
84  void setDate(const QString& dt, const QString& spec="utc", const bool& enableDeltaT=true);
85 
91  QString getDate(const QString& spec="utc");
92 
96  QString getDeltaT() const;
97 
100  QString getDeltaTAlgorithm() const;
101 
110  void setDeltaTAlgorithm(QString algorithmName);
111 
117  void setTimeRate(double ts);
120  double getTimeRate() const;
121 
125  bool isRealTime();
126 
128  void setRealTime();
129 
135  void selectObjectByName(const QString& name, bool pointer=false);
136 
150  QVariantMap getObjectPosition(const QString& name);
151 
182  QVariantMap getObjectInfo(const QString& name);
183 
213  QVariantMap getSelectedObjectInfo();
214 
223  void clear(const QString& state="natural");
224 
228  double getViewAltitudeAngle();
229 
233  double getViewAzimuthAngle();
234 
238  double getViewRaAngle();
239 
243  double getViewDecAngle();
244 
247  double getViewRaJ2000Angle();
248 
251  double getViewDecJ2000Angle();
252 
258  void moveToAltAzi(const QString& alt, const QString& azi, float duration=1.);
259 
265  void moveToRaDec(const QString& ra, const QString& dec, float duration=1.);
266 
272  void moveToRaDecJ2000(const QString& ra, const QString& dec, float duration=1.);
273 
291  void setObserverLocation(double longitude, double latitude, double altitude, double duration=1., const QString& name="", const QString& planet="");
292 
298  void setObserverLocation(const QString id, float duration=1.);
299 
301  QString getObserverLocation();
302 
315  QVariantMap getObserverLocationInfo();
316 
322  void screenshot(const QString& prefix, bool invert=false, const QString& dir="");
323 
327  void setGuiVisible(bool b);
328 
334  void setMinFps(float m);
335 
338  float getMinFps();
339 
342  void setMaxFps(float m);
343 
346  float getMaxFps();
347 
350  QString getMountMode();
351 
354  void setMountMode(const QString& mode);
355 
358  bool getNightMode();
359 
362  void setNightMode(bool b);
363 
367  QString getProjectionMode();
368 
380  void setProjectionMode(const QString& id);
381 
384  bool getDiskViewport();
385 
388  void setDiskViewport(bool b);
389 
392  void setSphericMirror(bool b);
393 
396  QStringList getAllSkyCultureIDs();
397 
401  QString getSkyCulture();
402 
405  void setSkyCulture(const QString& id);
406 
409  QString getSkyCultureName();
410 
413  QString getSkyCultureNameI18n();
414 
417  bool getFlagGravityLabels();
418 
421  void setFlagGravityLabels(bool b);
422 
441  void loadSkyImage(const QString& id, const QString& filename,
442  double ra0, double dec0,
443  double ra1, double dec1,
444  double ra2, double dec2,
445  double ra3, double dec3,
446  double minRes=2.5, double maxBright=14, bool visible=true);
447 
448 
452  void loadSkyImage(const QString& id, const QString& filename,
453  const QString& ra0, const QString& dec0,
454  const QString& ra1, const QString& dec1,
455  const QString& ra2, const QString& dec2,
456  const QString& ra3, const QString& dec3,
457  double minRes=2.5, double maxBright=14, bool visible=true);
458 
473  void loadSkyImage(const QString& id, const QString& filename,
474  double ra, double dec, double angSize, double rotation,
475  double minRes=2.5, double maxBright=14, bool visible=true);
476 
481  void loadSkyImage(const QString& id, const QString& filename,
482  const QString& ra, const QString& dec, double angSize, double rotation,
483  double minRes=2.5, double maxBright=14, bool visible=true);
484 
503  void loadSkyImageAltAz(const QString& id, const QString& filename,
504  double alt0, double azi0,
505  double alt1, double azi1,
506  double alt2, double azi2,
507  double alt3, double azi3,
508  double minRes=2.5, double maxBright=14, bool visible=true);
509 
524  void loadSkyImageAltAz(const QString& id, const QString& filename,
525  double alt, double azi, double angSize, double rotation,
526  double minRes=2.5, double maxBright=14, bool visible=true);
527 
530  void removeSkyImage(const QString& id);
531 
536  void loadSound(const QString& filename, const QString& id);
537 
540  void playSound(const QString& id);
541 
545  void pauseSound(const QString& id);
546 
551  void stopSound(const QString& id);
552 
556  void dropSound(const QString& id);
557 
566  void loadVideo(const QString& filename, const QString& id, float x, float y, bool show, float alpha);
567 
570  void playVideo(const QString& id);
571 
575  void pauseVideo(const QString& id);
576 
581  void stopVideo(const QString& id);
582 
586  void dropVideo(const QString& id);
587 
591  void seekVideo(const QString& id, qint64 ms);
592 
597  void setVideoXY(const QString& id, float x, float y);
598 
602  void setVideoAlpha(const QString& id, float alpha);
603 
608  void resizeVideo(const QString& id, float w, float h);
609 
613  void showVideo(const QString& id, bool show);
614 
617  int getScreenWidth();
620  int getScreenHeight();
621 
624  double getScriptRate();
629  void setScriptRate(double r);
630 
633  void pauseScript();
634 
637  void setSelectedObjectInfo(const QString& level);
638 
640  void exit();
641 
643  void quitStellarium();
644 
647  void debug(const QString& s);
648 
651  void output(const QString& s);
652 
655  QString getAppLanguage();
656 
659  void setAppLanguage(QString langCode);
660 
663  QString getSkyLanguage();
664 
667  void setSkyLanguage(QString langCode);
668 
670  void goHome();
671 
674  void setMilkyWayVisible(bool b);
675 
678  void setMilkyWayIntensity(double i);
679 
682  double getMilkyWayIntensity();
683 
686  void setZodiacalLightVisible(bool b);
687 
690  void setZodiacalLightIntensity(double i);
691 
694  double getZodiacalLightIntensity();
695 
699  double jdFromDateString(const QString& dt, const QString& spec);
700 
701  // Methods wait() and waitFor() was added for documentation.
702  // Details: https://bugs.launchpad.net/stellarium/+bug/1402200
703 
707  void wait(double t) { Q_UNUSED(t) }
708 
718  void waitFor(const QString& dt, const QString& spec="utc") { Q_UNUSED(dt); Q_UNUSED(spec) }
719 
720 signals:
721  void requestLoadSkyImage(const QString& id, const QString& filename,
722  double c1, double c2,
723  double c3, double c4,
724  double c5, double c6,
725  double c7, double c8,
726  double minRes, double maxBright, bool visible);
727  void requestLoadSkyImageAltAz(const QString& id, const QString& filename,
728  double c1, double c2,
729  double c3, double c4,
730  double c5, double c6,
731  double c7, double c8,
732  double minRes, double maxBright, bool visible);
733 
734 
735  void requestRemoveSkyImage(const QString& id);
736 
737  void requestLoadSound(const QString& filename, const QString& id);
738  void requestPlaySound(const QString& id);
739  void requestPauseSound(const QString& id);
740  void requestStopSound(const QString& id);
741  void requestDropSound(const QString& id);
742  void requestLoadVideo(const QString& filename, const QString& id, float x, float y, bool show, float alpha);
743  void requestPlayVideo(const QString& id);
744  void requestPauseVideo(const QString& id);
745  void requestStopVideo(const QString& id);
746  void requestDropVideo(const QString& id);
747  void requestSeekVideo(const QString& id, qint64 ms);
748  void requestSetVideoXY(const QString& id, float x, float y);
749  void requestSetVideoAlpha(const QString& id, float alpha);
750  void requestResizeVideo(const QString& id, float w, float h);
751  void requestShowVideo(const QString& id, bool show);
752 
753  void requestSetNightMode(bool b);
754  void requestSetProjectionMode(QString id);
755  void requestSetSkyCulture(QString id);
756  void requestSetDiskViewport(bool b);
757  void requestExit();
758  void requestSetHomePosition();
759 };
760 
761 #endif // _STELMAINSCRIPTAPI_HPP_
762 
void setMinFps(float m)
Set the minimum frames per second.
double getViewDecAngle()
Get the current viewing direction Declination angle at center of view.
double getMJDay() const
Get the current date in Modified Julian Day.
bool getNightMode()
Get the current status of Night Mode.
QVariantMap getObjectInfo(const QString &name)
Fetch a map with data about an object's position, magnitude and so on.
void selectObjectByName(const QString &name, bool pointer=false)
Select an object by name.
void clear(const QString &state="natural")
Clear the display options, setting a "standard" view.
double jdFromDateString(const QString &dt, const QString &spec)
For use in setDate and waitFor For parameter descriptions see setDate().
void pauseVideo(const QString &id)
Pause a video which is playing.
void moveToAltAzi(const QString &alt, const QString &azi, float duration=1.)
move the current viewing direction to some specified altitude and azimuth angles may be specified in ...
int getScreenHeight()
Get the screen height in pixels.
QString getAppLanguage()
Get the current application language.
void setProjectionMode(const QString &id)
Set the current projection mode.
void setDiskViewport(bool b)
Set the disk viewport.
bool isRealTime()
Get the simulation time and rate state - is it "real time".
void playSound(const QString &id)
Play a sound which has previously been loaded with loadSound.
void moveToRaDec(const QString &ra, const QString &dec, float duration=1.)
move the current viewing direction to some specified right ascension and declination angles may be sp...
QString getDeltaTAlgorithm() const
get the DeltaT equation name for the simulation date and time as a string
double getTimeRate() const
Get simulation time rate.
double getViewDecJ2000Angle()
Get the current viewing direction Declination angle in J2000 frame at center of view.
double getViewRaJ2000Angle()
Get the current viewing direction Right Ascension in J2000 frame at center of view.
QString getProjectionMode()
Get the current projection mode ID string.
void setRealTime()
Set the simulation time to the current system time, and the time rate to 1.
void exit()
Stop the script.
QVariantMap getObserverLocationInfo()
Get the info of the current observer location.
void wait(double t)
Pauses the script for t seconds.
int getScreenWidth()
Get the screen width in pixels.
void loadVideo(const QString &filename, const QString &id, float x, float y, bool show, float alpha)
Load a video from a file.
void setMilkyWayVisible(bool b)
Show or hide the Milky Way.
void resizeVideo(const QString &id, float w, float h)
Resize the video widget to the specified width, height.
void setVideoAlpha(const QString &id, float alpha)
Set the alpha value of a video when visible.
void setNightMode(bool b)
Set the status of Night Mode.
void playVideo(const QString &id)
Play a video which has previously been loaded with loadVideo.
void loadSkyImageAltAz(const QString &id, const QString &filename, double alt0, double azi0, double alt1, double azi1, double alt2, double azi2, double alt3, double azi3, double minRes=2.5, double maxBright=14, bool visible=true)
Load an image which will have sky coordinates.
void setSphericMirror(bool b)
Set the viewport distortion effect.
void setSelectedObjectInfo(const QString &level)
Set the amount of selected object information to display.
void setDate(const QString &dt, const QString &spec="utc", const bool &enableDeltaT=true)
set the date in ISO format, e.g.
QString getSkyCultureName()
Find out the current sky culture and get it English name.
QString getSkyCultureNameI18n()
Find out the current sky culture and get it localized name.
void dropSound(const QString &id)
Drop a sound from memory.
void removeSkyImage(const QString &id)
Remove a SkyImage.
void setFlagGravityLabels(bool b)
Turn on/off gravity labels.
void setZodiacalLightVisible(bool b)
Show or hide the Zodiacal Light.
void setMountMode(const QString &mode)
Set the mount mode.
double getViewAltitudeAngle()
Get the current viewing direction altitude angle at center of view.
void debug(const QString &s)
print a debugging message to the console
QString getDate(const QString &spec="utc")
get the simulation date and time as a string in ISO format, e.g.
Provide script API for Stellarium global functions.
QVariantMap getSelectedObjectInfo()
Fetch a map with data about an latest selected object's position, magnitude and so on...
void setJDay(double JD)
Set the current date in Julian Day.
void showVideo(const QString &id, bool show)
Set the visibility state of a video.
float getMinFps()
Get the current minimum frames per second.
void setScriptRate(double r)
Set the script execution rate as a multiple of normal execution speed.
void moveToRaDecJ2000(const QString &ra, const QString &dec, float duration=1.)
move the current viewing direction to some specified right ascension and declination in the J2000 fra...
void loadSkyImage(const QString &id, const QString &filename, double ra0, double dec0, double ra1, double dec1, double ra2, double dec2, double ra3, double dec3, double minRes=2.5, double maxBright=14, bool visible=true)
Load an image which will have sky coordinates.
void setMaxFps(float m)
Set the maximum frames per second.
QStringList getAllSkyCultureIDs()
Get a list of Sky Culture IDs.
void setSkyLanguage(QString langCode)
Set the current sky language.
void goHome()
Go to defaults position and direction of view.
void waitFor(const QString &dt, const QString &spec="utc")
Waits until a specified simulation date/time.
void loadSound(const QString &filename, const QString &id)
Load a sound from a file.
void setAppLanguage(QString langCode)
Set the current application language.
void seekVideo(const QString &id, qint64 ms)
Seeks a video to the requested time.
QString getMountMode()
Get the mount mode as a string.
void setGuiVisible(bool b)
Show or hide the GUI (toolbars).
void output(const QString &s)
print an output message from script
void pauseScript()
Pause the currently running script.
bool getDiskViewport()
Get the status of the disk viewport.
void dropVideo(const QString &id)
Drop a video from memory.
QString getDeltaT() const
get the DeltaT for the simulation date and time as a string in HMS format, e.g.
double getMilkyWayIntensity()
Get Milky Way intensity.
double getViewAzimuthAngle()
Get the current viewing direction azimuth angle at center of view.
QString getObserverLocation()
Get the ID of the current observer location.
float getMaxFps()
Get the current maximum frames per second.
QString getSkyLanguage()
Get the current sky language.
void quitStellarium()
Close Stellarium.
void setDeltaTAlgorithm(QString algorithmName)
set equation of the DeltaT for the simulation date and time
double getScriptRate()
Get the script execution rate as a multiple of normal execution speed.
void setMJDay(double MJD)
Set the current date in Modified Julian Day.
void setTimeRate(double ts)
Set time speed in JDay/sec.
void pauseSound(const QString &id)
Pause a sound which is playing.
void screenshot(const QString &prefix, bool invert=false, const QString &dir="")
Save a screenshot.
void setMilkyWayIntensity(double i)
Set Milky Way intensity.
bool getFlagGravityLabels()
Get the current status of the gravity labels option.
void setSkyCulture(const QString &id)
Set the current sky culture.
QString getSkyCulture()
Find out the current sky culture.
double getViewRaAngle()
Get the current viewing direction Right Ascension at center of view.
void setZodiacalLightIntensity(double i)
Set Zodiacal Light intensity.
void stopSound(const QString &id)
Stop a sound from playing.
double getZodiacalLightIntensity()
Get Zodiacal Light intensity.
void setVideoXY(const QString &id, float x, float y)
Sets the position of the video widget.
double getJDay() const
Get the current date in Julian Day.
QVariantMap getObjectPosition(const QString &name)
Fetch a map with data about an object's position, magnitude and so on.
void stopVideo(const QString &id)
Stop a video from playing.
void setObserverLocation(double longitude, double latitude, double altitude, double duration=1., const QString &name="", const QString &planet="")
Set the observer location.