1 /*
2     SPDX-FileCopyrightText: 2004 Jasem Mutlaq
3     SPDX-FileCopyrightText: 2020 Eric Dejouhanet <eric.dejouhanet@gmail.com>
4 
5     SPDX-License-Identifier: GPL-2.0-or-later
6 
7     Some code fragments were adapted from Peter Kirchgessner's FITS plugin
8     SPDX-FileCopyrightText: Peter Kirchgessner <http://members.aol.com/pkirchg>
9 */
10 
11 #pragma once
12 
13 #include "fitsstardetector.h"
14 #include "skybackground.h"
15 
16 class FITSSEPDetector : public FITSStarDetector
17 {
18         Q_OBJECT
19 
20     public:
FITSSEPDetector(FITSData * data)21         explicit FITSSEPDetector(FITSData * data): FITSStarDetector(data) {};
22 
23         /** @brief Find sources in the parent FITS data file.
24          * @see FITSStarDetector::findSources().
25          */
26         QFuture<bool> findSources(QRect const &boundary = QRect()) override;
27 
28         /** @brief Find sources in the parent FITS data file as well as background sky information.
29          */
30         bool findSourcesAndBackground(QRect const &boundary = QRect());
31 
32     protected:
33         /** @internal Consolidate a float data buffer from FITS data.
34          * @param buffer is the destination float block.
35          * @param x, y, w, h define a (x,y)-(x+w,y+h) sub-frame to extract from the FITS data out to block 'buffer'.
36          * @param image_data is the FITS data block to extract from.
37          */
38         template <typename T>
39         void getFloatBuffer(float * buffer, int x, int y, int w, int h, FITSData const * image_data) const;
40 
41     private:
42 
43         void clearSolver();
44 
45         //        int numStars = 100;
46         //        double fractionRemoved = 0.2;
47         //        int deblendNThresh = 32;
48         //        double deblendMincont = 0.005;
49         //        bool radiusIsBoundary = true;
50 };
51 
52