Stellarium 0.15.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 
76  // TODO: This calls for implementing "sol" days (planets's solar days)!
87  // GZ JDfix for 0.14: I estimate 99.7% of users will want to set UT-based dates here. We could use an awkward name like dateIsUTbased=true to keep default value true.
88  //void setDate(const QString& dt, const QString& spec="utc", const bool& enableDeltaT=true);
89  void setDate(const QString& dateStr, const QString& spec="utc", const bool& dateIsDT=false);
90 
96  QString getDate(const QString& spec="utc");
97 
101  QString getDeltaT() const;
102 
105  QString getDeltaTAlgorithm() const;
106 
115  void setDeltaTAlgorithm(QString algorithmName);
116 
122  void setTimeRate(double ts);
125  double getTimeRate() const;
126 
130  bool isRealTime();
131 
133  void setRealTime();
134 
140  void selectObjectByName(const QString& name, bool pointer=false);
141 
155  QVariantMap getObjectPosition(const QString& name);
156 
187  QVariantMap getObjectInfo(const QString& name);
188 
218  QVariantMap getSelectedObjectInfo();
219 
229  void clear(const QString& state="natural");
230 
234  double getViewAltitudeAngle();
235 
239  double getViewAzimuthAngle();
240 
244  double getViewRaAngle();
245 
249  double getViewDecAngle();
250 
253  double getViewRaJ2000Angle();
254 
257  double getViewDecJ2000Angle();
258 
264  void moveToAltAzi(const QString& alt, const QString& azi, float duration=1.);
265 
271  void moveToRaDec(const QString& ra, const QString& dec, float duration=1.);
272 
278  void moveToRaDecJ2000(const QString& ra, const QString& dec, float duration=1.);
279 
297  void setObserverLocation(double longitude, double latitude, double altitude, double duration=1., const QString& name="", const QString& planet="");
298 
304  void setObserverLocation(const QString id, float duration=1.);
305 
307  QString getObserverLocation();
308 
321  QVariantMap getObserverLocationInfo();
322 
329  void screenshot(const QString& prefix, bool invert=false, const QString& dir="", const bool overwrite=false);
330 
334  void setGuiVisible(bool b);
335 
341  void setMinFps(float m);
342 
345  float getMinFps();
346 
349  void setMaxFps(float m);
350 
353  float getMaxFps();
354 
357  QString getMountMode();
358 
361  void setMountMode(const QString& mode);
362 
365  bool getNightMode();
366 
369  void setNightMode(bool b);
370 
374  QString getProjectionMode();
375 
387  void setProjectionMode(const QString& id);
388 
391  bool getDiskViewport();
392 
395  void setDiskViewport(bool b);
396 
399  void setSphericMirror(bool b);
400 
403  QStringList getAllSkyCultureIDs();
404 
408  QString getSkyCulture();
409 
412  void setSkyCulture(const QString& id);
413 
416  QString getSkyCultureName();
417 
420  QString getSkyCultureNameI18n();
421 
424  bool getFlagGravityLabels();
425 
428  void setFlagGravityLabels(bool b);
429 
448  void loadSkyImage(const QString& id, const QString& filename,
449  double ra0, double dec0,
450  double ra1, double dec1,
451  double ra2, double dec2,
452  double ra3, double dec3,
453  double minRes=2.5, double maxBright=14, bool visible=true);
454 
455 
459  void loadSkyImage(const QString& id, const QString& filename,
460  const QString& ra0, const QString& dec0,
461  const QString& ra1, const QString& dec1,
462  const QString& ra2, const QString& dec2,
463  const QString& ra3, const QString& dec3,
464  double minRes=2.5, double maxBright=14, bool visible=true);
465 
480  void loadSkyImage(const QString& id, const QString& filename,
481  double ra, double dec, double angSize, double rotation,
482  double minRes=2.5, double maxBright=14, bool visible=true);
483 
488  void loadSkyImage(const QString& id, const QString& filename,
489  const QString& ra, const QString& dec, double angSize, double rotation,
490  double minRes=2.5, double maxBright=14, bool visible=true);
491 
510  void loadSkyImageAltAz(const QString& id, const QString& filename,
511  double alt0, double azi0,
512  double alt1, double azi1,
513  double alt2, double azi2,
514  double alt3, double azi3,
515  double minRes=2.5, double maxBright=14, bool visible=true);
516 
531  void loadSkyImageAltAz(const QString& id, const QString& filename,
532  double alt, double azi, double angSize, double rotation,
533  double minRes=2.5, double maxBright=14, bool visible=true);
534 
537  void removeSkyImage(const QString& id);
538 
543  void loadSound(const QString& filename, const QString& id);
544 
547  void playSound(const QString& id);
548 
552  void pauseSound(const QString& id);
553 
558  void stopSound(const QString& id);
559 
563  void dropSound(const QString& id);
564 
573  void loadVideo(const QString& filename, const QString& id, float x, float y, bool show, float alpha);
574 
577  void playVideo(const QString& id);
578 
582  void pauseVideo(const QString& id);
583 
588  void stopVideo(const QString& id);
589 
593  void dropVideo(const QString& id);
594 
598  void seekVideo(const QString& id, qint64 ms);
599 
604  void setVideoXY(const QString& id, float x, float y);
605 
609  void setVideoAlpha(const QString& id, float alpha);
610 
615  void resizeVideo(const QString& id, float w, float h);
616 
620  void showVideo(const QString& id, bool show);
621 
624  int getScreenWidth();
627  int getScreenHeight();
628 
631  double getScriptRate();
636  void setScriptRate(double r);
637 
640  void pauseScript();
641 
644  void setSelectedObjectInfo(const QString& level);
645 
647  void exit();
648 
650  void quitStellarium();
651 
654  void debug(const QString& s);
655 
658  void output(const QString& s);
659 
661  void resetOutput(void);
662 
665  QString getAppLanguage();
666 
669  void setAppLanguage(QString langCode);
670 
673  QString getSkyLanguage();
674 
677  void setSkyLanguage(QString langCode);
678 
680  void goHome();
681 
684  void setMilkyWayVisible(bool b);
685 
688  void setMilkyWayIntensity(double i);
689 
692  double getMilkyWayIntensity();
693 
696  void setZodiacalLightVisible(bool b);
697 
700  void setZodiacalLightIntensity(double i);
701 
704  double getZodiacalLightIntensity();
705 
709  double jdFromDateString(const QString& dt, const QString& spec);
710 
711  // Methods wait() and waitFor() was added for documentation.
712  // Details: https://bugs.launchpad.net/stellarium/+bug/1402200
713 
717  void wait(double t) { Q_UNUSED(t) }
718 
728  void waitFor(const QString& dt, const QString& spec="utc") { Q_UNUSED(dt); Q_UNUSED(spec) }
729 
730 signals:
731  void requestLoadSkyImage(const QString& id, const QString& filename,
732  double c1, double c2,
733  double c3, double c4,
734  double c5, double c6,
735  double c7, double c8,
736  double minRes, double maxBright, bool visible);
737  void requestLoadSkyImageAltAz(const QString& id, const QString& filename,
738  double c1, double c2,
739  double c3, double c4,
740  double c5, double c6,
741  double c7, double c8,
742  double minRes, double maxBright, bool visible);
743 
744 
745  void requestRemoveSkyImage(const QString& id);
746 
747  void requestLoadSound(const QString& filename, const QString& id);
748  void requestPlaySound(const QString& id);
749  void requestPauseSound(const QString& id);
750  void requestStopSound(const QString& id);
751  void requestDropSound(const QString& id);
752  void requestLoadVideo(const QString& filename, const QString& id, float x, float y, bool show, float alpha);
753  void requestPlayVideo(const QString& id);
754  void requestPauseVideo(const QString& id);
755  void requestStopVideo(const QString& id);
756  void requestDropVideo(const QString& id);
757  void requestSeekVideo(const QString& id, qint64 ms);
758  void requestSetVideoXY(const QString& id, float x, float y);
759  void requestSetVideoAlpha(const QString& id, float alpha);
760  void requestResizeVideo(const QString& id, float w, float h);
761  void requestShowVideo(const QString& id, bool show);
762 
763  void requestSetNightMode(bool b);
764  void requestSetProjectionMode(QString id);
765  void requestSetSkyCulture(QString id);
766  void requestSetDiskViewport(bool b);
767  void requestExit();
768  void requestSetHomePosition();
769 };
770 
771 #endif // _STELMAINSCRIPTAPI_HPP_
772 
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 as 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.
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 as Julian Day number.
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 setDate(const QString &dateStr, const QString &spec="utc", const bool &dateIsDT=false)
set the date in ISO format, e.g.
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.
void resetOutput(void)
Reset (clear) output file.
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.
void screenshot(const QString &prefix, bool invert=false, const QString &dir="", const bool overwrite=false)
Save a screenshot.
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 as 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 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 as Julian Day number.
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.