CamtransApp.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef __CAMTRANSAPP_H__
00008 #define __CAMTRANSAPP_H__
00009
00010 #include <QMainWindow>
00011 #include <QColor>
00012 #include <QStack>
00013
00014 class CamtransCanvas;
00015 class CS123OpenGLCanvas;
00016 class CS123OpenGLCanvasContainer;
00017 class QSlider;
00018 class QLabel;
00019 class QDockWidget;
00020 class QRadioButton;
00021
00022 class CamtransApp : public QMainWindow {
00023 Q_OBJECT
00024
00025 public:
00026 CamtransApp();
00027 ~CamtransApp();
00028
00029 void addCanvas(CamtransCanvas* canvas);
00030 void addCanvas(CamtransCanvas* canvas, const char* title);
00031
00032 private slots:
00033 void rotateUPressed();
00034 void rotateVPressed();
00035 void rotateNPressed();
00036
00037 void translateXPressed();
00038 void translateYPressed();
00039 void translateZPressed();
00040
00041 void aspectRatioChanged(int value);
00042 void heightAngleChanged(int value);
00043
00044 void translateChanged(int value);
00045 void rotateChanged(int value);
00046
00047 void xAxisPushed2(bool);
00048 void yAxisPushed2(bool);
00049 void zAxisPushed2(bool);
00050 void axonometricPushed2(bool);
00051
00052 void loadMesh();
00053
00054 void reset();
00055
00056 signals:
00057 void rotateU(int degree);
00058 void rotateV(int degree);
00059 void rotateN(int degree);
00060 void translateX(int u);
00061 void translateY(int v);
00062 void translateZ(int n);
00063 void haChanged(int value);
00064 void arChanged(float value);
00065
00066 void xAxisPushed();
00067 void yAxisPushed();
00068 void zAxisPushed();
00069 void axonometricPushed();
00070
00071 void meshChanged(const char*);
00072
00073 protected:
00074 CS123OpenGLCanvas *getActiveCanvas();
00075
00076 private:
00077
00078 enum Dimension { DIM_U, DIM_V, DIM_N, DIM_X, DIM_Y, DIM_Z};
00079
00080 QDockWidget* m_controlPanel;
00081 QSlider* m_rotateSlider;
00082 QSlider* m_translateSlider;
00083
00084 QSlider* m_haSlider;
00085 QSlider* m_arSlider;
00086
00087 QRadioButton *m_uRot, *m_xTrans;
00088
00089 QLabel* m_translateLabel;
00090 QLabel* m_rotateLabel;
00091 QLabel* m_haLabel;
00092 QLabel* m_arLabel;
00093
00094 int m_dRot;
00095 int m_dTrans;
00096
00097 int m_rotU, m_rotV, m_rotN;
00098 int m_transX, m_transY, m_transZ;
00099 int m_ha;
00100 float m_ar;
00101
00102 Dimension rotateDim;
00103 Dimension translateDim;
00104
00105 QStack<CS123OpenGLCanvasContainer *> m_canvases;
00106 int m_noCanvas;
00107 };
00108
00109 #endif
00110