summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/engine/abstract3dcontroller_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavis3d/engine/abstract3dcontroller_p.h')
-rw-r--r--src/datavis3d/engine/abstract3dcontroller_p.h39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/datavis3d/engine/abstract3dcontroller_p.h b/src/datavis3d/engine/abstract3dcontroller_p.h
index 83ea8379..ccc0cc40 100644
--- a/src/datavis3d/engine/abstract3dcontroller_p.h
+++ b/src/datavis3d/engine/abstract3dcontroller_p.h
@@ -37,6 +37,8 @@
#include "drawer_p.h"
#include "qabstract3dinputhandler.h"
#include "qabstractdataproxy.h"
+#include "q3dscene.h"
+#include "q3dbox.h"
class QFont;
@@ -153,10 +155,12 @@ private:
bool m_isGridEnabled;
QString m_objFile;
+ Q3DScene *m_scene;
+
protected:
- QAbstract3DInputHandler *m_inputHandler;
+ QList<QAbstract3DInputHandler *> m_inputHandlers; // List of all added input handlers
+ QAbstract3DInputHandler *m_activeInputHandler;
CameraHelper *m_cameraHelper;
- int m_zoomLevel;
// Active axes
Q3DAbstractAxis *m_axisX;
Q3DAbstractAxis *m_axisY;
@@ -204,6 +208,13 @@ public:
virtual int x();
virtual void setY(const int y);
virtual int y();
+
+ virtual QRect mainViewport() const;
+ virtual void setMainViewport(const QRect &mainViewport);
+
+ virtual QRect sliceViewport() const;
+ virtual void setSliceViewport(const QRect &sliceViewport);
+
virtual void setAxisX(Q3DAbstractAxis *axis);
virtual Q3DAbstractAxis *axisX();
virtual void setAxisY(Q3DAbstractAxis *axis);
@@ -214,6 +225,11 @@ public:
virtual void releaseAxis(Q3DAbstractAxis *axis);
virtual QList<Q3DAbstractAxis *> axes() const; // Omits default axes
+ virtual void addInputHandler(QAbstract3DInputHandler *inputHandler);
+ virtual void releaseInputHandler(QAbstract3DInputHandler *inputHandler);
+ virtual void setActiveInputHandler(QAbstract3DInputHandler *inputHandler);
+ virtual QAbstract3DInputHandler *activeInputHandler();
+
virtual QAbstractDataProxy *activeDataProxy() const;
virtual void addDataProxy(QAbstractDataProxy *proxy);
virtual void releaseDataProxy(QAbstractDataProxy *proxy);
@@ -265,10 +281,28 @@ public:
virtual void setGridEnabled(bool enable);
virtual bool gridEnabled();
+ // Query input state and position
+ QDataVis::InputState inputState();
+ QPoint inputPosition();
+
+ // Enable or disable slicing mode
+ bool isSlicingActive();
+ void setSlicingActive(bool isSlicing);
+
+
// override bar type with own mesh
virtual void setMeshFileName(const QString &fileName);
virtual QString meshFileName();
+ Q3DScene *scene();
+
+ virtual void mouseDoubleClickEvent(QMouseEvent *event);
+ virtual void touchEvent(QTouchEvent *event);
+ virtual void mousePressEvent(QMouseEvent *event, const QPoint &mousePos);
+ virtual void mouseReleaseEvent(QMouseEvent *event, const QPoint &mousePos);
+ virtual void mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos);
+ virtual void wheelEvent(QWheelEvent *event);
+
virtual void handleAxisTitleChangedBySender(QObject *sender);
virtual void handleAxisLabelsChangedBySender(QObject *sender);
virtual void handleAxisRangeChangedBySender(QObject *sender);
@@ -289,7 +323,6 @@ public slots:
signals:
void shadowQualityChanged(QDataVis::ShadowQuality quality);
-
void needRender();
protected: