Kstars

mosaicplanner.h
1 /*
2  SPDX-FileCopyrightText: 2022 Jasem Mutlaq <[email protected]>
3 
4  SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include <QDialog>
10 
11 class QQuickView;
12 class QQuickItem;
13 class QQmlContext;
14 
15 namespace Ekos
16 {
17 
18 class MosaicPlanner : public QWidget
19 {
20  Q_OBJECT
21  Q_PROPERTY(double focalLength MEMBER m_FocalLength NOTIFY focalLengthChanged)
22  Q_PROPERTY(QSize cameraSize MEMBER m_CameraSize NOTIFY cameraSizeChanged)
23  Q_PROPERTY(QSizeF pixelSize MEMBER m_PixelSize NOTIFY pixelSizeChanged)
24  Q_PROPERTY(QSize gridSize MEMBER m_GridSize NOTIFY gridSizeChanged)
25  Q_PROPERTY(double overlap MEMBER m_Overlap NOTIFY overlapChanged)
26 
27  public:
28  MosaicPlanner(QWidget *parent = nullptr);
29  ~MosaicPlanner() override;
30 
31  // Return Camera Field of View in arcminutes
32  Q_INVOKABLE QSizeF cameraFOV() const
33  {
34  return m_cameraFOV;
35  }
36  // Return Mosaic Field of View in arcminutes
37  Q_INVOKABLE QSizeF mosaicFOV() const
38  {
39  return m_MosaicFOV;
40  }
41 
42  public:
43 
44  protected:
45 
46  signals:
47  void focalLengthChanged();
48  void cameraSizeChanged();
49  void pixelSizeChanged();
50  void gridSizeChanged();
51  void overlapChanged();
52 
53  private:
54 
55  QQuickView *m_BaseView = nullptr;
56  QQuickItem *m_BaseObj = nullptr;
57  QQmlContext *m_Ctxt = nullptr;
58 
59  double m_FocalLength {0};
60  QSize m_CameraSize;
61  QSizeF m_PixelSize, m_cameraFOV {60.1, 44.5}, m_MosaicFOV;
62  QSize m_GridSize {1,1};
63  double m_Overlap {10};
64 };
65 }
Q_OBJECTQ_OBJECT
Q_PROPERTY(...)
Ekos is an advanced Astrophotography tool for Linux. It is based on a modular extensible framework to...
Definition: align.cpp:66
Q_INVOKABLEQ_INVOKABLE
This file is part of the KDE documentation.
Documentation copyright © 1996-2022 The KDE developers.
Generated on Fri Aug 19 2022 03:57:52 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.