Ocular.cpp   Ocular.cpp 
skipping to change at line 24 skipping to change at line 24
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
*/ */
#include "Ocular.hpp" #include "Ocular.hpp"
#include "Telescope.hpp" #include "Telescope.hpp"
#include "Lens.hpp" #include "Lens.hpp"
Ocular::Ocular() Ocular::Ocular()
: m_binoculars(false),
m_appearentFOV(0.0),
m_effectiveFocalLength(0.0),
m_fieldStop(0.0),
m_reticleFOV(0.0)
{ {
} }
Ocular::Ocular(const QObject& other) Ocular::Ocular(const QObject& other)
: m_binoculars(other.property("binoculars").toBool()),
m_appearentFOV(other.property("appearentFOV").toDouble()),
m_effectiveFocalLength(other.property("effectiveFocalLength").toDo
uble()),
m_fieldStop(other.property("fieldStop").toDouble()),
m_name(other.property("name").toString()),
m_reticleFOV(other.property("reticleFOV").toDouble())
{ {
this->m_appearentFOV = other.property("appearentFOV").toDouble();
this->m_effectiveFocalLength = other.property("effectiveFocalLength"
).toDouble();
this->m_fieldStop = other.property("fieldStop").toDouble();
this->m_name = other.property("name").toString();
this->m_binoculars = other.property("binoculars").toBool();
} }
Ocular::~Ocular() Ocular::~Ocular()
{ {
} }
static QMap<int, QString> mapping; static QMap<int, QString> mapping;
QMap<int, QString> Ocular::propertyMap() QMap<int, QString> Ocular::propertyMap(void)
{ {
if(mapping.isEmpty()) { if(mapping.isEmpty()) {
mapping = QMap<int, QString>(); mapping = QMap<int, QString>();
mapping[0] = "name"; mapping[0] = "name";
mapping[1] = "appearentFOV"; mapping[1] = "appearentFOV";
mapping[2] = "effectiveFocalLength"; mapping[2] = "effectiveFocalLength";
mapping[3] = "fieldStop"; mapping[3] = "fieldStop";
mapping[4] = "binoculars"; mapping[4] = "binoculars";
mapping[5] = "reticlePath";
} }
return mapping; return mapping;
} }
/* ********************************************************************* */ /* ********************************************************************* */
#if 0 #if 0
#pragma mark - #pragma mark -
#pragma mark Instance Methods #pragma mark Instance Methods
#endif #endif
/* ********************************************************************* */ /* ********************************************************************* */
double Ocular::actualFOV(Telescope *telescope, Lens *lens) const double Ocular::actualFOV(const Telescope * telescope, const Lens * lens) co nst
{ {
const double lens_multipler = (lens != NULL ? lens->multipler() : 1. 0f); const double lens_multipler = (lens != NULL ? lens->multipler() : 1. 0f);
double actualFOV = 0.0; double actualFOV = 0.0;
if (m_binoculars) { if (m_binoculars) {
actualFOV = appearentFOV(); actualFOV = appearentFOV();
} else if (fieldStop() > 0.0) { } else if (fieldStop() > 0.0) {
actualFOV = fieldStop() / (telescope->focalLength() * lens_ multipler) * 57.3; actualFOV = fieldStop() / (telescope->focalLength() * lens_ multipler) * 57.3;
} else { } else {
//actualFOV = apparent / mag //actualFOV = apparent / mag
actualFOV = appearentFOV() / (telescope->focalLength() * len s_multipler / effectiveFocalLength()); actualFOV = appearentFOV() / (telescope->focalLength() * len s_multipler / effectiveFocalLength());
} }
return actualFOV; return actualFOV;
} }
double Ocular::magnification(Telescope *telescope, Lens *lens) const double Ocular::magnification(const Telescope * telescope, const Lens * lens ) const
{ {
double magnifiction = 0.0; double magnifiction = 0.0;
if (m_binoculars) { if (m_binoculars) {
magnifiction = effectiveFocalLength(); magnifiction = effectiveFocalLength();
} else { } else {
const double lens_multipler = (lens != NULL ? lens->multiple r() : 1.0f); const double lens_multipler = (lens != NULL ? lens->multiple r() : 1.0f);
magnifiction = telescope->focalLength() * lens_multipler / e ffectiveFocalLength(); magnifiction = telescope->focalLength() * lens_multipler / e ffectiveFocalLength();
} }
return magnifiction; return magnifiction;
} }
/* ********************************************************************* */ /* ********************************************************************* */
#if 0 #if 0
#pragma mark - #pragma mark -
#pragma mark Accessors & Mutators #pragma mark Accessors & Mutators
#endif #endif
/* ********************************************************************* */ /* ********************************************************************* */
const QString Ocular::name() const QString Ocular::name(void) const
{ {
return m_name; return m_name;
} }
void Ocular::setName(QString aName) void Ocular::setName(const QString aName)
{ {
m_name = aName; m_name = aName;
} }
double Ocular::appearentFOV() const double Ocular::appearentFOV(void) const
{ {
return m_appearentFOV; return m_appearentFOV;
} }
void Ocular::setAppearentFOV(double fov) void Ocular::setAppearentFOV(const double fov)
{ {
m_appearentFOV = fov; m_appearentFOV = fov;
} }
double Ocular::effectiveFocalLength() const double Ocular::effectiveFocalLength(void) const
{ {
return m_effectiveFocalLength; return m_effectiveFocalLength;
} }
void Ocular::setEffectiveFocalLength(double fl) void Ocular::setEffectiveFocalLength(const double fl)
{ {
m_effectiveFocalLength = fl; m_effectiveFocalLength = fl;
} }
double Ocular::fieldStop() const double Ocular::fieldStop(void) const
{ {
return m_fieldStop; return m_fieldStop;
} }
void Ocular::setFieldStop(double fs) void Ocular::setFieldStop(const double fs)
{ {
m_fieldStop = fs; m_fieldStop = fs;
} }
bool Ocular::isBinoculars() const bool Ocular::isBinoculars(void) const
{ {
return m_binoculars; return m_binoculars;
} }
void Ocular::setBinoculars(bool flag) void Ocular::setBinoculars(const bool flag)
{ {
m_binoculars = flag; m_binoculars = flag;
} }
QString Ocular::reticlePath(void) const
{
return m_reticlePath;
}
void Ocular::setReticlePath(const QString path)
{
m_reticlePath = path;
}
/* ********************************************************************* */ /* ********************************************************************* */
#if 0 #if 0
#pragma mark - #pragma mark -
#pragma mark Static Methods #pragma mark Static Methods
#endif #endif
/* ********************************************************************* */ /* ********************************************************************* */
Ocular* Ocular::ocularFromSettings(QSettings* theSettings, int ocularIndex) Ocular * Ocular::ocularFromSettings(const QSettings *theSettings, const int ocularIndex)
{ {
Ocular* ocular = new Ocular(); Ocular* ocular = new Ocular();
QString prefix = "ocular/" + QVariant(ocularIndex).toString() + "/"; QString prefix = "ocular/" + QVariant(ocularIndex).toString() + "/";
ocular->setName(theSettings->value(prefix + "name", "").toString()); ocular->setName(theSettings->value(prefix + "name", "").toString());
ocular->setAppearentFOV(theSettings->value(prefix + "afov", "0.0").t oDouble()); ocular->setAppearentFOV(theSettings->value(prefix + "afov", "0.0").t oDouble());
ocular->setEffectiveFocalLength(theSettings->value(prefix + "efl", " 0.0").toDouble()); ocular->setEffectiveFocalLength(theSettings->value(prefix + "efl", " 0.0").toDouble());
ocular->setFieldStop(theSettings->value(prefix + "fieldStop", "0.0") .toDouble()); ocular->setFieldStop(theSettings->value(prefix + "fieldStop", "0.0") .toDouble());
ocular->setBinoculars(theSettings->value(prefix + "binoculars", "fal se").toBool()); ocular->setBinoculars(theSettings->value(prefix + "binoculars", "fal se").toBool());
ocular->setReticlePath(theSettings->value(prefix + "reticlePath", "" ).toString());
if (!(ocular->appearentFOV() > 0.0 && ocular->effectiveFocalLength() > 0.0)) { if (!(ocular->appearentFOV() > 0.0 && ocular->effectiveFocalLength() > 0.0)) {
qWarning() << "WARNING: Invalid data for ocular. Ocular valu es must be positive. \n" qWarning() << "WARNING: Invalid data for ocular. Ocular valu es must be positive. \n"
<< "\tafov: " << ocular->appearentFOV() << "\n" << "\tafov: " << ocular->appearentFOV() << "\n"
<< "\tefl: " << ocular->effectiveFocalLength() << "\n" << "\tefl: " << ocular->effectiveFocalLength() << "\n"
<< "\tThis ocular will be ignored."; << "\tThis ocular will be ignored.";
delete ocular; delete ocular;
ocular = NULL; ocular = NULL;
} }
return ocular; return ocular;
} }
Ocular* Ocular::ocularModel() void Ocular::writeToSettings(QSettings * settings, const int index)
{
QString prefix = "ocular/" + QVariant(index).toString() + "/";
settings->setValue(prefix + "name", this->name());
settings->setValue(prefix + "afov", this->appearentFOV());
settings->setValue(prefix + "efl", this->effectiveFocalLength());
settings->setValue(prefix + "fieldStop", this->fieldStop());
settings->setValue(prefix + "binoculars", this->isBinoculars());
settings->setValue(prefix + "reticlePath", this->reticlePath());
}
Ocular * Ocular::ocularModel(void)
{ {
Ocular* model = new Ocular(); Ocular* model = new Ocular();
model->setName("My Ocular"); model->setName("My Ocular");
model->setAppearentFOV(68); model->setAppearentFOV(68);
model->setEffectiveFocalLength(32); model->setEffectiveFocalLength(32);
model->setFieldStop(0); model->setFieldStop(0);
model->setBinoculars(false); model->setBinoculars(false);
model->setReticlePath("");
return model; return model;
} }
 End of changes. 22 change blocks. 
21 lines changed or deleted 50 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/