• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • plugins
  • render
  • stars
StarsPlugin.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2008 Torsten Rahn <tackat@kde.org>
9 //
10 
11 //
12 // This class is a stars plugin.
13 //
14 
15 #ifndef MARBLESTARSPLUGIN_H
16 #define MARBLESTARSPLUGIN_H
17 
18 #include <QObject>
19 #include <QVector>
20 #include <QVariant>
21 #include <QHash>
22 #include <QBrush>
23 
24 #include "RenderPlugin.h"
25 #include "Quaternion.h"
26 #include "DialogConfigurationInterface.h"
27 
28 class QDateTime;
29 class QMenu;
30 class SolarSystem;
31 
32 namespace Ui
33 {
34  class StarsConfigWidget;
35 }
36 
37 namespace Marble
38 {
39 
40 class StarPoint
41 {
42 public:
43  StarPoint() {}
51  StarPoint(int id, qreal rect, qreal decl, qreal mag, int colorId) :
52  m_id( id ),
53  m_magnitude( mag ),
54  m_colorId( colorId )
55  {
56  m_q = Quaternion::fromSpherical( rect, decl );
57  }
58 
59  ~StarPoint() {}
60 
61  qreal magnitude() const
62  {
63  return m_magnitude;
64  }
65 
66  const Quaternion &quaternion() const
67  {
68  return m_q;
69  }
70 
71  int id() const
72  {
73  return m_id;
74  }
75 
76  int colorId() const
77  {
78  return m_colorId;
79  }
80 
81 private:
82  int m_id;
83  qreal m_magnitude;
84  Quaternion m_q;
85  int m_colorId;
86 };
87 
88 class DsoPoint
89 {
90 public:
91  DsoPoint() {}
99  DsoPoint(QString id, qreal rect, qreal decl) {
100  m_id = id;
101  m_q = Quaternion::fromSpherical( rect, decl );
102  }
103 
104  QString id() const
105  {
106  return m_id;
107  }
108 
109  const Quaternion &quaternion() const
110  {
111  return m_q;
112  }
113 
114 private:
115  QString m_id;
116  Quaternion m_q;
117 };
118 
124 class Constellation;
125 
126 class StarsPlugin : public RenderPlugin, public DialogConfigurationInterface
127 {
128  Q_OBJECT
129  Q_PLUGIN_METADATA( IID "org.kde.edu.marble.StarsPlugin" )
130  Q_INTERFACES(Marble::RenderPluginInterface)
131  Q_INTERFACES( Marble::DialogConfigurationInterface )
132  MARBLE_PLUGIN(StarsPlugin)
133 public:
134  explicit StarsPlugin( const MarbleModel *marbleModel=0 );
135  ~StarsPlugin();
136 
137  QStringList backendTypes() const;
138 
139  QString renderPolicy() const;
140 
141  QStringList renderPosition() const;
142 
143  virtual RenderType renderType() const;
144 
145  QString name() const;
146 
147  QString guiString() const;
148 
149  QString nameId() const;
150 
151  QString version() const;
152 
153  QString description() const;
154 
155  QString copyrightYears() const;
156 
157  QList<PluginAuthor> pluginAuthors() const;
158 
159  QIcon icon() const;
160 
161  void initialize();
162 
163  bool isInitialized() const;
164 
165  bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 );
166 
167  QDialog *configDialog();
168 
169  QHash<QString,QVariant> settings() const;
170 
171  void setSettings( const QHash<QString,QVariant> &settings );
172 
173  QString assembledConstellation(const QString &name);
174 
175 protected:
176  bool eventFilter( QObject *object, QEvent *e );
177 
178 private Q_SLOTS:
179  void requestRepaint();
180  void toggleSunMoon();
181  void togglePlanets();
182  void toggleDsos();
183  void toggleConstellations();
184 
185 public Q_SLOTS:
186  void readSettings();
187  void writeSettings();
188  void constellationGetColor();
189  void constellationLabelGetColor();
190  void dsoLabelGetColor();
191  void eclipticGetColor();
192  void celestialEquatorGetColor();
193  void celestialPoleGetColor();
194 
195 private:
196  template<class T>
197  T readSetting( const QHash<QString, QVariant> &settings, const QString &key, const T &defaultValue )
198  {
199  if ( !settings.contains( key ) ) {
200  return defaultValue;
201  }
202 
203  return settings[key].value<T>();
204  }
205 
206  QPixmap starPixmap(qreal mag, int colorId) const;
207 
208  void prepareNames();
209  QHash<QString, QString> m_abbrHash;
210  QHash<QString, QString> m_nativeHash;
211  int m_nameIndex;
212 
213  void renderPlanet(const QString &planetId,
214  GeoPainter *painter,
215  SolarSystem &sys,
216  ViewportParams *viewport,
217  qreal skyRadius,
218  matrix &skyAxisMatrix) const;
219  void createStarPixmaps();
220  void loadStars();
221  void loadConstellations();
222  void loadDsos();
223  QPointer<QDialog> m_configDialog;
224  Ui::StarsConfigWidget *ui_configWidget;
225  bool m_renderStars;
226  bool m_renderConstellationLines;
227  bool m_renderConstellationLabels;
228  bool m_renderDsos;
229  bool m_renderDsoLabels;
230  bool m_renderSun;
231  bool m_renderMoon;
232  QMap<QString, bool> m_renderPlanet;
233  bool m_renderEcliptic;
234  bool m_renderCelestialEquator;
235  bool m_renderCelestialPole;
236  bool m_starsLoaded;
237  bool m_starPixmapsCreated;
238  bool m_constellationsLoaded;
239  bool m_dsosLoaded;
240  bool m_zoomSunMoon;
241  bool m_viewSolarSystemLabel;
242  QVector<StarPoint> m_stars;
243  QPixmap m_pixmapSun;
244  QPixmap m_pixmapMoon;
245  QVector<Constellation> m_constellations;
246  QVector<DsoPoint> m_dsos;
247  QHash<int,int> m_idHash;
248  QImage m_dsoImage;
249  int m_magnitudeLimit;
250  int m_zoomCoefficient;
251  QBrush m_constellationBrush;
252  QBrush m_constellationLabelBrush;
253  QBrush m_dsoLabelBrush;
254  QBrush m_eclipticBrush;
255  QBrush m_celestialEquatorBrush;
256  QBrush m_celestialPoleBrush;
257  QVector<QPixmap> m_pixN1Stars;
258  QVector<QPixmap> m_pixP0Stars;
259  QVector<QPixmap> m_pixP1Stars;
260  QVector<QPixmap> m_pixP2Stars;
261  QVector<QPixmap> m_pixP3Stars;
262  QVector<QPixmap> m_pixP4Stars;
263  QVector<QPixmap> m_pixP5Stars;
264  QVector<QPixmap> m_pixP6Stars;
265  QVector<QPixmap> m_pixP7Stars;
266 
267  /* Context menu */
268  QPointer<QMenu> m_contextMenu;
269  QPointer<QAction> m_constellationsAction;
270  QPointer<QAction> m_sunMoonAction;
271  QPointer<QAction> m_planetsAction;
272  QPointer<QAction> m_dsoAction;
273 
274  bool m_doRender;
275 };
276 
277 class Constellation
278 {
279 public:
280  Constellation() {}
281  Constellation(StarsPlugin *plugin, const QString &name, const QString &stars) :
282  m_plugin( plugin ),
283  m_name( name )
284  {
285  QStringList starlist = stars.split(" ");
286  for (int i = 0; i < starlist.size(); ++i) {
287  m_stars << starlist.at(i).toInt();
288  }
289 
290  }
291 
292  int size() const
293  {
294  return m_stars.size();
295  }
296 
297  int at(const int index) const
298  {
299  if (index < 0) {
300  return -1;
301  }
302  if (index >= m_stars.size()) {
303  return -1;
304  }
305  return m_stars.at(index);
306  }
307 
308  QString name() const
309  {
310  return m_plugin->assembledConstellation(m_name);
311  }
312 
313 private:
314  StarsPlugin *m_plugin;
315  QString m_name;
316  QVector<int> m_stars;
317 
318 };
319 
320 }
321 
322 #endif // MARBLESTARSPLUGIN_H
Marble::StarsPlugin::isInitialized
bool isInitialized() const
Definition: StarsPlugin.cpp:155
Quaternion.h
Marble::StarsPlugin::~StarsPlugin
~StarsPlugin()
Definition: StarsPlugin.cpp:79
QEvent
Marble::matrix
xmmfloat matrix[3]
Definition: Quaternion.h:38
Marble::RenderPluginInterface
The class that specifies the Marble layer interface of a plugin.
Definition: RenderPluginInterface.h:30
Marble::StarsPlugin::writeSettings
void writeSettings()
Definition: StarsPlugin.cpp:425
Marble::StarsPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: StarsPlugin.cpp:128
Marble::Constellation::size
int size() const
Definition: StarsPlugin.h:292
Marble::StarsPlugin::eventFilter
bool eventFilter(QObject *object, QEvent *e)
Definition: StarsPlugin.cpp:1422
Marble::StarsPlugin::render
bool render(GeoPainter *painter, ViewportParams *viewport, const QString &renderPos, GeoSceneLayer *layer=0)
Renders the content provided by the layer on the viewport.
Definition: StarsPlugin.cpp:780
Marble::DialogConfigurationInterface
This interface allows a plugin to provide a QWidget-based configuration dialog which is accessible wi...
Definition: DialogConfigurationInterface.h:31
Marble::Constellation
Definition: StarsPlugin.h:277
Marble::StarsPlugin
Definition: StarsPlugin.h:126
Marble::GeoPainter
A painter that allows to draw geometric primitives on the map.
Definition: GeoPainter.h:98
Marble::StarsPlugin::renderPosition
QStringList renderPosition() const
Preferred level in the layer stack for the rendering.
Definition: StarsPlugin.cpp:98
Marble::StarPoint::magnitude
qreal magnitude() const
Definition: StarsPlugin.h:61
Marble::StarPoint::~StarPoint
~StarPoint()
Definition: StarsPlugin.h:59
QString::split
QStringList split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const
Marble::StarPoint
Definition: StarsPlugin.h:40
Marble::StarsPlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: StarsPlugin.cpp:160
Marble::StarPoint::colorId
int colorId() const
Definition: StarsPlugin.h:76
QList::at
const T & at(int i) const
QMap< QString, bool >
Marble::StarsPlugin::celestialPoleGetColor
void celestialPoleGetColor()
Definition: StarsPlugin.cpp:520
QPointer< QDialog >
Marble::StarsPlugin::backendTypes
QStringList backendTypes() const
Returns the name(s) of the backend that the plugin can render This method should return the name of t...
Definition: StarsPlugin.cpp:88
Marble::StarsPlugin::renderPolicy
QString renderPolicy() const
Return how the plugin settings should be used.
Definition: StarsPlugin.cpp:93
Marble::StarsPlugin::dsoLabelGetColor
void dsoLabelGetColor()
Definition: StarsPlugin.cpp:487
QBrush
QList::size
int size() const
Marble::StarPoint::StarPoint
StarPoint(int id, qreal rect, qreal decl, qreal mag, int colorId)
create a starpoint from rectaszension and declination
Definition: StarsPlugin.h:51
Marble::GeoSceneLayer
Layer of a GeoScene document.
Definition: GeoSceneLayer.h:43
Marble::StarPoint::id
int id() const
Definition: StarsPlugin.h:71
Marble::StarPoint::StarPoint
StarPoint()
Definition: StarsPlugin.h:43
QHash< QString, QVariant >
Marble::DsoPoint::DsoPoint
DsoPoint()
Definition: StarsPlugin.h:91
QObject
SolarSystem
Definition: solarsystem.h:17
Marble::StarsPlugin::eclipticGetColor
void eclipticGetColor()
Definition: StarsPlugin.cpp:498
Marble::StarsPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: StarsPlugin.cpp:146
Marble::StarsPlugin::renderType
virtual RenderType renderType() const
Render type of the plugin.
Definition: StarsPlugin.cpp:103
Marble::StarsPlugin::settings
QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: StarsPlugin.cpp:195
Marble::Constellation::name
QString name() const
Definition: StarsPlugin.h:308
DialogConfigurationInterface.h
Marble::Constellation::at
int at(const int index) const
Definition: StarsPlugin.h:297
QString
QList
Marble::Constellation::Constellation
Constellation()
Definition: StarsPlugin.h:280
QStringList
Marble::ViewportParams
A public class that controls what is visible in the viewport of a Marble map.
Definition: ViewportParams.h:44
Marble::DsoPoint::id
QString id() const
Definition: StarsPlugin.h:104
QPixmap
QHash::value
const T value(const Key &key) const
QMenu
Marble::StarsPlugin::version
QString version() const
Definition: StarsPlugin.cpp:123
Marble::StarsPlugin::constellationLabelGetColor
void constellationLabelGetColor()
Definition: StarsPlugin.cpp:476
Marble::DsoPoint::DsoPoint
DsoPoint(QString id, qreal rect, qreal decl)
create a dsopoint from rectaszension and declination
Definition: StarsPlugin.h:99
QImage
Marble::StarsPlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: StarsPlugin.cpp:113
Marble::StarsPlugin::constellationGetColor
void constellationGetColor()
Definition: StarsPlugin.cpp:465
Marble::DsoPoint
Definition: StarsPlugin.h:88
Marble::StarsPlugin::celestialEquatorGetColor
void celestialEquatorGetColor()
Definition: StarsPlugin.cpp:509
QVector::at
const T & at(int i) const
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:97
Marble::StarsPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: StarsPlugin.cpp:118
Marble::StarsPlugin::copyrightYears
QString copyrightYears() const
Definition: StarsPlugin.cpp:133
QVector
Marble::StarsPlugin::initialize
void initialize()
Definition: StarsPlugin.cpp:151
Marble::StarsPlugin::setSettings
void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: StarsPlugin.cpp:229
RenderPlugin.h
Marble::Quaternion
Definition: Quaternion.h:41
Marble::Constellation::Constellation
Constellation(StarsPlugin *plugin, const QString &name, const QString &stars)
Definition: StarsPlugin.h:281
Marble::DsoPoint::quaternion
const Quaternion & quaternion() const
Definition: StarsPlugin.h:109
Marble::StarsPlugin::assembledConstellation
QString assembledConstellation(const QString &name)
Definition: StarsPlugin.cpp:312
QDialog
Marble::StarsPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: StarsPlugin.cpp:108
QHash::contains
bool contains(const Key &key) const
mag
double mag(double x[3])
Definition: sgp4ext.cpp:68
Marble::StarsPlugin::readSettings
void readSettings()
Definition: StarsPlugin.cpp:326
Marble::StarsPlugin::StarsPlugin
StarsPlugin(const MarbleModel *marbleModel=0)
Definition: StarsPlugin.cpp:40
Marble::RenderPlugin::marbleModel
const MarbleModel * marbleModel() const
Access to the MarbleModel.
Definition: RenderPlugin.cpp:83
QVector::size
int size() const
Marble::RenderPlugin::RenderType
RenderType
A Type of plugin.
Definition: RenderPlugin.h:59
Marble::StarPoint::quaternion
const Quaternion & quaternion() const
Definition: StarsPlugin.h:66
Marble::RenderPlugin
The abstract class that creates a renderable item.
Definition: RenderPlugin.h:43
Marble::StarsPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: StarsPlugin.cpp:138
Marble::Quaternion::fromSpherical
static Quaternion fromSpherical(qreal lon, qreal lat)
used to generate Quaternion from longitude and latitude
Definition: Quaternion.cpp:38
QIcon
QDateTime
MARBLE_PLUGIN
#define MARBLE_PLUGIN(T)
Definition: RenderPlugin.h:340
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:42 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal