31
31
return (s >= FOV::UNKNOWN || s < 0) ? FOV::UNKNOWN : static_cast<FOV::Shape>(s);
34
FOV::FOV( const QString &n, float a, float b, Shape sh, const QString &col ) :
35
m_name( n ), m_color( col ), m_sizeX( a ), m_shape( sh )
34
FOV::FOV( const QString &n, float a, float b, float xoffset, float yoffset, float rot, Shape sh, const QString &col )
37
38
m_sizeY = (b < 0.0) ? a : b;
41
m_name( i18n( "No FOV" ) ), m_color( "#FFFFFF" ), m_sizeX( 0.0 ), m_sizeY( 0.0 ), m_shape( SQUARE )
49
m_name = i18n( "No FOV" );
52
m_sizeX = m_sizeY = 0;
54
m_offsetX=m_offsetY=m_rotation=0;
44
57
void FOV::draw( QPainter &p, float zoomFactor ) {
45
58
p.setPen( QColor( color() ) );
48
61
p.setRenderHint( QPainter::Antialiasing, Options::useAntialias() );
50
64
float pixelSizeX = sizeX() * zoomFactor / 57.3 / 60.0;
51
65
float pixelSizeY = sizeY() * zoomFactor / 57.3 / 60.0;
52
QPointF center = p.viewport().center();
67
float offsetXPixelSize = offsetX() * zoomFactor / 57.3 / 60.0;
68
float offsetYPixelSize = offsetY() * zoomFactor / 57.3 / 60.0;
71
p.translate(p.viewport().center());
73
p.translate(offsetXPixelSize, offsetYPixelSize);
55
81
p.drawRect( center.x() - pixelSizeX/2, center.y() - pixelSizeY/2, pixelSizeX, pixelSizeY);
112
140
QList<FOV*> fovs;
113
141
fovs << new FOV(i18nc("use field-of-view for binoculars", "7x35 Binoculars" ),
114
558, 558, CIRCLE,"#AAAAAA")
142
558, 558, 0,0,0, CIRCLE,"#AAAAAA")
115
143
<< new FOV(i18nc("use a Telrad field-of-view indicator", "Telrad" ),
116
30, 30, BULLSEYE,"#AA0000")
144
30, 30, 0,0,0, BULLSEYE,"#AA0000")
117
145
<< new FOV(i18nc("use 1-degree field-of-view indicator", "One Degree"),
118
60, 60, CIRCLE,"#AAAAAA")
146
60, 60, 0,0,0, CIRCLE,"#AAAAAA")
119
147
<< new FOV(i18nc("use HST field-of-view indicator", "HST WFPC2"),
120
2.4, 2.4, SQUARE,"#AAAAAA")
148
2.4, 2.4, 0,0,0, SQUARE,"#AAAAAA")
121
149
<< new FOV(i18nc("use Radiotelescope HPBW", "30m at 1.3cm" ),
122
1.79, 1.79, SQUARE,"#AAAAAA");
150
1.79, 1.79, 0,0,0, SQUARE,"#AAAAAA");
162
193
QStringList fields = istream.readLine().split(':');
164
195
QString name, color;
196
float sizeX, sizeY, xoffset, yoffset, rot, orient;
167
if( fields.count() == 4 ) {
169
sizeX = fields[1].toFloat(&ok);
171
return QList<FOV*>();
174
shape = intToShape( fields[2].toInt(&ok) );
176
return QList<FOV*>();
179
} else if( fields.count() == 5 ) {
198
if( fields.count() == 8 )
180
200
name = fields[0];
181
201
sizeX = fields[1].toFloat(&ok);
187
207
return QList<FOV*>();
189
shape = intToShape( fields[3].toInt(&ok) );
191
return QList<FOV*>();
209
xoffset = fields[3].toFloat(&ok);
211
return QList<FOV*>();
214
yoffset = fields[4].toFloat(&ok);
216
return QList<FOV*>();
219
rot = fields[5].toFloat(&ok);
221
return QList<FOV*>();
224
shape = intToShape( fields[6].toInt(&ok) );
226
return QList<FOV*>();
197
fovs.append( new FOV(name, sizeX, sizeY, shape, color) );
232
fovs.append( new FOV(name, sizeX, sizeY, xoffset, yoffset, rot, shape, color) );