1 /*
2     SPDX-FileCopyrightText: 2021 Jasem Mutlaq <mutlaqja@ikarustech.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include <QUndoCommand>
10 #include "fitsdata.h"
11 
12 class FITSData;
13 class FITSHistogramEditor;
14 
15 class FITSHistogramCommand : public QUndoCommand
16 {
17     public:
18         FITSHistogramCommand(const QSharedPointer<FITSData> &data, FITSHistogramEditor * inHisto, FITSScale newType,
19                              const QVector<double> &lmin,
20                              const QVector<double> &lmax);
21         virtual ~FITSHistogramCommand();
22 
23         virtual void redo() override;
24         virtual void undo() override;
25         virtual QString text() const;
26 
27     private:
28         bool calculateDelta(const uint8_t * buffer);
29         bool reverseDelta();
30 
31         FITSImage::Statistic stats;
32 
33         QSharedPointer<FITSData> m_ImageData;
34         FITSHistogramEditor * histogram { nullptr };
35         FITSScale type;
36         QVector<double> min, max;
37 
38         unsigned char * delta { nullptr };
39         unsigned long compressedBytes { 0 };
40 
41 };
42