Add solver profile to script engine
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include <QFileInfo>
|
||||
#include <QDebug>
|
||||
#include <QInputDialog>
|
||||
#include <QJsonValue>
|
||||
#include "loadrunable.h"
|
||||
#include "rawimage.h"
|
||||
#include "loadrunable.h"
|
||||
@@ -162,6 +163,58 @@ bool ScriptEngine::convert(File *file, QString &outpath, const QString &format,
|
||||
}
|
||||
|
||||
#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)
|
||||
{
|
||||
if(solution.isObject())
|
||||
|
||||
@@ -49,6 +49,9 @@ public:
|
||||
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);
|
||||
#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());
|
||||
QJSValue solveImage(File *file, bool updateHeader);
|
||||
QJSValue extractStars(File *file, bool hfr);
|
||||
|
||||
@@ -205,6 +205,11 @@ void Solver::setParameters(const Parameters ¶meters)
|
||||
_solver->setParameters(profile);
|
||||
}
|
||||
|
||||
Parameters Solver::getProfile() const
|
||||
{
|
||||
return _solver->getCurrentParameters();
|
||||
}
|
||||
|
||||
void Solver::setSearchScale(double fovLow, double fowHigh, SSolver::ScaleUnits units)
|
||||
{
|
||||
_solver->setSearchScale(fovLow, fowHigh, units);
|
||||
|
||||
@@ -34,6 +34,7 @@ public:
|
||||
bool updateHeader(QString &error);
|
||||
void setParameters(SSolver::Parameters::ParametersProfile profile);
|
||||
void setParameters(const SSolver::Parameters ¶meters);
|
||||
SSolver::Parameters getProfile() const;
|
||||
void setSearchScale(double fovLow, double fowHigh, ScaleUnits units);
|
||||
void setSearchPosition(double ra, double dec);
|
||||
void clearStartingPositionAndScale();
|
||||
|
||||
Reference in New Issue
Block a user