Add solver profile to script engine
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QInputDialog>
|
#include <QInputDialog>
|
||||||
|
#include <QJsonValue>
|
||||||
#include "loadrunable.h"
|
#include "loadrunable.h"
|
||||||
#include "rawimage.h"
|
#include "rawimage.h"
|
||||||
#include "loadrunable.h"
|
#include "loadrunable.h"
|
||||||
@@ -162,6 +163,58 @@ bool ScriptEngine::convert(File *file, QString &outpath, const QString &format,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef PLATESOLVER
|
#ifdef PLATESOLVER
|
||||||
|
void ScriptEngine::setSolverProfile(int index)
|
||||||
|
{
|
||||||
|
if(_solver && index >= SSolver::Parameters::DEFAULT && index < SSolver::Parameters::BIG_STARS)
|
||||||
|
{
|
||||||
|
_solver->setParameters((SSolver::Parameters::ParametersProfile)index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScriptEngine::setSolverProfile(const QVariantMap &profile)
|
||||||
|
{
|
||||||
|
if(_solver)
|
||||||
|
{
|
||||||
|
SSolver::Parameters params = SSolver::Parameters::convertFromMap(profile);
|
||||||
|
_solver->setParameters(params);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QJSValue ScriptEngine::getSolverProfile() const
|
||||||
|
{
|
||||||
|
if(_solver)
|
||||||
|
{
|
||||||
|
QMap<QString, QVariant> params = SSolver::Parameters::convertToMap(_solver->getProfile());
|
||||||
|
QJSValue ret = _jsEngine->newObject();
|
||||||
|
for(auto i = params.begin(); i != params.end(); i++)
|
||||||
|
{
|
||||||
|
switch(i.value().metaType().id())
|
||||||
|
{
|
||||||
|
case QMetaType::Int:
|
||||||
|
ret.setProperty(i.key(), i.value().toInt());
|
||||||
|
break;
|
||||||
|
case QMetaType::Double:
|
||||||
|
ret.setProperty(i.key(), i.value().toDouble());
|
||||||
|
break;
|
||||||
|
case QMetaType::Bool:
|
||||||
|
ret.setProperty(i.key(), i.value().toBool());
|
||||||
|
break;
|
||||||
|
case QMetaType::QString:
|
||||||
|
ret.setProperty(i.key(), i.value().toString());
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
qWarning() << "unhandled metatype" << i.key() << i.value();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return QJSValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ScriptEngine::setStartingSolution(const QJSValue &solution)
|
void ScriptEngine::setStartingSolution(const QJSValue &solution)
|
||||||
{
|
{
|
||||||
if(solution.isObject())
|
if(solution.isObject())
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ public:
|
|||||||
Q_INVOKABLE QJSValue getItem(const QStringList &items, const QString &label = "", int current = 0) const;
|
Q_INVOKABLE QJSValue getItem(const QStringList &items, const QString &label = "", int current = 0) const;
|
||||||
bool convert(File *file, QString &outpath, const QString &format, const QVariantMap ¶ms, bool async);
|
bool convert(File *file, QString &outpath, const QString &format, const QVariantMap ¶ms, bool async);
|
||||||
#ifdef PLATESOLVER
|
#ifdef PLATESOLVER
|
||||||
|
Q_INVOKABLE void setSolverProfile(int index);
|
||||||
|
Q_INVOKABLE void setSolverProfile(const QVariantMap &profile);
|
||||||
|
Q_INVOKABLE QJSValue getSolverProfile() const;
|
||||||
Q_INVOKABLE void setStartingSolution(const QJSValue &solution = QJSValue());
|
Q_INVOKABLE void setStartingSolution(const QJSValue &solution = QJSValue());
|
||||||
QJSValue solveImage(File *file, bool updateHeader);
|
QJSValue solveImage(File *file, bool updateHeader);
|
||||||
QJSValue extractStars(File *file, bool hfr);
|
QJSValue extractStars(File *file, bool hfr);
|
||||||
|
|||||||
@@ -205,6 +205,11 @@ void Solver::setParameters(const Parameters ¶meters)
|
|||||||
_solver->setParameters(profile);
|
_solver->setParameters(profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Parameters Solver::getProfile() const
|
||||||
|
{
|
||||||
|
return _solver->getCurrentParameters();
|
||||||
|
}
|
||||||
|
|
||||||
void Solver::setSearchScale(double fovLow, double fowHigh, SSolver::ScaleUnits units)
|
void Solver::setSearchScale(double fovLow, double fowHigh, SSolver::ScaleUnits units)
|
||||||
{
|
{
|
||||||
_solver->setSearchScale(fovLow, fowHigh, units);
|
_solver->setSearchScale(fovLow, fowHigh, units);
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public:
|
|||||||
bool updateHeader(QString &error);
|
bool updateHeader(QString &error);
|
||||||
void setParameters(SSolver::Parameters::ParametersProfile profile);
|
void setParameters(SSolver::Parameters::ParametersProfile profile);
|
||||||
void setParameters(const SSolver::Parameters ¶meters);
|
void setParameters(const SSolver::Parameters ¶meters);
|
||||||
|
SSolver::Parameters getProfile() const;
|
||||||
void setSearchScale(double fovLow, double fowHigh, ScaleUnits units);
|
void setSearchScale(double fovLow, double fowHigh, ScaleUnits units);
|
||||||
void setSearchPosition(double ra, double dec);
|
void setSearchPosition(double ra, double dec);
|
||||||
void clearStartingPositionAndScale();
|
void clearStartingPositionAndScale();
|
||||||
|
|||||||
Reference in New Issue
Block a user