diff options
Diffstat (limited to 'src/system/Qt3DSTypes.h')
-rw-r--r-- | src/system/Qt3DSTypes.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/src/system/Qt3DSTypes.h b/src/system/Qt3DSTypes.h new file mode 100644 index 0000000..65d57da --- /dev/null +++ b/src/system/Qt3DSTypes.h @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 1993-2009 NVIDIA Corporation. +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt 3D Studio. +** +** $QT_BEGIN_LICENSE:GPL$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#pragma once + +#include <QtCore/qglobal.h> + +//============================================================================== +// Namespace +//============================================================================== +namespace Q3DStudio { + +//============================================================================== +// Typedefs +//============================================================================== +typedef bool BOOL; ///< true or false, usually 8 bits +typedef qint8 INT8; ///< A signed 8-bit integer, not a character +typedef quint8 UINT8; ///< An unsigned 8-bit integer 0-255, not a character +typedef qint16 INT16; ///< A signed 16-bit integer +typedef quint16 UINT16; ///< An unsigned 16-bit integer +typedef qint32 INT32; ///< A signed 32-bit integer +typedef quint32 UINT32; ///< An unsigned 32-bit integer +typedef float FLOAT; ///< A 32-bit floating point number +typedef char CHAR; ///< String character, not a number +typedef qint64 INT64; +typedef quint64 UINT64; + +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif + +//============================================================================== +// Max constants and computation +//============================================================================== +INT32 Q3DStudio_maxbits(const INT32 inBitCount, const BOOL inUnsigned); + +#define AKMAX_INT8 static_cast<INT8>(0x7F) +#define AKMAX_UINT8 static_cast<UINT8>(0xFF) +#define AKMAX_INT16 static_cast<INT16>(0x7FFF) +#define AKMAX_UINT16 static_cast<UINT16>(0xFFFF) +#define AKMAX_INT32 0x7FFFFFFFL +#define AKMAX_UINT32 0xFFFFFFFFUL + +#define Q3DStudio_INT64_C(x) x +#define Q3DStudio_UINT64_C(x) x + +typedef FILE TFile; +typedef size_t TFileSize; + +struct VECTOR4 +{ + union { + FLOAT v[4]; + UINT32 u[4]; + }; + + FLOAT &x() { return v[0]; } + FLOAT &y() { return v[1]; } + FLOAT &z() { return v[2]; } + FLOAT &w() { return v[3]; } +}; + +struct MATRIX16 +{ + union { + VECTOR4 v[4]; + FLOAT m[4][4]; + FLOAT f[16]; + }; + + FLOAT &_11() { return f[0]; } + FLOAT &_12() { return f[1]; } + FLOAT &_13() { return f[2]; } + FLOAT &_14() { return f[3]; } + FLOAT &_21() { return f[4]; } + FLOAT &_22() { return f[5]; } + FLOAT &_23() { return f[6]; } + FLOAT &_24() { return f[7]; } + FLOAT &_31() { return f[8]; } + FLOAT &_32() { return f[9]; } + FLOAT &_33() { return f[10]; } + FLOAT &_34() { return f[11]; } + FLOAT &_41() { return f[12]; } + FLOAT &_42() { return f[13]; } + FLOAT &_43() { return f[14]; } + FLOAT &_44() { return f[15]; } +}; + +typedef INT64 TMicroSeconds; ///< Time in microseconds +typedef INT64 TTimeUnit; ///< Time in milliseconds +} // namespace Q3DStudio |