diff options
Diffstat (limited to 'src/datavis3d/global')
-rw-r--r-- | src/datavis3d/global/global.pri | 5 | ||||
-rw-r--r-- | src/datavis3d/global/qdatavis3dglobal.h | 90 | ||||
-rw-r--r-- | src/datavis3d/global/qdatavis3namespace.h | 141 |
3 files changed, 236 insertions, 0 deletions
diff --git a/src/datavis3d/global/global.pri b/src/datavis3d/global/global.pri new file mode 100644 index 00000000..56cb9f8f --- /dev/null +++ b/src/datavis3d/global/global.pri @@ -0,0 +1,5 @@ +INCLUDEPATH += $$PWD +VPATH += $$PWD +HEADERS += \ + global/qdatavis3dglobal.h \ + global/qdatavis3namespace.h diff --git a/src/datavis3d/global/qdatavis3dglobal.h b/src/datavis3d/global/qdatavis3dglobal.h new file mode 100644 index 00000000..528180b3 --- /dev/null +++ b/src/datavis3d/global/qdatavis3dglobal.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** 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 QtDataVis3D. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QVIS3DGLOBAL_H +#define QVIS3DGLOBAL_H + +#include <qglobal.h> + +//#define ROTATE_ZOOM_SELECTION + +#define QTCOMMERCIALDATAVIS3D_VERSION_STR "0.0.1" +/* + QTCOMMERCIALDATAVIS3D_VERSION is (major << 16) + (minor << 8) + patch. +*/ +#define QTCOMMERCIALDATAVIS3D_VERSION 0x000001 +/* + can be used like #if (QTCOMMERCIALDATAVIS3D_VERSION >= QTCOMMERCIALDATAVIS3D_VERSION_CHECK(1, 1, 0)) +*/ +#define QTCOMMERCIALDATAVIS3D_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch)) + +#if defined(QTCOMMERCIALDATAVIS3D_LIBRARY) +# define QTCOMMERCIALDATAVIS3D_EXPORT Q_DECL_EXPORT +#else +# define QTCOMMERCIALDATAVIS3D_EXPORT Q_DECL_IMPORT +#endif + +#if defined(BUILD_PRIVATE_UNIT_TESTS) && defined(QTCOMMERCIALDATAVIS3D_LIBRARY) +# define QTCOMMERCIALDATAVIS3D_AUTOTEST_EXPORT Q_DECL_EXPORT +#elif defined(BUILD_PRIVATE_UNIT_TESTS) && !defined(QTCOMMERCIALDATAVIS3D_LIBRARY) +# define QTCOMMERCIALDATAVIS3D_AUTOTEST_EXPORT Q_DECL_IMPORT +#else +# define QTCOMMERCIALDATAVIS3D_AUTOTEST_EXPORT +#endif + +#ifdef QTCOMMERCIALDATAVIS3D_STATICLIB +# undef QTCOMMERCIALDATAVIS3D_EXPORT +# undef QTCOMMERCIALDATAVIS3D_AUTOTEST_EXPORT +# define QTCOMMERCIALDATAVIS3D_EXPORT +# define QTCOMMERCIALDATAVIS3D_AUTOTEST_EXPORT +#endif + +#define QTCOMMERCIALDATAVIS3D_NAMESPACE QtDataVis3D + +#ifdef QTCOMMERCIALDATAVIS3D_NAMESPACE +# define QTCOMMERCIALDATAVIS3D_BEGIN_NAMESPACE namespace QTCOMMERCIALDATAVIS3D_NAMESPACE { +# define QTCOMMERCIALDATAVIS3D_END_NAMESPACE } +# define QTCOMMERCIALDATAVIS3D_USE_NAMESPACE using namespace QTCOMMERCIALDATAVIS3D_NAMESPACE; +#else +# define QTCOMMERCIALDATAVIS3D_BEGIN_NAMESPACE +# define QTCOMMERCIALDATAVIS3D_END_NAMESPACE +# define QTCOMMERCIALDATAVIS3D_USE_NAMESPACE +#endif + +#if defined(DEVELOPMENT_BUILD) && !defined(QT_NO_DEBUG) +#include <stdarg.h> +#include <QDebug> + +#define CHART_DEBUG chartDebug(3,__LINE__,__FILE__,__FUNCTION__) + +static inline QDebug chartDebug(int numargs,...) +{ + va_list valist; + va_start(valist, numargs); + //for( int i = 0 ; i < numargs; i++ ) + int line = va_arg(valist, int); + char *file = va_arg(valist, char *); + char *function = va_arg(valist, char *); + va_end(valist); + return qDebug() << QString().append(function).append("(").append(file).append(":%1)").arg(line); +} +#endif + +#endif // QVIS3DGLOBAL_H diff --git a/src/datavis3d/global/qdatavis3namespace.h b/src/datavis3d/global/qdatavis3namespace.h new file mode 100644 index 00000000..b75bce29 --- /dev/null +++ b/src/datavis3d/global/qdatavis3namespace.h @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of 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 +** 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. +** +** 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$ +** +****************************************************************************/ + +#ifndef QVIS3DNAMESPACE_H +#define QVIS3DNAMESPACE_H + +#include "qdatavis3dglobal.h" +#include <QOpenGLFunctions> +#include <QVector3D> + +QTCOMMERCIALDATAVIS3D_BEGIN_NAMESPACE + +// Constants used in several files +const GLfloat m_pi = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679f; +// Compensation for z position; move all objects to positive z, as shader can't handle negative values correctly +const GLfloat zComp = 10.0f; +// Default light position. To have shadows working correctly, light should be as far as camera, or a bit further +// y position is added to the minimum height (or can be thought to be that much above or below the camera) +const QVector3D defaultLightPos = QVector3D(0.0f, 0.5f, zComp); +const GLfloat defaultRatio = 1.0f / 1.6f; // default aspect ratio 16:10 + +// Enums used in several files +enum BarStyle { + Bars = 0, + Pyramids, + Cones, + Cylinders, + Spheres +}; + +enum CameraPreset { + PresetFrontLow = 0, + PresetFront, + PresetFrontHigh, + PresetLeftLow, + PresetLeft, + PresetLeftHigh, + PresetRightLow, + PresetRight, + PresetRightHigh, + PresetBehindLow, + PresetBehind, + PresetBehindHigh, + PresetIsometricLeft, + PresetIsometricLeftHigh, + PresetIsometricRight, + PresetIsometricRightHigh, + PresetDirectlyAbove, + PresetDirectlyAboveCW45, + PresetDirectlyAboveCCW45 +}; + +enum ColorTheme { + ThemeSystem = 0, + ThemeBlueCerulean, + ThemeBlueIcy, + ThemeBlueNcs, + ThemeBrownSand, + ThemeDark, + ThemeHighContrast, + ThemeLight +}; + +enum LabelTransparency { + TransparencyNone = 0, // Full solid, using colors from theme + TransparencyFromTheme, // Use colors and transparencies from theme + TransparencyNoBackground // Draw just text on transparent background +}; + +// TODO: Will this be used in other vis types than q3dbars? +enum SelectionMode { + ModeNone = 0, + ModeBar, + ModeBarAndRow, + ModeBarAndColumn, + ModeBarRowAndColumn, + ModeZoomRow, + ModeZoomColumn +}; + +// TODO: Should this be moved to Q3DBarsPrivate? Not for use via API directly? +enum LabelPosition { + LabelBelow = 0, + LabelLow, + LabelMid, + LabelHigh, + LabelOver, + LabelBottom, // Absolute positions from here onward, used for axes (QDataItem is ignored) + LabelTop, + LabelLeft, + LabelRight +}; + +enum ShadowQuality { + ShadowNone = 0, + ShadowLow = 1, + ShadowMedium = 3, + ShadowHigh = 5 +}; + +QTCOMMERCIALDATAVIS3D_END_NAMESPACE + +#endif |