summaryrefslogtreecommitdiffstats
path: root/src/datavis3d/utils/camerahelper_p.h
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-08-16 07:14:35 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-08-16 07:14:35 +0300
commit6c0334496d50aaf4e11dcda7ed642fac565d6145 (patch)
treeaa6e7aeef9b00ba46910c30bd85fedbc53df39a0 /src/datavis3d/utils/camerahelper_p.h
parent3288b23502c195d03e097cb372a22f3a1ac4ba87 (diff)
parent29f6433606cebe3299e9915ae32bae7dfaed2770 (diff)
Merge remote-tracking branch 'origin/develop'
Diffstat (limited to 'src/datavis3d/utils/camerahelper_p.h')
-rw-r--r--src/datavis3d/utils/camerahelper_p.h88
1 files changed, 42 insertions, 46 deletions
diff --git a/src/datavis3d/utils/camerahelper_p.h b/src/datavis3d/utils/camerahelper_p.h
index 21b6ccac..3b8c0c9c 100644
--- a/src/datavis3d/utils/camerahelper_p.h
+++ b/src/datavis3d/utils/camerahelper_p.h
@@ -1,41 +1,18 @@
/****************************************************************************
**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
+** Copyright (C) 2013 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the QtDataVis3D module.
**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
+** a written agreement between you and Digia.
**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Digia gives you certain additional
-** rights. These rights are described in the Digia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-**
-** $QT_END_LICENSE$
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
**
****************************************************************************/
@@ -43,7 +20,7 @@
// W A R N I N G
// -------------
//
-// This file is not part of the Qt API. It exists purely as an
+// This file is not part of the QtDataVis3D API. It exists purely as an
// implementation detail. This header file may change from version to
// version without notice, or even be removed.
//
@@ -52,43 +29,62 @@
#ifndef CAMERAPOSITIONER_P_H
#define CAMERAPOSITIONER_P_H
-#include "qdatavis3dglobal.h"
-#include "qdatavis3namespace.h"
+#include "datavis3dglobal_p.h"
#include "q3dbars.h"
+#include <QObject>
class QMatrix4x4;
class QVector3D;
class QPoint;
class QPointF;
-QTENTERPRISE_DATAVIS3D_BEGIN_NAMESPACE
+QT_DATAVIS3D_BEGIN_NAMESPACE
-class CameraHelper
+class CameraHelper : public QObject
{
- public:
+ Q_OBJECT
+
+private:
+ QVector3D m_position;
+ QVector3D m_target;
+ QVector3D m_up;
+
+ QPoint m_previousMousePos;
+
+ GLfloat m_xRotation;
+ GLfloat m_yRotation;
+ GLfloat m_defaultXRotation;
+ GLfloat m_defaultYRotation;
+
+ GLfloat m_rotationSpeed;
+
+public:
+ explicit CameraHelper(QObject *parent = 0);
+ ~CameraHelper();
+
// How fast camera rotates when mouse is dragged. Default is 100.
- static void setRotationSpeed(int speed);
+ void setRotationSpeed(int speed);
// Set camera rotation in degrees
- static void setCameraRotation(const QPointF &rotation);
+ void setCameraRotation(const QPointF &rotation);
// Get camera rotations
- static QPointF getCameraRotations();
+ QPointF getCameraRotations();
// Set default camera orientation. Position's x and y should be 0.
- static void setDefaultCameraOrientation(const QVector3D &defaultPosition,
+ void setDefaultCameraOrientation(const QVector3D &defaultPosition,
const QVector3D &defaultTarget,
const QVector3D &defaultUp);
// Calculate view matrix based on rotation and zoom
- static QMatrix4x4 calculateViewMatrix(const QPoint &mousePos, int zoom,
+ QMatrix4x4 calculateViewMatrix(const QPoint &mousePos, int zoom,
int screenWidth, int screenHeight,
bool showUnder = false);
// Calcluate light position based on rotation. Call after calling calculateViewMatrix to get
// up-to-date position
- static QVector3D calculateLightPosition(const QVector3D &lightPosition,
+ QVector3D calculateLightPosition(const QVector3D &lightPosition,
GLfloat fixedRotation = 0.0f,
GLfloat distanceModifier = 0.0f);
- static void updateMousePos(const QPoint &mousePos);
- static void setCameraPreset(CameraPreset preset);
+ void updateMousePos(const QPoint &mousePos);
+ void setCameraPreset(QDataVis::CameraPreset preset);
};
-QTENTERPRISE_DATAVIS3D_END_NAMESPACE
+QT_DATAVIS3D_END_NAMESPACE
#endif