void ConstellationNamesComponent::draw( SkyPainter *skyp ) { Q_UNUSED(skyp); if ( ! selected() ) return; const Projector *proj = SkyMap::Instance()->projector(); SkyLabeler* skyLabeler = SkyLabeler::Instance(); skyLabeler->useStdFont(); skyLabeler->setPen( QColor( KStarsData::Instance()->colorScheme()->colorNamed( "CNameColor" ) ) ); QString name; foreach(SkyObject *p, m_ObjectList) { if( ! proj->checkVisibility( p ) ) continue; bool visible = false; QPointF o = proj->toScreen( p, false, &visible ); if( !visible || !proj->onScreen( o ) ) continue; if( Options::useLatinConstellNames() || Options::useLocalConstellNames() ) name = p->name(); else name = p->name2(); o.setX( o.x() - 5.0 * name.length() ); skyLabeler->drawGuideLabel( o, name, 0.0 ); } skyLabeler->resetFont(); }
void Ecliptic::drawCompassLabels() { const Projector* proj = SkyMap::Instance()->projector(); KStarsData* data = KStarsData::Instance(); SkyLabeler* skyLabeler = SkyLabeler::Instance(); // Set proper color for labels QColor color( data->colorScheme()->colorNamed( "CompassColor" ) ); skyLabeler->setPen( QPen( QBrush(color), 1, Qt::SolidLine) ); KSNumbers num( data->ut().djd() ); dms elat(0.0), elng(0.0); QString label; for( int ra = 0; ra < 23; ra += 6 ) { elng.setH( ra ); SkyPoint o; o.setFromEcliptic( num.obliquity(), elng, elat ); o.setRA0( o.ra() ); o.setDec0( o.dec() ); o.EquatorialToHorizontal( data->lst(), data->geo()->lat() ); bool visible; QPointF cpoint = proj->toScreen( &o, false, &visible ); if( visible && proj->checkVisibility( &o ) ) { label.setNum( o.ra().reduce().Degrees() ); skyLabeler->drawGuideLabel( cpoint, label, 0.0 ); } } }