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();
}
Exemplo n.º 2
0
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 );
        }
    }
}