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

marble

  • sources
  • kde-4.12
  • 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 
30 namespace Ui
31 {
32  class StarsConfigWidget;
33 }
34 
35 
36 namespace Marble
37 {
38 
39 class StarPoint
40 {
41 public:
42  StarPoint() {}
50  StarPoint(int id, qreal rect, qreal decl, qreal mag, int colorId) {
51  m_id = id;
52  m_q = Quaternion::fromSpherical( rect, decl );
53  m_mag = mag;
54  m_colorId = colorId;
55  }
56 
57  ~StarPoint() {}
58 
59  qreal magnitude() const {
60  return m_mag;
61  }
62 
63  const Quaternion &quaternion() const {
64  return m_q;
65  }
66 
67  int id() const {
68  return m_id;
69  }
70 
71  int colorId() const {
72  return m_colorId;
73  }
74 
75 private:
76  int m_id;
77  qreal m_mag;
78  Quaternion m_q;
79  int m_colorId;
80 };
81 
82 class DsoPoint
83 {
84 public:
85  DsoPoint() {}
93  DsoPoint(QString id, qreal rect, qreal decl) {
94  m_id = id;
95  m_q = Quaternion::fromSpherical( rect, decl );
96  }
97 
98  ~DsoPoint() {}
99 
100  QString id() const {
101  return m_id;
102  }
103 
104  const Quaternion &quaternion() const {
105  return m_q;
106  }
107 
108 private:
109  QString m_id;
110  Quaternion m_q;
111 };
112 
118 class Constellation;
119 
120 class StarsPlugin : public RenderPlugin, public DialogConfigurationInterface
121 {
122  Q_OBJECT
123  Q_PLUGIN_METADATA( IID "org.kde.edu.marble.StarsPlugin" )
124  Q_INTERFACES(Marble::RenderPluginInterface)
125  Q_INTERFACES( Marble::DialogConfigurationInterface )
126  MARBLE_PLUGIN(StarsPlugin)
127 public:
128  explicit StarsPlugin( const MarbleModel *marbleModel=0 );
129 
130  QStringList backendTypes() const;
131 
132  QString renderPolicy() const;
133 
134  QStringList renderPosition() const;
135 
136  virtual RenderType renderType() const;
137 
138  QString name() const;
139 
140  QString guiString() const;
141 
142  QString nameId() const;
143 
144  QString version() const;
145 
146  QString description() const;
147 
148  QString copyrightYears() const;
149 
150  QList<PluginAuthor> pluginAuthors() const;
151 
152  QIcon icon() const;
153 
154  void initialize();
155 
156  bool isInitialized() const;
157 
158  bool render( GeoPainter *painter, ViewportParams *viewport, const QString& renderPos, GeoSceneLayer * layer = 0 );
159 
160  QDialog *configDialog();
161 
162  QHash<QString,QVariant> settings() const;
163 
164  void setSettings( const QHash<QString,QVariant> &settings );
165 
166  QString assembledConstellation(const QString &name);
167 
168 protected:
169  bool eventFilter( QObject *object, QEvent *e );
170 
171 private Q_SLOTS:
172  void requestRepaint();
173  void toggleSun();
174  void toggleDsos();
175  void toggleDsoLabels();
176  void toggleConstellationLines();
177  void toggleConstellationLabels();
178 
179 
180 public Q_SLOTS:
181  void readSettings();
182  void writeSettings();
183  void constellationGetColor();
184  void constellationLabelGetColor();
185  void dsoLabelGetColor();
186  void eclipticGetColor();
187  void celestialEquatorGetColor();
188  void celestialPoleGetColor();
189 
190 private:
191  template<class T>
192  T readSetting( const QHash<QString, QVariant> &settings, const QString &key, const T &defaultValue )
193  {
194  if ( !settings.contains( key ) ) {
195  return defaultValue;
196  }
197 
198  return settings[key].value<T>();
199  }
200 
201  void prepareNames();
202  QHash<QString, QString> m_abbrHash;
203  QHash<QString, QString> m_nativeHash;
204  int m_nameIndex;
205 
206  // sidereal time in hours:
207  qreal siderealTime( const QDateTime& );
208  void loadStars();
209  void loadConstellations();
210  void loadDsos();
211  QDialog *m_configDialog;
212  Ui::StarsConfigWidget *ui_configWidget;
213  bool m_renderStars;
214  bool m_renderConstellationLines;
215  bool m_renderConstellationLabels;
216  bool m_renderDsos;
217  bool m_renderDsoLabels;
218  bool m_renderSun;
219  bool m_renderEcliptic;
220  bool m_renderCelestialEquator;
221  bool m_renderCelestialPole;
222  bool m_starsLoaded;
223  bool m_constellationsLoaded;
224  bool m_dsosLoaded;
225  QVector<StarPoint> m_stars;
226  QPixmap m_pixmapSun;
227  QVector<Constellation> m_constellations;
228  QVector<DsoPoint> m_dsos;
229  QHash<int,int> m_idHash;
230  QImage m_dsoImage;
231  int m_magnitudeLimit;
232  QBrush m_constellationBrush;
233  QBrush m_constellationLabelBrush;
234  QBrush m_dsoLabelBrush;
235  QBrush m_eclipticBrush;
236  QBrush m_celestialEquatorBrush;
237  QBrush m_celestialPoleBrush;
238  QVector<QPixmap> m_pixN1Stars;
239  QVector<QPixmap> m_pixP0Stars;
240  QVector<QPixmap> m_pixP1Stars;
241  QVector<QPixmap> m_pixP2Stars;
242  QVector<QPixmap> m_pixP3Stars;
243  QVector<QPixmap> m_pixP4Stars;
244  QVector<QPixmap> m_pixP5Stars;
245  QVector<QPixmap> m_pixP6Stars;
246  QVector<QPixmap> m_pixP7Stars;
247 
248  bool m_doRender;
249 };
250 
251 class Constellation
252 {
253 public:
254  Constellation() {}
255  Constellation(StarsPlugin *plug, QString &name, QString &stars) {
256  m_plugin = plug;
257  m_name = name;
258  QStringList starlist = stars.split(" ");
259  for (int i = 0; i < starlist.size(); ++i) {
260  m_stars << starlist.at(i).toInt();
261  }
262 
263  }
264 
265  int size() const {
266  return m_stars.size();
267  }
268 
269  int at(const int index) const {
270  if (index < 0) return -1;
271  if (index >= m_stars.size()) return -1;
272  return m_stars.at(index);
273  }
274 
275  QString name() const {
276  return m_plugin->assembledConstellation(m_name);
277  }
278 
279 private:
280  StarsPlugin *m_plugin;
281  QString m_name;
282  QVector<int> m_stars;
283 
284 };
285 
286 }
287 
288 #endif // MARBLESTARSPLUGIN_H
Marble::StarsPlugin::isInitialized
bool isInitialized() const
Definition: StarsPlugin.cpp:133
Quaternion.h
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:665
Marble::StarsPlugin::description
QString description() const
Returns a user description of the plugin.
Definition: StarsPlugin.cpp:106
Marble::Constellation::size
int size() const
Definition: StarsPlugin.h:265
Marble::StarsPlugin::eventFilter
bool eventFilter(QObject *object, QEvent *e)
Definition: StarsPlugin.cpp:1439
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:996
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:251
QDialog
Marble::StarsPlugin
Definition: StarsPlugin.h:120
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:76
Marble::StarPoint::magnitude
qreal magnitude() const
Definition: StarsPlugin.h:59
Marble::StarPoint::~StarPoint
~StarPoint()
Definition: StarsPlugin.h:57
Marble::StarPoint
Definition: StarsPlugin.h:39
Marble::StarsPlugin::configDialog
QDialog * configDialog()
Returns a pointer to the configuration dialog of the plugin.
Definition: StarsPlugin.cpp:138
Marble::StarPoint::colorId
int colorId() const
Definition: StarsPlugin.h:71
Marble::StarsPlugin::celestialPoleGetColor
void celestialPoleGetColor()
Definition: StarsPlugin.cpp:741
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:66
Marble::StarsPlugin::renderPolicy
QString renderPolicy() const
Return how the plugin settings should be used.
Definition: StarsPlugin.cpp:71
Marble::StarsPlugin::dsoLabelGetColor
void dsoLabelGetColor()
Definition: StarsPlugin.cpp:708
Marble::Constellation::Constellation
Constellation(StarsPlugin *plug, QString &name, QString &stars)
Definition: StarsPlugin.h:255
QObject
Marble::StarPoint::StarPoint
StarPoint(int id, qreal rect, qreal decl, qreal mag, int colorId)
create a starpoint from rectaszension and declination
Definition: StarsPlugin.h:50
Marble::GeoSceneLayer
Layer of a GeoScene document.
Definition: GeoSceneLayer.h:43
Marble::StarPoint::id
int id() const
Definition: StarsPlugin.h:67
Marble::StarPoint::StarPoint
StarPoint()
Definition: StarsPlugin.h:42
Marble::DsoPoint::DsoPoint
DsoPoint()
Definition: StarsPlugin.h:85
Marble::StarsPlugin::eclipticGetColor
void eclipticGetColor()
Definition: StarsPlugin.cpp:719
Marble::StarsPlugin::icon
QIcon icon() const
Returns an icon for the plugin.
Definition: StarsPlugin.cpp:124
Marble::StarsPlugin::renderType
virtual RenderType renderType() const
Render type of the plugin.
Definition: StarsPlugin.cpp:81
Marble::StarsPlugin::settings
QHash< QString, QVariant > settings() const
Settings of the plugin.
Definition: StarsPlugin.cpp:177
Marble::Constellation::name
QString name() const
Definition: StarsPlugin.h:275
DialogConfigurationInterface.h
Marble::Constellation::at
int at(const int index) const
Definition: StarsPlugin.h:269
Marble::Constellation::Constellation
Constellation()
Definition: StarsPlugin.h:254
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:100
Marble::StarsPlugin::version
QString version() const
Definition: StarsPlugin.cpp:101
Marble::StarsPlugin::constellationLabelGetColor
void constellationLabelGetColor()
Definition: StarsPlugin.cpp:697
Marble::DsoPoint::DsoPoint
DsoPoint(QString id, qreal rect, qreal decl)
create a dsopoint from rectaszension and declination
Definition: StarsPlugin.h:93
Marble::StarsPlugin::guiString
QString guiString() const
String that should be displayed in GUI.
Definition: StarsPlugin.cpp:91
Marble::StarsPlugin::constellationGetColor
void constellationGetColor()
Definition: StarsPlugin.cpp:686
Marble::DsoPoint
Definition: StarsPlugin.h:82
Marble::StarsPlugin::celestialEquatorGetColor
void celestialEquatorGetColor()
Definition: StarsPlugin.cpp:730
Marble::MarbleModel
The data model (not based on QAbstractModel) for a MarbleWidget.
Definition: MarbleModel.h:96
Marble::StarsPlugin::nameId
QString nameId() const
Returns the unique name of the plugin.
Definition: StarsPlugin.cpp:96
Marble::StarsPlugin::copyrightYears
QString copyrightYears() const
Definition: StarsPlugin.cpp:111
Marble::StarsPlugin::initialize
void initialize()
Definition: StarsPlugin.cpp:129
Marble::StarsPlugin::setSettings
void setSettings(const QHash< QString, QVariant > &settings)
Set the settings of the plugin.
Definition: StarsPlugin.cpp:202
RenderPlugin.h
Marble::Quaternion
Definition: Quaternion.h:43
Marble::DsoPoint::quaternion
const Quaternion & quaternion() const
Definition: StarsPlugin.h:104
Marble::StarsPlugin::assembledConstellation
QString assembledConstellation(const QString &name)
Definition: StarsPlugin.cpp:581
Marble::StarsPlugin::name
QString name() const
Returns the user-visible name of the plugin.
Definition: StarsPlugin.cpp:86
Marble::DsoPoint::~DsoPoint
~DsoPoint()
Definition: StarsPlugin.h:98
mag
double mag(double x[3])
Definition: sgp4ext.cpp:68
Marble::StarsPlugin::readSettings
void readSettings()
Definition: StarsPlugin.cpp:595
Marble::StarsPlugin::StarsPlugin
StarsPlugin(const MarbleModel *marbleModel=0)
Definition: StarsPlugin.cpp:37
Marble::RenderPlugin::marbleModel
const MarbleModel * marbleModel() const
Access to the MarbleModel.
Definition: RenderPlugin.cpp:81
Marble::RenderPlugin::RenderType
RenderType
A Type of plugin.
Definition: RenderPlugin.h:59
Marble::StarPoint::quaternion
const Quaternion & quaternion() const
Definition: StarsPlugin.h:63
Marble::RenderPlugin
The abstract class that creates a renderable item.
Definition: RenderPlugin.h:43
Marble::StarsPlugin::pluginAuthors
QList< PluginAuthor > pluginAuthors() const
Definition: StarsPlugin.cpp:116
Marble::Quaternion::fromSpherical
static Quaternion fromSpherical(qreal lon, qreal lat)
used to generate Quaternion from longitude and latitude
Definition: Quaternion.cpp:38
MARBLE_PLUGIN
#define MARBLE_PLUGIN(T)
Definition: RenderPlugin.h:337
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:38:53 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
  • kstars
  • libkdeedu
  •   keduvocdocument
  • 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