diff --git a/CMakeLists.txt b/CMakeLists.txt index f521dd0..8fdbc6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,34 +28,34 @@ find_library(STELLARSOLVER_LIB stellarsolver) add_subdirectory(libXISF) set(TENMON_SRC - about.cpp about.h - batchprocessing.cpp batchprocessing.h batchprocessing.ui - chartgraph.h chartgraph.cpp - database.cpp database.h - databaseview.cpp databaseview.h - delete.cpp - filesystemwidget.cpp filesystemwidget.h - histogram.cpp histogram.h - httpdownloader.h httpdownloader.cpp - imageinfo.cpp imageinfo.h - imageinfodata.cpp imageinfodata.h - imageringlist.cpp imageringlist.h - imagescrollarea.cpp imagescrollarea.h - imagewidget.h imagewidget.cpp - loadimage.h loadimage.cpp - loadrunable.cpp loadrunable.h - main.cpp - mainwindow.cpp mainwindow.h - markedfiles.cpp markedfiles.h - mtfparam.h - rawimage.cpp rawimage.h - rawimage_sse.cpp - scriptengine.cpp scriptengine.h - settingsdialog.cpp settingsdialog.h - statusbar.cpp statusbar.h - stfslider.cpp stfslider.h - stretchtoolbar.cpp stretchtoolbar.h - tfloat16.h + src/about.cpp src/about.h + src/batchprocessing.cpp src/batchprocessing.h src/batchprocessing.ui + src/chartgraph.h src/chartgraph.cpp + src/database.cpp src/database.h + src/databaseview.cpp src/databaseview.h + src/delete.cpp + src/filesystemwidget.cpp src/filesystemwidget.h + src/histogram.cpp src/histogram.h + src/httpdownloader.h src/httpdownloader.cpp + src/imageinfo.cpp src/imageinfo.h + src/imageinfodata.cpp src/imageinfodata.h + src/imageringlist.cpp src/imageringlist.h + src/imagescrollarea.cpp src/imagescrollarea.h + src/imagewidget.h src/imagewidget.cpp + src/loadimage.h src/loadimage.cpp + src/loadrunable.cpp src/loadrunable.h + src/main.cpp + src/mainwindow.cpp src/mainwindow.h + src/markedfiles.cpp src/markedfiles.h + src/mtfparam.h + src/rawimage.cpp src/rawimage.h + src/rawimage_sse.cpp + src/scriptengine.cpp src/scriptengine.h + src/settingsdialog.cpp src/settingsdialog.h + src/statusbar.cpp src/statusbar.h + src/stfslider.cpp src/stfslider.h + src/stretchtoolbar.cpp src/stretchtoolbar.h + src/tfloat16.h thumbnailer/genthumbnail.cpp thumbnailer/genthumbnail.h ) @@ -96,9 +96,9 @@ if(STELLARSOLVER_INCLUDE AND STELLARSOLVER_LIB) endif(MXE) target_compile_definitions(tenmon PRIVATE "PLATESOLVER") target_sources(tenmon PRIVATE - solver.cpp solver.h - platesolving.cpp platesolving.h platesolving.ui - platesolvingsettings.cpp platesolvingsettings.h platesolvingsettings.ui + src/solver.cpp src/solver.h + src/platesolving.cpp src/platesolving.h src/platesolving.ui + src/platesolvingsettings.cpp src/platesolvingsettings.h src/platesolvingsettings.ui ) message(STATUS "Found stellarsolver ${STELLARSOLVER_INCLUDE} ${STELLARSOLVER_LIB}") endif(STELLARSOLVER_INCLUDE AND STELLARSOLVER_LIB) diff --git a/README b/README index 82efca5..23497ca 100644 --- a/README +++ b/README @@ -30,4 +30,4 @@ For working plate solving you must have compiled and installed StellarSolver htt It is important that you compile StellarSolver with Qt6. By default it use Qt5 but when linked with Qt6 program it will crash. -Using OpenNGC database https://github.com/mattiaverga/OpenNGC under [CC-BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/) +Using OpenNGC database https://github.com/mattiaverga/OpenNGC under CC-BY-SA-4.0 https://creativecommons.org/licenses/by-sa/4.0/ diff --git a/about.cpp b/src/about.cpp similarity index 100% rename from about.cpp rename to src/about.cpp diff --git a/about.h b/src/about.h similarity index 100% rename from about.h rename to src/about.h diff --git a/batchprocessing.cpp b/src/batchprocessing.cpp similarity index 100% rename from batchprocessing.cpp rename to src/batchprocessing.cpp diff --git a/batchprocessing.h b/src/batchprocessing.h similarity index 100% rename from batchprocessing.h rename to src/batchprocessing.h diff --git a/batchprocessing.ui b/src/batchprocessing.ui similarity index 100% rename from batchprocessing.ui rename to src/batchprocessing.ui diff --git a/chartgraph.cpp b/src/chartgraph.cpp similarity index 100% rename from chartgraph.cpp rename to src/chartgraph.cpp diff --git a/chartgraph.h b/src/chartgraph.h similarity index 100% rename from chartgraph.h rename to src/chartgraph.h diff --git a/database.cpp b/src/database.cpp similarity index 99% rename from database.cpp rename to src/database.cpp index 7ccfcfc..253526c 100644 --- a/database.cpp +++ b/src/database.cpp @@ -284,7 +284,7 @@ QVector Database::getObjects(double minRa, double maxRa, double minDe m_getNgc.value("MajAx").toDouble(), m_getNgc.value("MinAx").toDouble(), m_getNgc.value("PosAng").toDouble(), - m_getNgc.value("mag").toDouble(), + m_getNgc.value("mag").isNull() ? NAN : m_getNgc.value("mag").toDouble(), {0, 0}, }); } diff --git a/database.h b/src/database.h similarity index 100% rename from database.h rename to src/database.h diff --git a/databaseview.cpp b/src/databaseview.cpp similarity index 100% rename from databaseview.cpp rename to src/databaseview.cpp diff --git a/databaseview.h b/src/databaseview.h similarity index 100% rename from databaseview.h rename to src/databaseview.h diff --git a/delete.cpp b/src/delete.cpp similarity index 100% rename from delete.cpp rename to src/delete.cpp diff --git a/filesystemwidget.cpp b/src/filesystemwidget.cpp similarity index 100% rename from filesystemwidget.cpp rename to src/filesystemwidget.cpp diff --git a/filesystemwidget.h b/src/filesystemwidget.h similarity index 100% rename from filesystemwidget.h rename to src/filesystemwidget.h diff --git a/histogram.cpp b/src/histogram.cpp similarity index 100% rename from histogram.cpp rename to src/histogram.cpp diff --git a/histogram.h b/src/histogram.h similarity index 100% rename from histogram.h rename to src/histogram.h diff --git a/httpdownloader.cpp b/src/httpdownloader.cpp similarity index 100% rename from httpdownloader.cpp rename to src/httpdownloader.cpp diff --git a/httpdownloader.h b/src/httpdownloader.h similarity index 100% rename from httpdownloader.h rename to src/httpdownloader.h diff --git a/imageinfo.cpp b/src/imageinfo.cpp similarity index 100% rename from imageinfo.cpp rename to src/imageinfo.cpp diff --git a/imageinfo.h b/src/imageinfo.h similarity index 100% rename from imageinfo.h rename to src/imageinfo.h diff --git a/imageinfodata.cpp b/src/imageinfodata.cpp similarity index 100% rename from imageinfodata.cpp rename to src/imageinfodata.cpp diff --git a/imageinfodata.h b/src/imageinfodata.h similarity index 99% rename from imageinfodata.h rename to src/imageinfodata.h index 09ed2ff..443d6f8 100644 --- a/imageinfodata.h +++ b/src/imageinfodata.h @@ -65,7 +65,7 @@ struct SkyObject double maj_ax; double min_ax; double pos_ang; - double vmag; + double mag; QPointF pixel; }; diff --git a/imageringlist.cpp b/src/imageringlist.cpp similarity index 100% rename from imageringlist.cpp rename to src/imageringlist.cpp diff --git a/imageringlist.h b/src/imageringlist.h similarity index 100% rename from imageringlist.h rename to src/imageringlist.h diff --git a/imagescrollarea.cpp b/src/imagescrollarea.cpp similarity index 100% rename from imagescrollarea.cpp rename to src/imagescrollarea.cpp diff --git a/imagescrollarea.h b/src/imagescrollarea.h similarity index 100% rename from imagescrollarea.h rename to src/imagescrollarea.h diff --git a/imagewidget.cpp b/src/imagewidget.cpp similarity index 100% rename from imagewidget.cpp rename to src/imagewidget.cpp diff --git a/imagewidget.h b/src/imagewidget.h similarity index 100% rename from imagewidget.h rename to src/imagewidget.h diff --git a/loadimage.cpp b/src/loadimage.cpp similarity index 100% rename from loadimage.cpp rename to src/loadimage.cpp diff --git a/loadimage.h b/src/loadimage.h similarity index 100% rename from loadimage.h rename to src/loadimage.h diff --git a/loadrunable.cpp b/src/loadrunable.cpp similarity index 100% rename from loadrunable.cpp rename to src/loadrunable.cpp diff --git a/loadrunable.h b/src/loadrunable.h similarity index 100% rename from loadrunable.h rename to src/loadrunable.h diff --git a/main.cpp b/src/main.cpp similarity index 98% rename from main.cpp rename to src/main.cpp index 8a71687..285ce33 100644 --- a/main.cpp +++ b/src/main.cpp @@ -4,7 +4,7 @@ #include #include #include -#include "thumbnailer/genthumbnail.h" +#include "../thumbnailer/genthumbnail.h" int main(int argc, char *argv[]) { diff --git a/mainwindow.cpp b/src/mainwindow.cpp similarity index 100% rename from mainwindow.cpp rename to src/mainwindow.cpp diff --git a/mainwindow.h b/src/mainwindow.h similarity index 100% rename from mainwindow.h rename to src/mainwindow.h diff --git a/markedfiles.cpp b/src/markedfiles.cpp similarity index 100% rename from markedfiles.cpp rename to src/markedfiles.cpp diff --git a/markedfiles.h b/src/markedfiles.h similarity index 100% rename from markedfiles.h rename to src/markedfiles.h diff --git a/mtfparam.h b/src/mtfparam.h similarity index 100% rename from mtfparam.h rename to src/mtfparam.h diff --git a/platesolving.cpp b/src/platesolving.cpp similarity index 100% rename from platesolving.cpp rename to src/platesolving.cpp diff --git a/platesolving.h b/src/platesolving.h similarity index 100% rename from platesolving.h rename to src/platesolving.h diff --git a/platesolving.ui b/src/platesolving.ui similarity index 100% rename from platesolving.ui rename to src/platesolving.ui diff --git a/platesolvingsettings.cpp b/src/platesolvingsettings.cpp similarity index 100% rename from platesolvingsettings.cpp rename to src/platesolvingsettings.cpp diff --git a/platesolvingsettings.h b/src/platesolvingsettings.h similarity index 100% rename from platesolvingsettings.h rename to src/platesolvingsettings.h diff --git a/platesolvingsettings.ui b/src/platesolvingsettings.ui similarity index 100% rename from platesolvingsettings.ui rename to src/platesolvingsettings.ui diff --git a/rawimage.cpp b/src/rawimage.cpp similarity index 100% rename from rawimage.cpp rename to src/rawimage.cpp diff --git a/rawimage.h b/src/rawimage.h similarity index 100% rename from rawimage.h rename to src/rawimage.h diff --git a/rawimage_sse.cpp b/src/rawimage_sse.cpp similarity index 100% rename from rawimage_sse.cpp rename to src/rawimage_sse.cpp diff --git a/scriptengine.cpp b/src/scriptengine.cpp similarity index 94% rename from scriptengine.cpp rename to src/scriptengine.cpp index ab6b65c..878116a 100644 --- a/scriptengine.cpp +++ b/src/scriptengine.cpp @@ -107,7 +107,34 @@ QJSValue ScriptEngine::getObjects(double ra, double dec, double distance) jsObj.setProperty("name2", object.name2); jsObj.setProperty("ra", object.skyPoint.RA()); jsObj.setProperty("dec", object.skyPoint.DEC()); - jsObj.setProperty("vmag", object.vmag); + jsObj.setProperty("mag", object.mag); + ret.setProperty(i++, jsObj); + } + + return ret; +} + +QJSValue ScriptEngine::getObjects(const QJSValue &bounds) +{ + QVector objects; + double minRa = bounds.property("minRA").toNumber(); + double maxRa = bounds.property("maxRA").toNumber(); + double minDec = bounds.property("minDEC").toNumber(); + double maxDec = bounds.property("maxDEC").toNumber(); + + QMetaObject::invokeMethod(_database, [this, minRa, maxRa, minDec, maxDec](){ + return _database->getObjects(minRa, maxRa, minDec, maxDec); }, Qt::BlockingQueuedConnection, &objects); + + QJSValue ret = newArray(objects.size()); + qint32 i = 0; + for(auto &object : objects) + { + QJSValue jsObj = newObject(); + jsObj.setProperty("name", object.name); + jsObj.setProperty("name2", object.name2); + jsObj.setProperty("ra", object.skyPoint.RA()); + jsObj.setProperty("dec", object.skyPoint.DEC()); + jsObj.setProperty("mag", object.mag); ret.setProperty(i++, jsObj); } @@ -432,12 +459,14 @@ void File::loadFitsKeywords() { readXISFHeader(_path, info); } - else if(suffix().toLower() == "fits" || suffix().toLower() == "fit") + else if(suffix().toLower() == "fits" || suffix().toLower() == "fit" || suffix().toLower() == "fz") { readFITSHeader(_path, info); } else return; + _wcs = info.wcs; + for(auto &record : info.fitsHeader) { _fitsKeywords.append(record.key); @@ -810,6 +839,24 @@ QJSValue File::stats() return _stats; } +QJSValue File::calculatedBounds() +{ + QJSValue ret = _engine->newObject(); + loadFitsKeywords(); + if(_wcs) + { + double minRa, maxRa, minDec, maxDec, crVal1, crVal2; + _wcs->calculateBounds(minRa, maxRa, minDec, maxDec, crVal1, crVal2); + ret.setProperty("minRA", minRa); + ret.setProperty("maxRA", maxRa); + ret.setProperty("minDEC", minDec); + ret.setProperty("maxDEC", maxDec); + ret.setProperty("crVal1", crVal1); + ret.setProperty("crVal2", crVal2); + } + return ret; +} + #ifdef PLATESOLVER QJSValue File::solve(bool updateHeader) { diff --git a/scriptengine.h b/src/scriptengine.h similarity index 97% rename from scriptengine.h rename to src/scriptengine.h index 45e5c7b..9a0a0a3 100644 --- a/scriptengine.h +++ b/src/scriptengine.h @@ -42,6 +42,7 @@ public: Q_INVOKABLE void unmark(File *file); Q_INVOKABLE bool isMarked(const File *file); Q_INVOKABLE QJSValue getObjects(double ra, double dec, double distance); + Q_INVOKABLE QJSValue getObjects(const QJSValue &bounds); Q_INVOKABLE void setMaxThread(int maxthread); Q_INVOKABLE void sync(); Q_INVOKABLE QJSValue getString(const QString &label = QString(), const QString &text = QString()) const; @@ -97,6 +98,7 @@ class File : public QObject bool _fitsKeywordsLoaded = false; QStringList _fitsKeywords; QMultiHash _fitsRecords; + std::shared_ptr _wcs; void loadFitsKeywords(); bool mkpath(const QString &path) const; QJSValue _stats; @@ -125,6 +127,7 @@ public: Q_INVOKABLE File* convert(const QString &outpath, const QString &format, const QVariantMap ¶ms = QVariantMap()); Q_INVOKABLE File* convertAsync(const QString &outpath, const QString &format, const QVariantMap ¶ms = QVariantMap()); Q_INVOKABLE QJSValue stats(); + Q_INVOKABLE QJSValue calculatedBounds(); #ifdef PLATESOLVER Q_INVOKABLE QJSValue solve(bool updateHeader = false); Q_INVOKABLE QJSValue extractStars(bool hfr); diff --git a/settingsdialog.cpp b/src/settingsdialog.cpp similarity index 100% rename from settingsdialog.cpp rename to src/settingsdialog.cpp diff --git a/settingsdialog.h b/src/settingsdialog.h similarity index 100% rename from settingsdialog.h rename to src/settingsdialog.h diff --git a/solver.cpp b/src/solver.cpp similarity index 100% rename from solver.cpp rename to src/solver.cpp diff --git a/solver.h b/src/solver.h similarity index 100% rename from solver.h rename to src/solver.h diff --git a/statusbar.cpp b/src/statusbar.cpp similarity index 100% rename from statusbar.cpp rename to src/statusbar.cpp diff --git a/statusbar.h b/src/statusbar.h similarity index 100% rename from statusbar.h rename to src/statusbar.h diff --git a/stfslider.cpp b/src/stfslider.cpp similarity index 100% rename from stfslider.cpp rename to src/stfslider.cpp diff --git a/stfslider.h b/src/stfslider.h similarity index 100% rename from stfslider.h rename to src/stfslider.h diff --git a/stretchtoolbar.cpp b/src/stretchtoolbar.cpp similarity index 100% rename from stretchtoolbar.cpp rename to src/stretchtoolbar.cpp diff --git a/stretchtoolbar.h b/src/stretchtoolbar.h similarity index 100% rename from stretchtoolbar.h rename to src/stretchtoolbar.h diff --git a/tfloat16.h b/src/tfloat16.h similarity index 100% rename from tfloat16.h rename to src/tfloat16.h diff --git a/thumbnailer/genthumbnail.cpp b/thumbnailer/genthumbnail.cpp index ef51c7a..7b929e8 100644 --- a/thumbnailer/genthumbnail.cpp +++ b/thumbnailer/genthumbnail.cpp @@ -1,7 +1,6 @@ #include "genthumbnail.h" -#include "../rawimage.h" -#include "../loadimage.h" - +#include "../src/rawimage.h" +#include "../src/loadimage.h" int generateThumbnail(const QString &input, const QString &output, uint32_t size) { diff --git a/thumbnailer/main.cpp b/thumbnailer/main.cpp index ecc8023..c60efad 100644 --- a/thumbnailer/main.cpp +++ b/thumbnailer/main.cpp @@ -1,7 +1,7 @@ #include #include #include -#include "../rawimage.h" +#include "../src/rawimage.h" #define STB_IMAGE_WRITE_IMPLEMENTATION #include "stb_image_write.h"