|
shun_iwasawa |
21a6b6 |
#pragma once
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
#ifndef PENCILTESTPOPUP_H
|
|
shun_iwasawa |
21a6b6 |
#define PENCILTESTPOPUP_H
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
#include "toonzqt/dvdialog.h"
|
|
shun_iwasawa |
84461e |
#include "toonzqt/lineedit.h"
|
|
shun_iwasawa |
60d966 |
#include "toonz/namebuilder.h"
|
|
shun-iwasawa |
78dff8 |
#include "opencv2/opencv.hpp"
|
|
shun-iwasawa |
70632f |
#include "tfilepath.h"
|
|
shun-iwasawa |
ef0f8b |
#include "toonz/tproject.h"
|
|
shun-iwasawa |
d9416c |
#include "filebrowserpopup.h"
|
|
shun_iwasawa |
21a6b6 |
|
|
shun-iwasawa |
f28b21 |
#include <qabstractvideosurface></qabstractvideosurface>
|
|
shun-iwasawa |
f28b21 |
#include <qrunnable></qrunnable>
|
|
shun-iwasawa |
78dff8 |
#include <qlineedit></qlineedit>
|
|
shun-iwasawa |
e12407 |
#include <qpushbutton></qpushbutton>
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
// forward decl.
|
|
shun_iwasawa |
21a6b6 |
class QCamera;
|
|
shun_iwasawa |
21a6b6 |
class QCameraImageCapture;
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
class QComboBox;
|
|
shun_iwasawa |
21a6b6 |
class QSlider;
|
|
shun_iwasawa |
21a6b6 |
class QCheckBox;
|
|
shun_iwasawa |
21a6b6 |
class QVideoFrame;
|
|
shun_iwasawa |
7b62b4 |
class QTimer;
|
|
shun_iwasawa |
84461e |
class QIntValidator;
|
|
shun_iwasawa |
84461e |
class QRegExpValidator;
|
|
shun-iwasawa |
d9416c |
class QLabel;
|
|
shun-iwasawa |
d9416c |
class QGroupBox;
|
|
shun-iwasawa |
32ce3e |
class QRadioButton;
|
|
shun-iwasawa |
5bdd2f |
#ifdef MACOSX
|
|
shun-iwasawa |
5bdd2f |
class QCameraViewfinder;
|
|
shun-iwasawa |
5bdd2f |
#endif
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
namespace DVGui {
|
|
shun_iwasawa |
21a6b6 |
class FileField;
|
|
shun_iwasawa |
21a6b6 |
class IntField;
|
|
shun-iwasawa |
f28b21 |
class IntLineEdit;
|
|
shun-iwasawa |
ba4abf |
} // namespace DVGui
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
6c81f0 |
class CameraCaptureLevelControl;
|
|
shun_iwasawa |
6c81f0 |
|
|
shun-iwasawa |
f28b21 |
//=============================================================================
|
|
shun-iwasawa |
f28b21 |
// MyVideoWidget
|
|
shun-iwasawa |
f28b21 |
//-----------------------------------------------------------------------------
|
|
shun-iwasawa |
f28b21 |
|
|
shun-iwasawa |
f28b21 |
class MyVideoWidget : public QWidget {
|
|
shun_iwasawa |
21a6b6 |
Q_OBJECT
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
QImage m_image;
|
|
shun_iwasawa |
21a6b6 |
QImage m_previousImage;
|
|
shun_iwasawa |
7b62b4 |
int m_countDownTime;
|
|
shun_iwasawa |
21a6b6 |
bool m_showOnionSkin;
|
|
shun_iwasawa |
21a6b6 |
int m_onionOpacity;
|
|
shun_iwasawa |
21a6b6 |
bool m_upsideDown;
|
|
shun_iwasawa |
21a6b6 |
|
|
shun-iwasawa |
f28b21 |
QRect m_subCameraRect;
|
|
shun-iwasawa |
f28b21 |
QRect m_preSubCameraRect;
|
|
shun-iwasawa |
f28b21 |
QPoint m_dragStartPos;
|
|
shun-iwasawa |
f28b21 |
|
|
shun-iwasawa |
78dff8 |
QRect m_targetRect;
|
|
shun-iwasawa |
78dff8 |
QTransform m_S2V_Transform; // surface to video transform
|
|
shun-iwasawa |
f28b21 |
enum SUBHANDLE {
|
|
shun-iwasawa |
f28b21 |
HandleNone,
|
|
shun-iwasawa |
f28b21 |
HandleFrame,
|
|
shun-iwasawa |
f28b21 |
HandleTopLeft,
|
|
shun-iwasawa |
f28b21 |
HandleTopRight,
|
|
shun-iwasawa |
f28b21 |
HandleBottomLeft,
|
|
shun-iwasawa |
f28b21 |
HandleBottomRight,
|
|
shun-iwasawa |
f28b21 |
HandleLeft,
|
|
shun-iwasawa |
f28b21 |
HandleTop,
|
|
shun-iwasawa |
f28b21 |
HandleRight,
|
|
shun-iwasawa |
f28b21 |
HandleBottom
|
|
shun-iwasawa |
f28b21 |
} m_activeSubHandle = HandleNone;
|
|
shun-iwasawa |
f28b21 |
void drawSubCamera(QPainter&);
|
|
shun-iwasawa |
f28b21 |
|
|
shun_iwasawa |
21a6b6 |
public:
|
|
shun-iwasawa |
f28b21 |
MyVideoWidget(QWidget* parent = 0);
|
|
shun-iwasawa |
f28b21 |
|
|
shun_iwasawa |
21a6b6 |
void setImage(const QImage& image) {
|
|
shun_iwasawa |
21a6b6 |
m_image = image;
|
|
shun_iwasawa |
21a6b6 |
update();
|
|
shun_iwasawa |
21a6b6 |
}
|
|
shun-iwasawa |
f28b21 |
|
|
shun_iwasawa |
21a6b6 |
void setShowOnionSkin(bool on) { m_showOnionSkin = on; }
|
|
shun_iwasawa |
21a6b6 |
void setOnionOpacity(int value) { m_onionOpacity = value; }
|
|
shun-iwasawa |
f28b21 |
void setPreviousImage(QImage prevImage) { m_previousImage = prevImage; }
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
7b62b4 |
void showCountDownTime(int time) {
|
|
shun_iwasawa |
7b62b4 |
m_countDownTime = time;
|
|
shun_iwasawa |
7b62b4 |
repaint();
|
|
shun_iwasawa |
7b62b4 |
}
|
|
shun_iwasawa |
7b62b4 |
|
|
shun-iwasawa |
e12407 |
void setSubCameraRect(QRect rect);
|
|
shun-iwasawa |
f28b21 |
QRect subCameraRect() { return m_subCameraRect; }
|
|
shun_iwasawa |
339a9c |
|
|
shun-iwasawa |
78dff8 |
void computeTransform(QSize imgSize);
|
|
shun-iwasawa |
78dff8 |
|
|
shun_iwasawa |
21a6b6 |
protected:
|
|
shun-iwasawa |
f28b21 |
void paintEvent(QPaintEvent* event) override;
|
|
shun-iwasawa |
f28b21 |
void resizeEvent(QResizeEvent* event) override;
|
|
shun-iwasawa |
f28b21 |
|
|
shun-iwasawa |
f28b21 |
void mouseMoveEvent(QMouseEvent* event) override;
|
|
shun-iwasawa |
f28b21 |
void mousePressEvent(QMouseEvent* event) override;
|
|
shun-iwasawa |
f28b21 |
void mouseReleaseEvent(QMouseEvent* event) override;
|
|
shun-iwasawa |
f28b21 |
|
|
shun_iwasawa |
21a6b6 |
protected slots:
|
|
shun_iwasawa |
21a6b6 |
void onUpsideDownChecked(bool on) { m_upsideDown = on; }
|
|
shun-iwasawa |
f28b21 |
|
|
shun-iwasawa |
f28b21 |
signals:
|
|
shun-iwasawa |
f28b21 |
void startCamera();
|
|
shun-iwasawa |
f28b21 |
void stopCamera();
|
|
shun-iwasawa |
e12407 |
void subCameraChanged(bool isDragging);
|
|
shun_iwasawa |
21a6b6 |
};
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
//=============================================================================
|
|
shun_iwasawa |
84461e |
// FrameNumberLineEdit
|
|
shun_iwasawa |
84461e |
// a special Line Edit which accepts imputting alphabets if the preference
|
|
shun_iwasawa |
84461e |
// option
|
|
shun_iwasawa |
84461e |
// "Show ABC Appendix to the Frame Number in Xsheet Cell" is active.
|
|
shun_iwasawa |
84461e |
//-----------------------------------------------------------------------------
|
|
shun_iwasawa |
84461e |
|
|
shun-iwasawa |
ef0f8b |
class FrameNumberLineEdit : public DVGui::LineEdit,
|
|
shun-iwasawa |
ef0f8b |
public TProjectManager::Listener {
|
|
shun_iwasawa |
84461e |
Q_OBJECT
|
|
shun_iwasawa |
84461e |
/* having two validators and switch them according to the preferences*/
|
|
shun-iwasawa |
70632f |
QRegExpValidator *m_regexpValidator, *m_regexpValidator_alt;
|
|
shun_iwasawa |
84461e |
|
|
shun_iwasawa |
84461e |
void updateValidator();
|
|
shun-iwasawa |
7bfeb3 |
void updateSize();
|
|
shun-iwasawa |
ba4abf |
QString m_textOnFocusIn;
|
|
shun_iwasawa |
84461e |
|
|
shun_iwasawa |
84461e |
public:
|
|
shun-iwasawa |
70632f |
FrameNumberLineEdit(QWidget* parent = 0, TFrameId fId = TFrameId(1),
|
|
shun-iwasawa |
70632f |
bool acceptLetter = true);
|
|
shun_iwasawa |
84461e |
~FrameNumberLineEdit() {}
|
|
shun_iwasawa |
84461e |
|
|
shun_iwasawa |
84461e |
/*! Set text in field to \b value. */
|
|
shun-iwasawa |
70632f |
void setValue(TFrameId fId);
|
|
shun_iwasawa |
84461e |
/*! Return an integer with text field value. */
|
|
shun-iwasawa |
70632f |
TFrameId getValue();
|
|
shun_iwasawa |
84461e |
|
|
shun-iwasawa |
ef0f8b |
// TProjectManager::Listener
|
|
shun-iwasawa |
ef0f8b |
void onProjectSwitched() override;
|
|
shun-iwasawa |
ef0f8b |
void onProjectChanged() override;
|
|
shun-iwasawa |
ef0f8b |
|
|
shun_iwasawa |
84461e |
protected:
|
|
shun_iwasawa |
84461e |
/*! If focus is lost and current text value is out of range emit signal
|
|
shun_iwasawa |
84461e |
\b editingFinished.*/
|
|
shun-iwasawa |
ba4abf |
void focusInEvent(QFocusEvent*) override;
|
|
shun_iwasawa |
84461e |
void focusOutEvent(QFocusEvent*) override;
|
|
shun_iwasawa |
84461e |
void showEvent(QShowEvent* event) override { updateValidator(); }
|
|
shun_iwasawa |
84461e |
};
|
|
shun_iwasawa |
84461e |
|
|
shun_iwasawa |
84461e |
//=============================================================================
|
|
shun_iwasawa |
339a9c |
|
|
shun_iwasawa |
339a9c |
class LevelNameLineEdit : public QLineEdit {
|
|
shun_iwasawa |
339a9c |
Q_OBJECT
|
|
shun_iwasawa |
339a9c |
QString m_textOnFocusIn;
|
|
shun_iwasawa |
339a9c |
|
|
shun_iwasawa |
339a9c |
public:
|
|
shun_iwasawa |
339a9c |
LevelNameLineEdit(QWidget* parent = 0);
|
|
shun_iwasawa |
339a9c |
|
|
shun_iwasawa |
339a9c |
protected:
|
|
shun_iwasawa |
339a9c |
void focusInEvent(QFocusEvent* e);
|
|
shun_iwasawa |
339a9c |
|
|
shun_iwasawa |
339a9c |
protected slots:
|
|
shun_iwasawa |
339a9c |
void onEditingFinished();
|
|
shun_iwasawa |
339a9c |
|
|
shun_iwasawa |
339a9c |
signals:
|
|
shun_iwasawa |
339a9c |
void levelNameEdited();
|
|
shun_iwasawa |
339a9c |
};
|
|
shun_iwasawa |
339a9c |
|
|
shun_iwasawa |
339a9c |
//=============================================================================
|
|
shun_iwasawa |
60d966 |
// FlexibleNameCreator
|
|
shun_iwasawa |
60d966 |
// Inherits NameCreator, added function for obtaining the previous name and
|
|
shun_iwasawa |
60d966 |
// setting the current name.
|
|
shun_iwasawa |
60d966 |
|
|
shun_iwasawa |
60d966 |
class FlexibleNameCreator final : public NameCreator {
|
|
shun_iwasawa |
60d966 |
public:
|
|
shun_iwasawa |
60d966 |
FlexibleNameCreator() {}
|
|
shun_iwasawa |
60d966 |
std::wstring getPrevious();
|
|
shun_iwasawa |
60d966 |
bool setCurrent(std::wstring name);
|
|
shun_iwasawa |
60d966 |
};
|
|
shun_iwasawa |
60d966 |
|
|
shun_iwasawa |
60d966 |
//=============================================================================
|
|
shun_iwasawa |
e56ea8 |
// PencilTestSaveInFolderPopup
|
|
shun_iwasawa |
e56ea8 |
//-----------------------------------------------------------------------------
|
|
shun_iwasawa |
e56ea8 |
|
|
shun_iwasawa |
e56ea8 |
class PencilTestSaveInFolderPopup : public DVGui::Dialog {
|
|
shun_iwasawa |
e56ea8 |
Q_OBJECT
|
|
shun_iwasawa |
e56ea8 |
|
|
shun_iwasawa |
e56ea8 |
DVGui::FileField* m_parentFolderField;
|
|
shun_iwasawa |
e56ea8 |
QLineEdit *m_projectField, *m_episodeField, *m_sequenceField, *m_sceneField,
|
|
shun_iwasawa |
e56ea8 |
*m_subFolderNameField;
|
|
shun_iwasawa |
e56ea8 |
|
|
shun-iwasawa |
3f818e |
QCheckBox *m_subFolderCB, *m_autoSubNameCB, *m_createSceneInFolderCB;
|
|
shun_iwasawa |
e56ea8 |
QComboBox* m_subNameFormatCombo;
|
|
shun_iwasawa |
e56ea8 |
|
|
shun-iwasawa |
3f818e |
void createSceneInFolder();
|
|
shun-iwasawa |
3f818e |
|
|
shun_iwasawa |
e56ea8 |
public:
|
|
shun_iwasawa |
e56ea8 |
PencilTestSaveInFolderPopup(QWidget* parent = 0);
|
|
shun_iwasawa |
e56ea8 |
QString getPath();
|
|
shun_iwasawa |
135173 |
QString getParentPath();
|
|
shun-iwasawa |
3f818e |
void updateParentFolder();
|
|
shun-iwasawa |
3f818e |
|
|
shun-iwasawa |
3f818e |
protected:
|
|
shun-iwasawa |
3f818e |
void showEvent(QShowEvent* event);
|
|
shun_iwasawa |
e56ea8 |
|
|
shun_iwasawa |
e56ea8 |
protected slots:
|
|
shun_iwasawa |
e56ea8 |
void updateSubFolderName();
|
|
shun_iwasawa |
e56ea8 |
void onAutoSubNameCBClicked(bool);
|
|
shun_iwasawa |
e56ea8 |
void onShowPopupOnLaunchCBClicked(bool);
|
|
shun-iwasawa |
3f818e |
void onCreateSceneInFolderCBClicked(bool);
|
|
shun_iwasawa |
135173 |
void onSetAsDefaultBtnPressed();
|
|
shun_iwasawa |
e56ea8 |
void onOkPressed();
|
|
shun_iwasawa |
e56ea8 |
};
|
|
shun_iwasawa |
e56ea8 |
|
|
shun_iwasawa |
e56ea8 |
//=============================================================================
|
|
shun-iwasawa |
e12407 |
// SubCameraButton
|
|
shun-iwasawa |
e12407 |
// button with context menu to open preset
|
|
shun-iwasawa |
e12407 |
//-----------------------------------------------------------------------------
|
|
shun-iwasawa |
e12407 |
|
|
shun-iwasawa |
e12407 |
class SubCameraButton : public QPushButton {
|
|
shun-iwasawa |
e12407 |
Q_OBJECT
|
|
shun-iwasawa |
e12407 |
std::unique_ptr<qsettings> m_settings;</qsettings>
|
|
shun-iwasawa |
e12407 |
|
|
shun-iwasawa |
e12407 |
QSize m_curResolution;
|
|
shun-iwasawa |
e12407 |
QRect m_curSubCamera;
|
|
shun-iwasawa |
32ce3e |
double m_currentDpi;
|
|
shun-iwasawa |
e12407 |
|
|
shun-iwasawa |
e12407 |
public:
|
|
shun-iwasawa |
e12407 |
SubCameraButton(const QString& text, QWidget* parent = 0);
|
|
shun-iwasawa |
e12407 |
void setCurResolution(const QSize& size) { m_curResolution = size; }
|
|
shun-iwasawa |
e12407 |
void setCurSubCamera(const QRect& rect) { m_curSubCamera = rect; }
|
|
shun-iwasawa |
32ce3e |
void setCurDpi(const double& dpi) { m_currentDpi = dpi; }
|
|
shun-iwasawa |
e12407 |
|
|
shun-iwasawa |
e12407 |
protected:
|
|
shun-iwasawa |
e12407 |
void contextMenuEvent(QContextMenuEvent* event) override;
|
|
shun-iwasawa |
e12407 |
protected slots:
|
|
shun-iwasawa |
e12407 |
void onSubCameraAct();
|
|
shun-iwasawa |
e12407 |
void onSaveSubCamera();
|
|
shun-iwasawa |
e12407 |
void onDeletePreset();
|
|
shun-iwasawa |
e12407 |
signals:
|
|
shun-iwasawa |
32ce3e |
void subCameraPresetSelected(const QRect&, const double dpi);
|
|
shun-iwasawa |
e12407 |
};
|
|
shun-iwasawa |
e12407 |
|
|
shun-iwasawa |
e12407 |
//=============================================================================
|
|
shun_iwasawa |
21a6b6 |
// PencilTestPopup
|
|
shun_iwasawa |
21a6b6 |
//-----------------------------------------------------------------------------
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
class PencilTestPopup : public DVGui::Dialog {
|
|
shun_iwasawa |
21a6b6 |
Q_OBJECT
|
|
shun_iwasawa |
21a6b6 |
|
|
shun-iwasawa |
78dff8 |
QTimer* m_timer;
|
|
shun-iwasawa |
78dff8 |
cv::VideoCapture m_cvWebcam;
|
|
shun-iwasawa |
78dff8 |
QSize m_resolution;
|
|
shun-iwasawa |
78dff8 |
|
|
shun-iwasawa |
78dff8 |
//--------
|
|
shun-iwasawa |
78dff8 |
|
|
shun_iwasawa |
21a6b6 |
QCamera* m_currentCamera;
|
|
shun_iwasawa |
21a6b6 |
QString m_deviceName;
|
|
shun-iwasawa |
f28b21 |
MyVideoWidget* m_videoWidget;
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
QComboBox *m_cameraListCombo, *m_resolutionCombo, *m_fileTypeCombo,
|
|
shun_iwasawa |
21a6b6 |
*m_colorTypeCombo;
|
|
shun_iwasawa |
339a9c |
LevelNameLineEdit* m_levelNameEdit;
|
|
shun-iwasawa |
d9416c |
QCheckBox *m_upsideDownCB, *m_saveOnCaptureCB;
|
|
shun-iwasawa |
d9416c |
QGroupBox *m_onionSkinGBox, *m_timerGBox;
|
|
shun_iwasawa |
7b62b4 |
QPushButton *m_fileFormatOptionButton, *m_captureWhiteBGButton,
|
|
Jeremy Bullock |
83d3e3 |
*m_captureButton, *m_loadImageButton;
|
|
shun_iwasawa |
21a6b6 |
DVGui::FileField* m_saveInFileFld;
|
|
shun_iwasawa |
84461e |
FrameNumberLineEdit* m_frameNumberEdit;
|
|
shun_iwasawa |
6c81f0 |
DVGui::IntField *m_bgReductionFld, *m_onionOpacityFld, *m_timerIntervalFld;
|
|
shun_iwasawa |
7b62b4 |
|
|
shun_iwasawa |
7b62b4 |
QTimer *m_captureTimer, *m_countdownTimer;
|
|
shun_iwasawa |
21a6b6 |
|
|
shun-iwasawa |
78dff8 |
cv::Mat m_whiteBGImg;
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
b7d07a |
// used only for Windows
|
|
shun_iwasawa |
b7d07a |
QPushButton* m_captureFilterSettingsBtn;
|
|
shun_iwasawa |
b7d07a |
|
|
shun_iwasawa |
e56ea8 |
PencilTestSaveInFolderPopup* m_saveInFolderPopup;
|
|
shun_iwasawa |
e56ea8 |
|
|
shun_iwasawa |
6c81f0 |
CameraCaptureLevelControl* m_camCapLevelControl;
|
|
shun_iwasawa |
6c81f0 |
|
|
shun_iwasawa |
1f6605 |
QLabel* m_frameInfoLabel;
|
|
shun_iwasawa |
1f6605 |
|
|
shun_iwasawa |
60d966 |
QToolButton* m_previousLevelButton;
|
|
shun_iwasawa |
60d966 |
|
|
shun-iwasawa |
e12407 |
SubCameraButton* m_subcameraButton;
|
|
shun-iwasawa |
f28b21 |
DVGui::IntLineEdit *m_subWidthFld, *m_subHeightFld;
|
|
shun-iwasawa |
e12407 |
DVGui::IntLineEdit *m_subXPosFld, *m_subYPosFld;
|
|
shun-iwasawa |
f28b21 |
QSize m_allowedCameraSize;
|
|
shun-iwasawa |
f28b21 |
|
|
shun_iwasawa |
21a6b6 |
bool m_captureWhiteBGCue;
|
|
shun_iwasawa |
21a6b6 |
bool m_captureCue;
|
|
shun-iwasawa |
58faa2 |
bool m_alwaysOverwrite = false;
|
|
shun-iwasawa |
78dff8 |
bool m_useMjpg;
|
|
shun-iwasawa |
78dff8 |
#ifdef _WIN32
|
|
shun-iwasawa |
78dff8 |
bool m_useDirectShow;
|
|
shun-iwasawa |
78dff8 |
#endif
|
|
shun_iwasawa |
21a6b6 |
|
|
shun-iwasawa |
d9416c |
// calibration feature
|
|
shun-iwasawa |
d9416c |
struct Calibration {
|
|
shun-iwasawa |
d9416c |
// Parameters
|
|
shun-iwasawa |
d9416c |
bool captureCue = false;
|
|
shun-iwasawa |
d9416c |
cv::Size boardSize = {10, 7};
|
|
shun-iwasawa |
d9416c |
int refCaptured = 0;
|
|
shun-iwasawa |
d9416c |
std::vector<std::vector<cv::point3f>> obj_points;</std::vector<cv::point3f>
|
|
shun-iwasawa |
d9416c |
std::vector<std::vector<cv::point2f>> image_points;</std::vector<cv::point2f>
|
|
shun-iwasawa |
d9416c |
cv::Mat mapX, mapY;
|
|
shun-iwasawa |
d9416c |
bool isValid = false;
|
|
shun-iwasawa |
d9416c |
// UIs
|
|
shun-iwasawa |
d9416c |
QPushButton *capBtn, *newBtn, *loadBtn, *cancelBtn, *exportBtn;
|
|
shun-iwasawa |
d9416c |
QLabel* label;
|
|
shun-iwasawa |
d9416c |
QGroupBox* groupBox;
|
|
shun-iwasawa |
d9416c |
} m_calibration;
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
0bd4d6 |
// dpi settings
|
|
shun-iwasawa |
0bd4d6 |
bool m_doAutoDpi;
|
|
shun-iwasawa |
0bd4d6 |
double m_customDpi;
|
|
shun-iwasawa |
0bd4d6 |
QWidget* m_dpiMenuWidget;
|
|
shun-iwasawa |
0bd4d6 |
QPushButton* m_dpiBtn;
|
|
shun-iwasawa |
32ce3e |
QRadioButton *m_autoDpiRadioBtn, *m_customDpiRadioBtn;
|
|
shun-iwasawa |
0bd4d6 |
QLineEdit* m_customDpiField;
|
|
shun-iwasawa |
0bd4d6 |
|
|
shun-iwasawa |
d9416c |
void captureCalibrationRefImage(cv::Mat& procImage);
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
78dff8 |
void processImage(cv::Mat& procImage);
|
|
shun-iwasawa |
f28b21 |
bool importImage(QImage image);
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
60d966 |
void setToNextNewLevel();
|
|
shun_iwasawa |
60d966 |
void updateLevelNameAndFrame(std::wstring levelName);
|
|
shun_iwasawa |
60d966 |
|
|
shun-iwasawa |
78dff8 |
void getWebcamImage();
|
|
shun-iwasawa |
78dff8 |
|
|
shun-iwasawa |
78dff8 |
QMenu* createOptionsMenu();
|
|
shun-iwasawa |
78dff8 |
|
|
shun-iwasawa |
78dff8 |
int translateIndex(int camIndex);
|
|
shun-iwasawa |
78dff8 |
|
|
shun-iwasawa |
d9416c |
QString getCurrentCalibFilePath();
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
0bd4d6 |
QWidget* createDpiMenuWidget();
|
|
shun-iwasawa |
0bd4d6 |
|
|
shun_iwasawa |
21a6b6 |
public:
|
|
shun_iwasawa |
21a6b6 |
PencilTestPopup();
|
|
shun_iwasawa |
21a6b6 |
~PencilTestPopup();
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
21a6b6 |
protected:
|
|
artisteacher |
fd1c1e |
void showEvent(QShowEvent* event) override;
|
|
artisteacher |
fd1c1e |
void hideEvent(QHideEvent* event) override;
|
|
artisteacher |
fd1c1e |
void keyPressEvent(QKeyEvent* event) override;
|
|
shun_iwasawa |
7b62b4 |
|
|
shun-iwasawa |
ba4abf |
bool event(QEvent* e) override;
|
|
shun-iwasawa |
ba4abf |
|
|
shun_iwasawa |
21a6b6 |
protected slots:
|
|
shun_iwasawa |
21a6b6 |
void refreshCameraList();
|
|
shun_iwasawa |
21a6b6 |
void onCameraListComboActivated(int index);
|
|
shun-iwasawa |
78dff8 |
void onResolutionComboActivated();
|
|
shun_iwasawa |
21a6b6 |
void onFileFormatOptionButtonPressed();
|
|
shun_iwasawa |
339a9c |
void onLevelNameEdited();
|
|
shun_iwasawa |
21a6b6 |
void onNextName();
|
|
shun_iwasawa |
60d966 |
void onPreviousName();
|
|
shun_iwasawa |
21a6b6 |
void onColorTypeComboChanged(int index);
|
|
shun-iwasawa |
78dff8 |
void onFrameCaptured(cv::Mat& image);
|
|
shun_iwasawa |
21a6b6 |
void onCaptureWhiteBGButtonPressed();
|
|
shun_iwasawa |
21a6b6 |
void onOnionCBToggled(bool);
|
|
Jeremy Bullock |
83d3e3 |
void onLoadImageButtonPressed();
|
|
shun_iwasawa |
21a6b6 |
void onOnionOpacityFldEdited();
|
|
shun_iwasawa |
7b62b4 |
void onTimerCBToggled(bool);
|
|
shun_iwasawa |
7b62b4 |
void onCaptureTimerTimeout();
|
|
shun_iwasawa |
7b62b4 |
void onCountDown();
|
|
shun_iwasawa |
21a6b6 |
|
|
shun_iwasawa |
7b62b4 |
void onCaptureButtonClicked(bool);
|
|
shun_iwasawa |
b7d07a |
void onCaptureFilterSettingsBtnPressed();
|
|
shun_iwasawa |
e56ea8 |
|
|
shun_iwasawa |
1f6605 |
void refreshFrameInfo();
|
|
shun_iwasawa |
1f6605 |
|
|
shun-iwasawa |
3f818e |
void onSaveInPathEdited();
|
|
shun-iwasawa |
3f818e |
void onSceneSwitched();
|
|
shun-iwasawa |
3f818e |
|
|
shun-iwasawa |
f28b21 |
void onSubCameraToggled(bool);
|
|
shun-iwasawa |
e12407 |
void onSubCameraChanged(bool isDragging);
|
|
shun-iwasawa |
e12407 |
void onSubCameraRectEdited();
|
|
shun-iwasawa |
32ce3e |
void onSubCameraPresetSelected(const QRect&, const double);
|
|
shun-iwasawa |
f28b21 |
|
|
shun-iwasawa |
78dff8 |
void onTimeout();
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
d9416c |
void onCalibCapBtnClicked();
|
|
shun-iwasawa |
d9416c |
void onCalibNewBtnClicked();
|
|
shun-iwasawa |
d9416c |
void resetCalibSettingsFromFile();
|
|
shun-iwasawa |
d9416c |
void onCalibLoadBtnClicked();
|
|
shun-iwasawa |
d9416c |
void onCalibExportBtnClicked();
|
|
shun-iwasawa |
60774e |
void onCalibReadme();
|
|
shun-iwasawa |
0bd4d6 |
void onPreferenceChanged(const QString&);
|
|
shun-iwasawa |
60774e |
|
|
shun_iwasawa |
e56ea8 |
public slots:
|
|
shun_iwasawa |
e56ea8 |
void openSaveInFolderPopup();
|
|
shun_iwasawa |
21a6b6 |
};
|
|
shun_iwasawa |
21a6b6 |
|
|
shun-iwasawa |
d9416c |
//=============================================================================
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
d9416c |
class ExportCalibrationFilePopup final : public GenericSaveFilePopup {
|
|
shun-iwasawa |
d9416c |
Q_OBJECT
|
|
shun-iwasawa |
d9416c |
public:
|
|
shun-iwasawa |
d9416c |
ExportCalibrationFilePopup(QWidget* parent);
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
d9416c |
protected:
|
|
shun-iwasawa |
d9416c |
void showEvent(QShowEvent*) override;
|
|
shun-iwasawa |
d9416c |
};
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
d9416c |
//=============================================================================
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
d9416c |
class LoadCalibrationFilePopup final : public GenericLoadFilePopup {
|
|
shun-iwasawa |
d9416c |
Q_OBJECT
|
|
shun-iwasawa |
d9416c |
public:
|
|
shun-iwasawa |
d9416c |
LoadCalibrationFilePopup(QWidget* parent);
|
|
shun-iwasawa |
d9416c |
|
|
shun-iwasawa |
d9416c |
protected:
|
|
shun-iwasawa |
d9416c |
void showEvent(QShowEvent*) override;
|
|
shun-iwasawa |
d9416c |
};
|
|
shun-iwasawa |
d9416c |
|
|
artisteacher |
fd1c1e |
#endif
|