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

kstars

  • sources
  • kde-4.12
  • kdeedu
  • kstars
  • kstars
  • skycomponents
skymapcomposite.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  skymapcomposite.cpp - K Desktop Planetarium
3  -------------------
4  begin : 2005/07/08
5  copyright : (C) 2005 by Thomas Kabelmann
6  email : thomas.kabelmann@gmx.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #include "skymapcomposite.h"
19 
20 #include <QPolygonF>
21 #include <QApplication>
22 
23 #include "Options.h"
24 #include "kstarsdata.h"
25 #include "skymap.h"
26 #include "skyobjects/starobject.h"
27 #include "skyobjects/deepskyobject.h"
28 #include "skyobjects/ksplanet.h"
29 
30 #include "targetlistcomponent.h"
31 #include "constellationboundarylines.h"
32 #include "constellationlines.h"
33 #include "culturelist.h"
34 #include "constellationnamescomponent.h"
35 #include "equatorialcoordinategrid.h"
36 #include "horizontalcoordinategrid.h"
37 #include "catalogcomponent.h"
38 #include "deepskycomponent.h"
39 #include "equator.h"
40 #include "ecliptic.h"
41 #include "horizoncomponent.h"
42 #include "milkyway.h"
43 #include "solarsystemcomposite.h"
44 #include "starcomponent.h"
45 #include "deepstarcomponent.h"
46 #include "flagcomponent.h"
47 #include "satellitescomponent.h"
48 #include "supernovaecomponent.h"
49 
50 
51 #include "skymesh.h"
52 #include "skylabeler.h"
53 #include "skypainter.h"
54 #include "projections/projector.h"
55 
56 #include "typedef.h"
57 
58 SkyMapComposite::SkyMapComposite(SkyComposite *parent ) :
59  SkyComposite(parent), m_reindexNum( J2000 )
60 {
61  m_skyLabeler = SkyLabeler::Instance();
62 
63  m_skyMesh = SkyMesh::Create( 3 ); // level 5 mesh = 8192 trixels
64  m_skyMesh->debug( 0 );
65  // 1 => print "indexing ..."
66  // 2 => prints totals too
67  // 10 => prints detailed lists
68  // You can also set the debug level of individual
69  // appendLine() and appendPoly() calls.
70 
71  //Add all components
72  //Stars must come before constellation lines
73  addComponent( m_MilkyWay = new MilkyWay( this ));
74  addComponent( m_Stars = StarComponent::Create( this ));
75  addComponent( m_EquatorialCoordinateGrid = new EquatorialCoordinateGrid( this ));
76  addComponent( m_HorizontalCoordinateGrid = new HorizontalCoordinateGrid( this ));
77 
78  // Do add to components.
79  addComponent( m_CBoundLines = new ConstellationBoundaryLines( this ));
80  m_Cultures = new CultureList();
81  addComponent( m_CLines = new ConstellationLines( this, m_Cultures ));
82  addComponent( m_CNames = new ConstellationNamesComponent( this, m_Cultures ));
83  addComponent( m_Equator = new Equator( this ));
84  addComponent( m_Ecliptic = new Ecliptic( this ));
85  addComponent( m_Horizon = new HorizonComponent( this ));
86  addComponent( m_DeepSky = new DeepSkyComponent( this ));
87 
88  m_CustomCatalogs = new SkyComposite( this );
89  QStringList allcatalogs = Options::showCatalogNames();
90  for ( int i=0; i < allcatalogs.size(); ++ i ) {
91  m_CustomCatalogs->addComponent(
92  new CatalogComponent( this, allcatalogs.at(i), false, i )
93  );
94  }
95 
96  addComponent( m_SolarSystem = new SolarSystemComposite( this ));
97  addComponent( m_Flags = new FlagComponent( this ));
98 
99  addComponent( m_ObservingList = new TargetListComponent( this , 0, QPen(),
100  &Options::obsListSymbol, &Options::obsListText ) );
101  addComponent( m_StarHopRouteList = new TargetListComponent( this , 0, QPen() ) );
102  addComponent( m_Satellites = new SatellitesComponent( this ) );
103  addComponent( m_Supernovae = new SupernovaeComponent( this ) );
104 
105  connect( this, SIGNAL( progressText( const QString & ) ),
106  KStarsData::Instance(), SIGNAL( progressText( const QString & ) ) );
107 }
108 
109 SkyMapComposite::~SkyMapComposite()
110 {
111  delete m_skyLabeler; // These are on the heap to avoid header file hell.
112  delete m_skyMesh;
113  delete m_Cultures;
114  delete m_Flags;
115 }
116 
117 void SkyMapComposite::update(KSNumbers *num )
118 {
119  //printf("updating SkyMapComposite\n");
120  //1. Milky Way
121  //m_MilkyWay->update( data, num );
122  //2. Coordinate grid
123  //m_EquatorialCoordinateGrid->update( num );
124  m_HorizontalCoordinateGrid->update( num );
125  //3. Constellation boundaries
126  //m_CBounds->update( data, num );
127  //4. Constellation lines
128  //m_CLines->update( data, num );
129  //5. Constellation names
130  if ( m_CNames )
131  m_CNames->update( num );
132  //6. Equator
133  //m_Equator->update( data, num );
134  //7. Ecliptic
135  //m_Ecliptic->update( data, num );
136  //8. Deep sky
137  //m_DeepSky->update( data, num );
138  //9. Custom catalogs
139  m_CustomCatalogs->update( num );
140  //10. Stars
141  //m_Stars->update( data, num );
142  //m_CLines->update( data, num ); // MUST follow stars.
143 
144  //12. Solar system
145  m_SolarSystem->update( num );
146  //13. Satellites
147  m_Satellites->update( num );
148  //14. Supernovae
149  m_Supernovae->update(num);
150  //15. Horizon
151  m_Horizon->update( num );
152 }
153 
154 void SkyMapComposite::updatePlanets(KSNumbers *num )
155 {
156  m_SolarSystem->updatePlanets( num );
157 }
158 
159 void SkyMapComposite::updateMoons(KSNumbers *num )
160 {
161  m_SolarSystem->updateMoons( num );
162 }
163 
164 //Reimplement draw function so that we have control over the order of
165 //elements, and we can add object labels
166 //
167 //The order in which components are drawn naturally determines the
168 //z-ordering (the layering) of the components. Objects which
169 //should appear "behind" others should be drawn first.
170 void SkyMapComposite::draw( SkyPainter *skyp )
171 {
172  SkyMap *map = SkyMap::Instance();
173  KStarsData *data = KStarsData::Instance();
174 
175  // We delay one draw cycle before re-indexing
176  // we MUST ensure CLines do not get re-indexed while we use DRAW_BUF
177  // so we do it here.
178  m_CLines->reindex( &m_reindexNum );
179  // This queues re-indexing for the next draw cycle
180  m_reindexNum = KSNumbers( data->updateNum()->julianDay() );
181 
182  // This ensures that the JIT updates are synchronized for the entire draw
183  // cycle so the sky moves as a single sheet. May not be needed.
184  data->syncUpdateIDs();
185 
186  // prepare the aperture
187  // FIXME_FOV: We may want to rejigger this to allow
188  // wide-angle views --hdevalence
189  float radius = map->projector()->fov();
190  if ( radius > 90.0 )
191  radius = 90.0;
192 
193  if ( m_skyMesh->inDraw() ) {
194  printf("Warning: aborting concurrent SkyMapComposite::draw()\n");
195  return;
196  }
197 
198  m_skyMesh->inDraw( true );
199  SkyPoint* focus = map->focus();
200  m_skyMesh->aperture( focus, radius + 1.0, DRAW_BUF ); // divide by 2 for testing
201 
202  // create the no-precess aperture if needed
203  if ( Options::showEquatorialGrid() || Options::showHorizontalGrid() || Options::showCBounds() || Options::showEquator() ) {
204  m_skyMesh->index( focus, radius + 1.0, NO_PRECESS_BUF );
205  }
206 
207  // clear marks from old labels and prep fonts
208  m_skyLabeler->reset( map );
209  m_skyLabeler->useStdFont();
210 
211  // info boxes have highest label priority
212  // FIXME: REGRESSION. Labeler now know nothing about infoboxes
213  // map->infoBoxes()->reserveBoxes( psky );
214 
215  if( KStars::Instance() ) {
216  const QList<SkyObject*> obsList = KStars::Instance()->observingList()->sessionList();
217  if( Options::obsListText() )
218  foreach( SkyObject* obj, obsList ) {
219  SkyLabeler::AddLabel( obj, SkyLabeler::RUDE_LABEL );
220  }
221  }
222 
223 
224  m_MilkyWay->draw( skyp );
225 
226  m_EquatorialCoordinateGrid->draw( skyp );
227  m_HorizontalCoordinateGrid->draw( skyp );
228 
229  // Draw constellation boundary lines only if we draw western constellations
230  if ( m_Cultures->current() == "Western" )
231  m_CBoundLines->draw( skyp );
232 
233  m_CLines->draw( skyp );
234 
235  m_Equator->draw( skyp );
236 
237  m_Ecliptic->draw( skyp );
238 
239  m_DeepSky->draw( skyp );
240 
241  m_CustomCatalogs->draw( skyp );
242 
243  m_Stars->draw( skyp );
244 
245  m_SolarSystem->drawTrails( skyp );
246  m_SolarSystem->draw( skyp );
247 
248  m_Satellites->draw( skyp );
249 
250  m_Supernovae->draw(skyp);
251 
252  map->drawObjectLabels( labelObjects() );
253 
254  m_skyLabeler->drawQueuedLabels();
255  m_CNames->draw( skyp );
256  m_Stars->drawLabels();
257  m_DeepSky->drawLabels();
258 
259  m_ObservingList->pen = QPen( QColor(data->colorScheme()->colorNamed( "ObsListColor" )), 1. );
260  if( KStars::Instance() && !m_ObservingList->list )
261  m_ObservingList->list = &KStars::Instance()->observingList()->sessionList();
262  if( m_ObservingList )
263  m_ObservingList->draw( skyp );
264 
265  m_Flags->draw( skyp );
266 
267  m_StarHopRouteList->pen = QPen( QColor(data->colorScheme()->colorNamed( "StarHopRouteColor" )), 1. );
268  m_StarHopRouteList->draw( skyp );
269 
270  m_Horizon->draw( skyp );
271 
272  m_skyMesh->inDraw( false );
273 
274  // DEBUG Edit. Keywords: Trixel boundaries. Currently works only in QPainter mode
275  // -jbb uncomment these to see trixel outlines:
276  /*
277  QPainter *psky = dynamic_cast< QPainter *>( skyp );
278  if( psky ) {
279  kDebug() << "Drawing trixel boundaries for debugging.";
280  psky->setPen( QPen( QBrush( QColor( "yellow" ) ), 1, Qt::SolidLine ) );
281  m_skyMesh->draw( *psky, OBJ_NEAREST_BUF );
282  SkyMesh *p;
283  if( p = SkyMesh::Instance( 6 ) ) {
284  kDebug() << "We have a deep sky mesh to draw";
285  p->draw( *psky, OBJ_NEAREST_BUF );
286  }
287 
288  psky->setPen( QPen( QBrush( QColor( "green" ) ), 1, Qt::SolidLine ) );
289  m_skyMesh->draw( *psky, NO_PRECESS_BUF );
290  if( p )
291  p->draw( *psky, NO_PRECESS_BUF );
292  }
293  */
294 }
295 
296 
297 //Select nearest object to the given skypoint, but give preference
298 //to certain object types.
299 //we multiply each object type's smallest angular distance by the
300 //following factors before selecting the final nearest object:
301 // faint stars = 1.0 (not weighted)
302 // stars brighter than 4th mag = 0.75
303 // IC catalog = 0.8
304 // NGC catalog = 0.6
305 // "other" catalog = 0.6
306 // Messier object = 0.5
307 // custom object = 0.5
308 // Solar system = 0.25
309 SkyObject* SkyMapComposite::objectNearest( SkyPoint *p, double &maxrad ) {
310  double rTry = maxrad;
311  double rBest = maxrad;
312  SkyObject *oTry = 0;
313  SkyObject *oBest = 0;
314 
315  //printf("%.1f %.1f\n", p->ra().Degrees(), p->dec().Degrees() );
316  m_skyMesh->aperture( p, maxrad + 1.0, OBJ_NEAREST_BUF);
317 
318  oBest = m_Stars->objectNearest( p, rBest );
319  //reduce rBest by 0.75 for stars brighter than 4th mag
320  if ( oBest && oBest->mag() < 4.0 ) rBest *= 0.75;
321 
322  // TODO: Add support for deep star catalogs
323 
324  //m_DeepSky internally discriminates among deepsky catalogs
325  //and renormalizes rTry
326  oTry = m_DeepSky->objectNearest( p, rTry );
327  if ( rTry < rBest ) {
328  rBest = rTry;
329  oBest = oTry;
330  }
331 
332  for( int i = 0; i < m_DeepStars.size(); ++i ) {
333  rTry = maxrad;
334  oTry = m_DeepStars.at( i )->objectNearest( p, rTry );
335  if( rTry < rBest ) {
336  rBest = rTry;
337  oBest = oTry;
338  }
339  }
340 
341  rTry = maxrad;
342  oTry = m_CustomCatalogs->objectNearest( p, rTry );
343  rTry *= 0.5;
344  if ( rTry < rBest ) {
345  rBest = rTry;
346  oBest = oTry;
347  }
348 
349  rTry = maxrad;
350  oTry = m_SolarSystem->objectNearest( p, rTry );
351  rTry *= 0.25;
352  if ( rTry < rBest ) {
353  rBest = rTry;
354  oBest = oTry;
355  }
356 
357  rTry = maxrad;
358  oTry = m_Satellites->objectNearest( p, rTry );
359  if ( rTry < rBest ) {
360  rBest = rTry;
361  oBest = oTry;
362  }
363 
364  rTry = maxrad;
365  oTry = m_Supernovae->objectNearest(p,rTry);
366  //kDebug()<<rTry<<rBest<<maxrad;
367  if ( rTry < rBest ) {
368  rBest = rTry;
369  oBest = oTry;
370  }
371 
372  if ( oBest )
373  kDebug() << "OBEST=" << oBest->name() << " - " << oBest->name2();
374  maxrad = rBest;
375  return oBest; //will be 0 if no object nearer than maxrad was found
376 
377 }
378 
379 SkyObject* SkyMapComposite::starNearest( SkyPoint *p, double &maxrad ) {
380  double rtry = maxrad;
381  SkyObject *star = 0;
382 
383  m_skyMesh->aperture( p, maxrad + 1.0, OBJ_NEAREST_BUF);
384 
385  star = m_Stars->objectNearest( p, rtry );
386  //reduce rBest by 0.75 for stars brighter than 4th mag
387  if ( star && star->mag() < 4.0 ) rtry *= 0.75;
388 
389  // TODO: Add Deep Star Catalog support
390 
391  maxrad = rtry;
392  return star;
393 }
394 
395 bool SkyMapComposite::addNameLabel( SkyObject *o ) {
396  if ( !o ) return false;
397  labelObjects().append( o );
398  return true;
399 }
400 
401 bool SkyMapComposite::removeNameLabel( SkyObject *o ) {
402  if ( !o ) return false;
403  int index = labelObjects().indexOf( o );
404  if ( index < 0 ) return false;
405  labelObjects().removeAt( index );
406  return true;
407 }
408 
409 QHash<int, QStringList>& SkyMapComposite::getObjectNames() {
410  return m_ObjectNames;
411 }
412 
413 QList<SkyObject*> SkyMapComposite::findObjectsInArea( const SkyPoint& p1, const SkyPoint& p2 )
414 {
415  const SkyRegion& region = m_skyMesh->skyRegion( p1, p2 );
416  QList<SkyObject*> list;
417  // call objectsInArea( QList<SkyObject*>&, const SkyRegion& ) for each of the
418  // components of the SkyMapComposite
419  if( m_Stars->selected() )
420  m_Stars->objectsInArea( list, region );
421  if( m_DeepSky->selected() )
422  m_DeepSky->objectsInArea( list, region );
423  return list;
424 }
425 
426 SkyObject* SkyMapComposite::findByName( const QString &name ) {
427  //We search the children in an "intelligent" order (most-used
428  //object types first), in order to avoid wasting too much time
429  //looking for a match. The most important part of this ordering
430  //is that stars should be last (because the stars list is so long)
431  SkyObject *o = 0;
432  o = m_SolarSystem->findByName( name );
433  if ( o ) return o;
434  o = m_DeepSky->findByName( name );
435  if ( o ) return o;
436  o = m_CustomCatalogs->findByName( name );
437  if ( o ) return o;
438  o = m_CNames->findByName( name );
439  if ( o ) return o;
440  o = m_Stars->findByName( name );
441  if ( o ) return o;
442  o = m_Supernovae->findByName(name);
443  if ( o ) return o;
444 
445  return 0;
446 }
447 
448 
449 SkyObject* SkyMapComposite::findStarByGenetiveName( const QString name ) {
450  return m_Stars->findStarByGenetiveName( name );
451 }
452 
453 KSPlanetBase* SkyMapComposite::planet( int n ) {
454  if ( n == KSPlanetBase::SUN ) return (KSPlanetBase*)(m_SolarSystem->findByName( "Sun" ) );
455  if ( n == KSPlanetBase::MERCURY ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Mercury" ) ) );
456  if ( n == KSPlanetBase::VENUS ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Venus" ) ) );
457  if ( n == KSPlanetBase::MOON ) return (KSPlanetBase*)(m_SolarSystem->findByName( "Moon" ) );
458  if ( n == KSPlanetBase::MARS ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Mars" ) ) );
459  if ( n == KSPlanetBase::JUPITER ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Jupiter" ) ) );
460  if ( n == KSPlanetBase::SATURN ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Saturn" ) ) );
461  if ( n == KSPlanetBase::URANUS ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Uranus" ) ) );
462  if ( n == KSPlanetBase::NEPTUNE ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Neptune" ) ) );
463  if ( n == KSPlanetBase::PLUTO ) return (KSPlanetBase*)(m_SolarSystem->findByName( i18n( "Pluto" ) ) );
464 
465  return 0;
466 }
467 
468 void SkyMapComposite::addCustomCatalog( const QString &filename, int index ) {
469  CatalogComponent *cc = new CatalogComponent( this, filename, false, index );
470  if( cc->objectList().size() ) {
471  m_CustomCatalogs->addComponent( cc );
472  } else {
473  delete cc;
474  }
475 }
476 
477 void SkyMapComposite::removeCustomCatalog( const QString &name ) {
478  foreach( SkyComponent *sc, m_CustomCatalogs->components() ) {
479  CatalogComponent *ccc = (CatalogComponent*)sc;
480 
481  if ( ccc->name() == name ) {
482  m_CustomCatalogs->removeComponent( ccc );
483  return;
484  }
485  }
486 
487  kWarning() << i18n( "Could not find custom catalog component named %1." , name) ;
488 }
489 
490 void SkyMapComposite::reloadCLines( ) {
491  Q_ASSERT( !SkyMapDrawAbstract::drawLock() );
492  SkyMapDrawAbstract::setDrawLock( true ); // This is not (yet) multithreaded, so I think we don't have to worry about overwriting the state of an existing lock --asimha
493  delete m_CLines;
494  m_CLines = 0;
495  m_CLines = new ConstellationLines( this, m_Cultures );
496  SkyMapDrawAbstract::setDrawLock( false );
497 }
498 
499 void SkyMapComposite::reloadCNames( ) {
500 // Q_ASSERT( !SkyMapDrawAbstract::drawLock() );
501 // SkyMapDrawAbstract::setDrawLock( true ); // This is not (yet) multithreaded, so I think we don't have to worry about overwriting the state of an existing lock --asimha
502 // objectNames(SkyObject::CONSTELLATION).clear();
503 // delete m_CNames;
504 // m_CNames = 0;
505 // m_CNames = new ConstellationNamesComponent( this, m_Cultures );
506 // SkyMapDrawAbstract::setDrawLock( false );
507  objectNames(SkyObject::CONSTELLATION).clear();
508  delete m_CNames;
509  m_CNames = new ConstellationNamesComponent( this, m_Cultures );
510 }
511 
512 void SkyMapComposite::reloadDeepSky() {
513  Q_ASSERT( !SkyMapDrawAbstract::drawLock() );
514  // Deselect object if selected! If not deselected then InfoBox tries to
515  // get the name of an object which may not exist (getLongName)
516  // FIXME (spacetime): Is there a better way?
517  // Current Solution: Look for the nearest star in the region and select it.
518 
519  SkyMap *current_map = KStars::Instance()->map();
520  double maxrad=30.0;
521  SkyPoint center_point = current_map->getCenterPoint();
522  current_map->setClickedObject( KStars::Instance()->
523  data()->skyComposite()->
524  starNearest(&center_point, maxrad) );
525  current_map->setClickedPoint( current_map->clickedObject() );
526  current_map->slotCenter();
527 
528  //Remove and Regenerate set of catalog objects
529  SkyMapDrawAbstract::setDrawLock(true);
530  delete m_CustomCatalogs;
531  m_CustomCatalogs = new SkyComposite( this );
532  QStringList allcatalogs = Options::showCatalogNames();
533  for ( int i=0; i < allcatalogs.size(); ++ i ) {
534  m_CustomCatalogs->addComponent(
535  new CatalogComponent( this, allcatalogs.at(i), false, i )
536  );
537  }
538  SkyMapDrawAbstract::setDrawLock(false);
539 
540 
541 }
542 
543 
544 bool SkyMapComposite::isLocalCNames() {
545  return m_CNames->isLocalCNames();
546 }
547 
548 void SkyMapComposite::emitProgressText( const QString &message ) {
549  emit progressText( message );
550  qApp->processEvents(); // -jbb: this seemed to make it work.
551  //kDebug() << QString("PROGRESS TEXT: %1\n").arg( message );
552 }
553 
554 const QList<DeepSkyObject*>& SkyMapComposite::deepSkyObjects() const {
555  return m_DeepSky->objectList();
556 }
557 
558 const QList<SkyObject*>& SkyMapComposite::constellationNames() const {
559  return m_CNames->objectList();
560 }
561 
562 // Returns only named stars, and should not be used
563 const QList<SkyObject*>& SkyMapComposite::stars() const {
564  return m_Stars->objectList();
565 }
566 
567 
568 const QList<SkyObject*>& SkyMapComposite::asteroids() const {
569  return m_SolarSystem->asteroids();
570 }
571 
572 const QList<SkyObject*>& SkyMapComposite::comets() const {
573  return m_SolarSystem->comets();
574 }
575 
576 const QList<SkyObject*>& SkyMapComposite::supernovae() const
577 {
578  return m_Supernovae->objectList();
579 }
580 
581 KSPlanet* SkyMapComposite::earth() {
582  return m_SolarSystem->earth();
583 }
584 
585 QList<SkyComponent*> SkyMapComposite::customCatalogs() {
586  return m_CustomCatalogs->components();
587 }
588 
589 QStringList SkyMapComposite::getCultureNames() {
590  return m_Cultures->getNames();
591 }
592 
593 QString SkyMapComposite::getCultureName( int index ) {
594  return m_Cultures->getName( index );
595 }
596 
597 void SkyMapComposite::setCurrentCulture( QString culture ) {
598  m_Cultures->setCurrent( culture );
599 }
600 
601 QString SkyMapComposite::currentCulture() {
602  return m_Cultures->current();
603 }
604 
605 FlagComponent* SkyMapComposite::flags() {
606  return m_Flags;
607 }
608 
609 SatellitesComponent* SkyMapComposite::satellites() {
610  return m_Satellites;
611 }
612 
613 SolarSystemComposite* SkyMapComposite::solarSystemComposite()
614 {
615  return m_SolarSystem;
616 }
617 
618 SupernovaeComponent* SkyMapComposite::supernovaeComponent()
619 {
620  return m_Supernovae;
621 }
622 
623 #include "skymapcomposite.moc"
ecliptic.h
HorizontalCoordinateGrid::update
void update(KSNumbers *)
Update the sky position(s) of this component.
Definition: horizontalcoordinategrid.cpp:112
HorizonComponent::draw
virtual void draw(SkyPainter *skyp)
Draw the Horizon on the Sky map map Pointer to the SkyMap object psky Reference to the QPainter on wh...
Definition: horizoncomponent.cpp:75
HorizontalCoordinateGrid
Collection of all the circles in the horizontal coordinate grid.
Definition: horizontalcoordinategrid.h:30
SatellitesComponent
Represents artificial satellites on the sky map.
Definition: satellitescomponent.h:36
SkyMesh::inDraw
bool inDraw()
Definition: skymesh.h:296
satellitescomponent.h
Options::showEquator
static bool showEquator()
Get Draw equator line in the sky map?
Definition: Options.h:1664
SkyLabeler::RUDE_LABEL
Definition: skylabeler.h:129
SolarSystemComposite::drawTrails
void drawTrails(SkyPainter *skyp)
Draw trails for objects.
Definition: solarsystemcomposite.cpp:107
HorizonComponent::update
virtual void update(KSNumbers *)
Update the sky positions of this component.
Definition: horizoncomponent.cpp:61
SkyMapComposite::updateMoons
virtual void updateMoons(KSNumbers *num)
Delegate moon position updates to the SolarSystemComposite.
Definition: skymapcomposite.cpp:159
KStarsData
KStarsData is the backbone of KStars.
Definition: kstarsdata.h:66
FlagComponent
Represents a flag on the sky map.
Definition: flagcomponent.h:44
KSPlanetBase::NEPTUNE
Definition: ksplanetbase.h:82
SkyMapComposite::labelObjects
QList< SkyObject * > & labelObjects()
Definition: skymapcomposite.h:175
SkyMapComposite::updatePlanets
virtual void updatePlanets(KSNumbers *num)
Delegate planet position updates to the SolarSystemComposite.
Definition: skymapcomposite.cpp:154
TargetListComponent
Highlights objects present in certain lists by drawing "target" symbols around them.
Definition: skycomponents/targetlistcomponent.h:50
KSPlanet
A subclass of KSPlanetBase for seven of the major planets in the solar system (Earth and Pluto have t...
Definition: ksplanet.h:40
KStars::map
SkyMap * map() const
Definition: kstars.h:134
Equator
Represents the equator on the sky map.
Definition: equator.h:32
SkyMapDrawAbstract::setDrawLock
static void setDrawLock(bool state)
Acquire / release a draw lock.
Definition: skymapdrawabstract.cpp:346
SkyRegion
QHash< Trixel, bool > SkyRegion
Definition: skycomponents/typedef.h:47
SkyMap::slotCenter
void slotCenter()
Center the display at the point ClickedPoint.
Definition: skymap.cpp:373
SolarSystemComposite::comets
const QList< SkyObject * > & comets() const
Definition: solarsystemcomposite.cpp:118
SkyMapComposite::asteroids
const QList< SkyObject * > & asteroids() const
Definition: skymapcomposite.cpp:568
KSPlanetBase::JUPITER
Definition: ksplanetbase.h:82
DeepSkyComponent::objectList
const QList< DeepSkyObject * > & objectList() const
Definition: deepskycomponent.h:106
StarComponent::drawLabels
void drawLabels()
Definition: starcomponent.cpp:340
KStarsData::colorScheme
ColorScheme * colorScheme()
Definition: kstarsdata.h:149
DeepSkyComponent
Represents the deep sky objects separated by catalogs.
Definition: deepskycomponent.h:55
KSPlanetBase::MOON
Definition: ksplanetbase.h:82
deepskyobject.h
SolarSystemComposite::earth
KSPlanet * earth()
Definition: solarsystemcomposite.h:47
constellationlines.h
CultureList::setCurrent
void setCurrent(QString newName)
Set the current culture name.
Definition: culturelist.cpp:42
SkyMap::setClickedObject
void setClickedObject(SkyObject *o)
Set the ClickedObject pointer to the argument.
Definition: skymap.cpp:361
DeepSkyComponent::selected
bool selected()
Definition: deepskycomponent.cpp:54
KStarsData::Instance
static KStarsData * Instance()
Definition: kstarsdata.h:92
starcomponent.h
SkyMapComposite::findStarByGenetiveName
SkyObject * findStarByGenetiveName(const QString name)
Definition: skymapcomposite.cpp:449
SkyMapComposite::deepSkyObjects
const QList< DeepSkyObject * > & deepSkyObjects() const
Definition: skymapcomposite.cpp:554
SkyMapComposite::draw
virtual void draw(SkyPainter *skyp)
Delegate draw requests to all sub components psky Reference to the QPainter on which to paint...
Definition: skymapcomposite.cpp:170
MilkyWay::draw
virtual void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: milkyway.cpp:69
typedef.h
SatellitesComponent::draw
virtual void draw(SkyPainter *skyp)
Draw all satellites.
Definition: satellitescomponent.cpp:79
SolarSystemComposite::updateMoons
virtual void updateMoons(KSNumbers *num)
Definition: solarsystemcomposite.cpp:97
SkyMapComposite::constellationNames
const QList< SkyObject * > & constellationNames() const
Definition: skymapcomposite.cpp:558
ConstellationNamesComponent
Represents the constellation names on the sky map.
Definition: constellationnamescomponent.h:34
KStars::Instance
static KStars * Instance()
Definition: kstars.h:125
SkyMapComposite::findObjectsInArea
QList< SkyObject * > findObjectsInArea(const SkyPoint &p1, const SkyPoint &p2)
Definition: skymapcomposite.cpp:413
SkyComponent
SkyComponent represents an object on the sky map.
Definition: skycomponent.h:44
SkyMesh::Create
static SkyMesh * Create(int level)
Definition: skymesh.cpp:36
SatellitesComponent::objectNearest
SkyObject * objectNearest(SkyPoint *p, double &maxrad)
Search the nearest satellite from point p.
Definition: satellitescomponent.cpp:156
ColorScheme::colorNamed
QColor colorNamed(const QString &name) const
Retrieve a color by name.
Definition: colorscheme.cpp:97
SkyMapDrawAbstract::drawLock
static bool drawLock()
Definition: skymapdrawabstract.h:120
skypainter.h
SkyComposite::update
virtual void update(KSNumbers *num=0)
Delegate update-position requests to all sub components.
Definition: skycomposite.cpp:50
targetlistcomponent.h
SkyMapComposite::setCurrentCulture
void setCurrentCulture(QString culture)
Definition: skymapcomposite.cpp:597
KSPlanetBase::MERCURY
Definition: ksplanetbase.h:82
SkyComposite::draw
virtual void draw(SkyPainter *skyp)
Delegate draw requests to all sub components psky Reference to the QPainter on which to paint...
Definition: skycomposite.cpp:43
StarComponent::objectNearest
virtual SkyObject * objectNearest(SkyPoint *p, double &maxrad)
Find the SkyObject nearest the given SkyPoint.
Definition: starcomponent.cpp:571
SkyMapComposite::reloadCNames
void reloadCNames()
Definition: skymapcomposite.cpp:499
horizoncomponent.h
culturelist.h
SkyMapComposite::starNearest
SkyObject * starNearest(SkyPoint *p, double &maxrad)
Definition: skymapcomposite.cpp:379
SkyMapComposite::objectNearest
virtual SkyObject * objectNearest(SkyPoint *p, double &maxrad)
Definition: skymapcomposite.cpp:309
SkyMesh::debug
int debug()
Definition: skymesh.h:268
solarsystemcomposite.h
DeepSkyComponent::draw
virtual void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: deepskycomponent.cpp:363
DeepSkyComponent::findByName
virtual SkyObject * findByName(const QString &name)
Search the children of this SkyComponent for a SkyObject whose name matches the argument name the nam...
Definition: deepskycomponent.cpp:495
DeepSkyComponent::objectNearest
virtual SkyObject * objectNearest(SkyPoint *p, double &maxrad)
Find the SkyObject nearest the given SkyPoint.
Definition: deepskycomponent.cpp:521
SkyMap::getCenterPoint
SkyPoint getCenterPoint()
Definition: skymap.cpp:705
SkyMapComposite::isLocalCNames
bool isLocalCNames()
Definition: skymapcomposite.cpp:544
SkyMapComposite::reloadCLines
void reloadCLines()
Definition: skymapcomposite.cpp:490
ksplanet.h
EquatorialCoordinateGrid
Collection of all the circles in the equatorial coordinate grid.
Definition: equatorialcoordinategrid.h:30
SkyMapComposite::addCustomCatalog
void addCustomCatalog(const QString &filename, int index)
Definition: skymapcomposite.cpp:468
SkyComposite::addComponent
void addComponent(SkyComponent *comp)
Add a new sub component to the composite comp Pointer to the SkyComponent to be added.
Definition: skycomposite.cpp:31
SkyMapComposite::satellites
SatellitesComponent * satellites()
Definition: skymapcomposite.cpp:609
SupernovaeComponent::objectNearest
virtual SkyObject * objectNearest(SkyPoint *p, double &maxrad)
Find the SkyObject nearest the given SkyPoint.
Definition: supernovaecomponent.cpp:148
FlagComponent::draw
virtual void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: flagcomponent.cpp:49
KStarsData::updateNum
KSNumbers * updateNum()
Definition: kstarsdata.h:226
SkyLabeler::Instance
static SkyLabeler * Instance()
Definition: skylabeler.cpp:49
equatorialcoordinategrid.h
SkyPoint
The sky coordinates of a point in the sky.
Definition: skypoint.h:50
SkyMapComposite::flags
FlagComponent * flags()
Definition: skymapcomposite.cpp:605
ListComponent::findByName
virtual SkyObject * findByName(const QString &name)
Search the children of this SkyComponent for a SkyObject whose name matches the argument name the nam...
Definition: listcomponent.cpp:54
SolarSystemComposite::update
virtual void update(KSNumbers *num)
Delegate update-position requests to all sub components.
Definition: solarsystemcomposite.cpp:75
StarComponent::objectsInArea
virtual void objectsInArea(QList< SkyObject * > &list, const SkyRegion &region)
Searches the region(s) and appends the SkyObjects found to the list of sky objects.
Definition: starcomponent.cpp:514
SkyMesh::aperture
void aperture(SkyPoint *center, double radius, MeshBufNum_t bufNum=DRAW_BUF)
finds the set of trixels that cover the circular aperture specified after first performing a reverse ...
Definition: skymesh.cpp:66
SkyMapComposite::SkyMapComposite
SkyMapComposite(SkyComposite *parent)
Constructor parent pointer to the parent SkyComponent.
Definition: skymapcomposite.cpp:58
deepskycomponent.h
SkyMapComposite::getCultureName
QString getCultureName(int index)
Definition: skymapcomposite.cpp:593
SolarSystemComposite::updatePlanets
virtual void updatePlanets(KSNumbers *num)
Definition: solarsystemcomposite.cpp:89
SkyComposite::SkyComposite
SkyComposite(SkyComposite *parent)
Constructor parent pointer to the parent SkyComponent.
Definition: skycomposite.cpp:22
skymapcomposite.h
SupernovaeComponent::draw
virtual void draw(SkyPainter *skyp)
Definition: supernovaecomponent.cpp:178
KStars::observingList
ObservingList * observingList() const
Definition: kstars.h:136
SkyMap::focus
SkyPoint * focus()
Retrieve the Focus point; the position on the sky at the center of the skymap.
Definition: skymap.h:120
Options::showCBounds
static bool showCBounds()
Get Draw constellation boundaries in the sky map?
Definition: Options.h:1550
SkyLabeler::useStdFont
void useStdFont()
sets the font in SkyLabeler and in psky to the font psky had originally when reset() was called...
Definition: skylabeler.cpp:185
equator.h
SkyMapComposite::comets
const QList< SkyObject * > & comets() const
Definition: skymapcomposite.cpp:572
SkyMapComposite::addNameLabel
bool addNameLabel(SkyObject *o)
Definition: skymapcomposite.cpp:395
CatalogComponent
Represents a custom user-defined catalog.
Definition: catalogcomponent.h:39
Projector::fov
double fov() const
Return the FOV of this projection.
Definition: projector.cpp:88
KStarsData::syncUpdateIDs
void syncUpdateIDs()
Definition: kstarsdata.cpp:245
Equator::draw
virtual void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: equator.cpp:68
SkyMapComposite::earth
KSPlanet * earth()
Definition: skymapcomposite.cpp:581
SkyLabeler::reset
void reset(SkyMap *skyMap)
clears the virtual screen (if needed) and resizes the virtual screen (if needed) to match skyMap...
Definition: skylabeler.cpp:209
CatalogComponent::name
QString name() const
Definition: catalogcomponent.h:63
KSPlanetBase::MARS
Definition: ksplanetbase.h:82
SkyMapComposite::supernovaeComponent
SupernovaeComponent * supernovaeComponent()
Definition: skymapcomposite.cpp:618
TargetListComponent::draw
virtual void draw(SkyPainter *skyp)
Draw this component by iterating over the list.
Definition: skycomponents/targetlistcomponent.cpp:70
skymap.h
SkyMapComposite::stars
const QList< SkyObject * > & stars() const
Definition: skymapcomposite.cpp:563
CultureList::getNames
QStringList getNames()
Return a sorted list of cultures.
Definition: culturelist.h:39
SkyComposite::objectNearest
virtual SkyObject * objectNearest(SkyPoint *p, double &maxrad)
Identify the nearest SkyObject to the given SkyPoint, among the children of this SkyComposite p point...
Definition: skycomposite.cpp:64
SkyMapComposite::reloadDeepSky
void reloadDeepSky()
Definition: skymapcomposite.cpp:512
ListComponent::objectList
const QList< SkyObject * > & objectList() const
Definition: listcomponent.h:61
SkyComposite::removeComponent
void removeComponent(SkyComponent *comp)
Remove a sub component from the composite comp Pointer to the SkyComponent to be removed.
Definition: skycomposite.cpp:36
KSNumbers::julianDay
long double julianDay() const
Definition: ksnumbers.h:93
Options::showHorizontalGrid
static bool showHorizontalGrid()
Get Draw horizontal coordinate grid in the sky map?
Definition: Options.h:1721
StarComponent::draw
void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: starcomponent.cpp:232
SupernovaeComponent::findByName
virtual SkyObject * findByName(const QString &name)
Search the children of this SkyComponent for a SkyObject whose name matches the argument name the nam...
Definition: supernovaecomponent.cpp:137
Ecliptic
Represents the ecliptic on the sky map.
Definition: ecliptic.h:31
SkyMapComposite::customCatalogs
QList< SkyComponent * > customCatalogs()
Definition: skymapcomposite.cpp:585
SolarSystemComposite::asteroids
const QList< SkyObject * > & asteroids() const
Definition: solarsystemcomposite.cpp:114
ConstellationNamesComponent::isLocalCNames
bool isLocalCNames()
Return true if we are using localized constellation names.
Definition: constellationnamescomponent.h:68
SkyComposite
SkyComposite is a kind of container class for SkyComponent objects.
Definition: skycomposite.h:43
StarComponent::Create
static StarComponent * Create(SkyComposite *)
Create an instance of StarComponent.
Definition: starcomponent.cpp:86
Options::obsListSymbol
static bool obsListSymbol()
Get Use symbols to label observing list objects.
Definition: Options.h:2778
SupernovaeComponent
encapsulates Supernovae.
Definition: supernovaecomponent.h:39
SkyMesh::skyRegion
const SkyRegion & skyRegion(const SkyPoint &p1, const SkyPoint &p2)
returns the sky region needed to cover the rectangle defined by two SkyPoints p1 and p2 ...
Definition: skymesh.cpp:372
SkyMapComposite::~SkyMapComposite
~SkyMapComposite()
Definition: skymapcomposite.cpp:109
SkyMapComposite::getCultureNames
QStringList getCultureNames()
Definition: skymapcomposite.cpp:589
constellationboundarylines.h
DRAW_BUF
Definition: skymesh.h:52
SkyMapComposite::planet
KSPlanetBase * planet(int n)
Definition: skymapcomposite.cpp:453
ConstellationBoundaryLines
Definition: constellationboundarylines.h:41
SkyComposite::components
QList< SkyComponent * > & components()
Definition: skycomposite.h:103
KSPlanetBase::SATURN
Definition: ksplanetbase.h:82
SkyMapComposite::progressText
void progressText(const QString &message)
Options.h
SkyObject::name2
QString name2(void) const
Definition: skyobject.h:132
TargetListComponent::list
SkyObjectList * list
Definition: skycomponents/targetlistcomponent.h:75
SkyObject::mag
float mag(void) const
Definition: skyobject.h:182
KSPlanetBase::PLUTO
Definition: ksplanetbase.h:82
KSNumbers
There are several time-dependent values used in position calculations, that are not specific to an ob...
Definition: ksnumbers.h:43
constellationnamescomponent.h
OBJ_NEAREST_BUF
Definition: skymesh.h:54
ConstellationNamesComponent::update
virtual void update(KSNumbers *num)
we need a custom routine (for now) so we don't precess the locations of the names.
Definition: constellationnamescomponent.cpp:102
ConstellationLines::reindex
void reindex(KSNumbers *num)
Definition: constellationlines.cpp:152
milkyway.h
Options::obsListText
static bool obsListText()
Get Use text to label observing list objects.
Definition: Options.h:2797
deepstarcomponent.h
SkyMap::setClickedPoint
void setClickedPoint(SkyPoint *f)
Set the ClickedPoint to the skypoint given as an argument.
Definition: skymap.cpp:829
StarComponent::selected
bool selected()
Definition: starcomponent.cpp:92
CultureList::getName
QString getName(int index)
Return the name of the culture at index.
Definition: culturelist.cpp:46
J2000
#define J2000
Definition: kstarsdatetime.h:21
SkyObject::CONSTELLATION
Definition: skyobject.h:110
Options::showCatalogNames
static QStringList showCatalogNames()
Get List for displaying custom object catalogs.
Definition: Options.h:467
horizontalcoordinategrid.h
SkyMapComposite::solarSystemComposite
SolarSystemComposite * solarSystemComposite()
Definition: skymapcomposite.cpp:613
SupernovaeComponent::update
virtual void update(KSNumbers *num=0)
Update the sky positions of this component.
Definition: supernovaecomponent.cpp:40
ConstellationLines
Definition: constellationlines.h:36
starobject.h
SkyMap
This is the canvas on which the sky is painted.
Definition: skymap.h:72
projector.h
SkyMapComposite::findByName
virtual SkyObject * findByName(const QString &name)
Search the children of this SkyMapComposite for a SkyObject whose name matches the argument...
Definition: skymapcomposite.cpp:426
SkyMap::Instance
static SkyMap * Instance()
Definition: skymap.cpp:141
SkyLabeler::drawQueuedLabels
void drawQueuedLabels()
draws the labels stored in all the buffers.
Definition: skylabeler.cpp:435
KSPlanetBase
A subclass of TrailObject that provides additional information needed for most solar system objects...
Definition: ksplanetbase.h:63
SkyMapComposite::supernovae
const QList< SkyObject * > & supernovae() const
Definition: skymapcomposite.cpp:576
SatellitesComponent::update
virtual void update(KSNumbers *num)
Update satellites position.
Definition: satellitescomponent.cpp:68
MilkyWay
Definition: milkyway.h:35
TargetListComponent::pen
QPen pen
Definition: skycomponents/targetlistcomponent.h:76
CultureList::current
QString current()
Return the current sky culture.
Definition: culturelist.h:33
KSPlanetBase::SUN
Definition: ksplanetbase.h:82
kstarsdata.h
ConstellationNamesComponent::draw
virtual void draw(SkyPainter *skyp)
Draw constellation names on the sky map.
Definition: constellationnamescomponent.cpp:111
SkyMapComposite::removeCustomCatalog
void removeCustomCatalog(const QString &name)
Definition: skymapcomposite.cpp:477
SkyMapComposite::removeNameLabel
bool removeNameLabel(SkyObject *o)
Definition: skymapcomposite.cpp:401
skylabeler.h
skymesh.h
DeepSkyComponent::objectsInArea
virtual void objectsInArea(QList< SkyObject * > &list, const SkyRegion &region)
Searches the region(s) and appends the SkyObjects found to the list of sky objects.
Definition: deepskycomponent.cpp:500
SkyMap::clickedObject
SkyObject * clickedObject() const
Retrieve the object nearest to a mouse click event.
Definition: skymap.h:214
SkyObject::name
virtual QString name(void) const
Definition: skyobject.h:124
KSPlanetBase::VENUS
Definition: ksplanetbase.h:82
HorizonComponent
Represents the horizon on the sky map.
Definition: horizoncomponent.h:34
SkyComponent::objectNames
QHash< int, QStringList > & objectNames()
Definition: skycomponent.h:127
SkyObject
Provides all necessary information about an object in the sky: its coordinates, name(s), type, magnitude, and QStringLists of URLs for images and webpages regarding the object.
Definition: skyobject.h:46
SkyMapComposite::update
virtual void update(KSNumbers *num=0)
Delegate update-position requests to all sub components.
Definition: skymapcomposite.cpp:117
SkyMesh::index
Trixel index(const SkyPoint *p)
Definition: skymesh.cpp:93
KSPlanetBase::URANUS
Definition: ksplanetbase.h:82
SkyMap::projector
const Projector * projector() const
Get the current projector.
Definition: skymap.h:264
Options::showEquatorialGrid
static bool showEquatorialGrid()
Get Draw equatorial coordinate grid in the sky map?
Definition: Options.h:1702
SkyMap::drawObjectLabels
void drawObjectLabels(QList< SkyObject * > &labelObjects)
Proxy method for SkyMapDrawAbstract::drawObjectLabels()
Definition: skymap.h:279
SkyPainter
Draws things on the sky, without regard to backend.
Definition: skypainter.h:47
flagcomponent.h
SolarSystemComposite
The solar system composite manages all planets, asteroids and comets.
Definition: solarsystemcomposite.h:41
catalogcomponent.h
DeepSkyComponent::drawLabels
void drawLabels()
Definition: deepskycomponent.cpp:473
SkyMapComposite::emitProgressText
virtual void emitProgressText(const QString &message)
Emit signal about progress.
Definition: skymapcomposite.cpp:548
StarComponent::findStarByGenetiveName
virtual SkyObject * findStarByGenetiveName(const QString name)
Definition: starcomponent.cpp:498
Ecliptic::draw
virtual void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: ecliptic.cpp:66
LineListIndex::draw
virtual void draw(SkyPainter *skyp)
Draw the object on the SkyMap skyp a pointer to the SkyPainter to use.
Definition: linelistindex.cpp:162
SkyLabeler::AddLabel
static void AddLabel(SkyObject *obj, label_t type)
static version of addLabel() below.
Definition: skylabeler.h:149
CultureList
A list of all cultures.
Definition: culturelist.h:26
SkyComposite::findByName
virtual SkyObject * findByName(const QString &name)
Search the children of this SkyComposite for a SkyObject whose name matches the argument.
Definition: skycomposite.cpp:56
SkyMapComposite::currentCulture
QString currentCulture()
Definition: skymapcomposite.cpp:601
NO_PRECESS_BUF
Definition: skymesh.h:53
QList
StarComponent::findByName
virtual SkyObject * findByName(const QString &name)
Find stars by name (including genetive name)
Definition: starcomponent.cpp:503
supernovaecomponent.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:36:21 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kstars

Skip menu "kstars"
  • 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