diff options
Diffstat (limited to 'src/threed/geometry/qlogicalvertex.h')
-rw-r--r-- | src/threed/geometry/qlogicalvertex.h | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/src/threed/geometry/qlogicalvertex.h b/src/threed/geometry/qlogicalvertex.h deleted file mode 100644 index 3a5d9b6b..00000000 --- a/src/threed/geometry/qlogicalvertex.h +++ /dev/null @@ -1,328 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtQuick3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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, Nokia gives you certain additional -** rights. These rights are described in the Nokia 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. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QLOGICALVERTEX_H -#define QLOGICALVERTEX_H - -#include "qgeometrydata.h" -#include "qcustomdataarray.h" - -QT_BEGIN_NAMESPACE - -// uncomment this to perform heavy checking of QLogicalVertex -// #define QT3D_DEBUG_QLOGICALVERTEX 1 - -class QLogicalVertex -{ -public: - inline QLogicalVertex(); - inline QLogicalVertex(QGeometryData data, int index); - inline QLogicalVertex(const QVector3D &a); - inline QLogicalVertex(const QVector3D &a, const QVector3D &n); - inline QLogicalVertex(const QVector3D &a, const QVector3D &n, const QVector2D &t); - inline QLogicalVertex(const QVector3D &a, QColor4ub color); - ~QLogicalVertex() {} - - inline const QVector3D &vertex() const; - inline void setVertex(const QVector3D &v); - inline QVector3D &vertex(); - - operator QVector3D () { return vertex(); } - - inline QVariant attribute(QGL::VertexAttribute field = QGL::CustomVertex0) const; - inline void setAttribute(float value, QGL::VertexAttribute attr); - inline void setAttribute(const QVector2D &v, QGL::VertexAttribute field = QGL::CustomVertex0); - inline void setAttribute(const QVector3D &v, QGL::VertexAttribute field = QGL::CustomVertex0); - inline float &floatAttribute(QGL::VertexAttribute field = QGL::CustomVertex0); - inline QVector2D &vector2DAttribute(QGL::VertexAttribute field = QGL::CustomVertex0); - inline QVector3D &vector3DAttribute(QGL::VertexAttribute field = QGL::CustomVertex0); - inline float floatAttribute(QGL::VertexAttribute field = QGL::CustomVertex0) const; - inline QVector2D vector2DAttribute(QGL::VertexAttribute field = QGL::CustomVertex0) const; - inline QVector3D vector3DAttribute(QGL::VertexAttribute field = QGL::CustomVertex0) const; - inline QCustomDataArray::ElementType attributeType(QGL::VertexAttribute field = QGL::CustomVertex0); - - inline const QVector3D &normal() const; - inline void setNormal(const QVector3D &n); - inline QVector3D &normal(); - - inline const QColor4ub &color() const; - inline void setColor(const QColor4ub &c); - inline QColor4ub &colorRef(); - - inline const QVector2D &texCoord(QGL::VertexAttribute attr = QGL::TextureCoord0) const; - inline void setTexCoord(const QVector2D &t, QGL::VertexAttribute attr = QGL::TextureCoord0); - inline QVector2D &texCoordRef(QGL::VertexAttribute attr = QGL::TextureCoord0); - - inline bool hasField(QGL::VertexAttribute type) const; - inline quint32 fields() const; - inline int index() const; - inline QGeometryData data() const; - inline bool isNull() const; - - bool operator==(const QLogicalVertex &rhs) const; - -private: - QGeometryData m_data; - int m_index; -}; - -inline QLogicalVertex::QLogicalVertex() - : m_index(-1) -{ -} - -inline QLogicalVertex::QLogicalVertex(QGeometryData data, int index) - : m_data(data) - , m_index(index) -{ - Q_ASSERT(index < data.count()); -#ifdef QT3D_DEBUG_QLOGICALVERTEX - data.check(); -#endif -} - -inline QLogicalVertex::QLogicalVertex(const QVector3D &a) - : m_index(0) -{ - m_data.appendVertex(a); -} - -inline QLogicalVertex::QLogicalVertex(const QVector3D &a, const QVector3D &n) - : m_index(0) -{ - m_data.appendVertex(a); - m_data.appendNormal(n); -} - -inline QLogicalVertex::QLogicalVertex(const QVector3D &a, const QVector3D &n, const QVector2D &t) - : m_index(0) -{ - m_data.appendVertex(a); - m_data.appendNormal(n); - m_data.appendTexCoord(t); -} - -inline QLogicalVertex::QLogicalVertex(const QVector3D &a, QColor4ub color) - : m_index(0) -{ - m_data.appendVertex(a); - m_data.appendColor(color); -} - -inline const QVector3D &QLogicalVertex::vertex() const -{ - return m_data.vertexAt(m_index); -} - -inline void QLogicalVertex::setVertex(const QVector3D &v) -{ - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(QGL::Position)) - m_data.appendVertex(v); - else - m_data.vertex(m_index) = v; -} - -inline QVector3D &QLogicalVertex::vertex() -{ - return m_data.vertex(m_index); -} - -inline QVariant QLogicalVertex::attribute(QGL::VertexAttribute attr) const -{ - return m_data.attributes(attr).at(m_index); -} - -inline void QLogicalVertex::setAttribute(float v, QGL::VertexAttribute attr) -{ - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(attr)) - m_data.appendAttribute(v, attr); - else - m_data.floatAttribute(m_index, attr) = v; -} - -inline void QLogicalVertex::setAttribute(const QVector2D &v, QGL::VertexAttribute attr) -{ - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(attr)) - m_data.appendAttribute(v, attr); - else - m_data.vector2DAttribute(m_index, attr) = v; -} - -inline void QLogicalVertex::setAttribute(const QVector3D &v, QGL::VertexAttribute attr) -{ - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(attr)) - m_data.appendAttribute(v, attr); - else - m_data.vector3DAttribute(m_index, attr) = v; -} - -inline float &QLogicalVertex::floatAttribute(QGL::VertexAttribute field) -{ - return m_data.floatAttribute(m_index, field); -} - -inline QVector2D &QLogicalVertex::vector2DAttribute(QGL::VertexAttribute field) -{ - return m_data.vector2DAttribute(m_index, field); -} - -inline QVector3D &QLogicalVertex::vector3DAttribute(QGL::VertexAttribute field) -{ - - return m_data.vector3DAttribute(m_index, field); -} - -inline float QLogicalVertex::floatAttribute(QGL::VertexAttribute field) const -{ - return m_data.floatAttributeAt(m_index, field); -} - -inline QVector2D QLogicalVertex::vector2DAttribute(QGL::VertexAttribute field) const -{ - return m_data.vector2DAttributeAt(m_index, field); -} - -inline QVector3D QLogicalVertex::vector3DAttribute(QGL::VertexAttribute field) const -{ - return m_data.vector3DAttributeAt(m_index, field); -} - -inline QCustomDataArray::ElementType QLogicalVertex::attributeType(QGL::VertexAttribute field) -{ - return m_data.attributes(field).elementType(); -} - -inline const QVector3D &QLogicalVertex::normal() const -{ - return m_data.normalAt(m_index); -} - -inline void QLogicalVertex::setNormal(const QVector3D &n) -{ - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(QGL::Normal)) - m_data.appendNormal(n); - else - m_data.normal(m_index) = n; -} - -inline QVector3D &QLogicalVertex::normal() -{ - return m_data.normal(m_index); -} - -inline const QVector2D &QLogicalVertex::texCoord(QGL::VertexAttribute attr) const -{ - return m_data.texCoordAt(m_index, attr); -} - -inline void QLogicalVertex::setTexCoord(const QVector2D &t, QGL::VertexAttribute attr) -{ - Q_ASSERT(attr >= QGL::TextureCoord0 && attr <= QGL::TextureCoord2); - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(attr)) - m_data.appendTexCoord(t, attr); - else - m_data.texCoord(m_index, attr) = t; -} - -inline QVector2D &QLogicalVertex::texCoordRef(QGL::VertexAttribute attr) -{ - return m_data.texCoord(m_index, attr); -} - -inline const QColor4ub &QLogicalVertex::color() const -{ - return m_data.colorAt(m_index); -} - -inline void QLogicalVertex::setColor(const QColor4ub &c) -{ - if (m_index == -1) - m_index = 0; - if (m_index == m_data.count(QGL::Color)) - m_data.appendColor(c); - else - m_data.color(m_index) = c; -} - -inline QColor4ub &QLogicalVertex::colorRef() -{ - return m_data.color(m_index); -} - -inline bool QLogicalVertex::hasField(QGL::VertexAttribute attr) const -{ - return m_data.hasField(attr); -} - -inline quint32 QLogicalVertex::fields() const -{ - return m_data.fields(); -} - -inline int QLogicalVertex::index() const -{ - return m_index; -} - -inline bool QLogicalVertex::isNull() const -{ - return (m_index == -1); -} - -#ifndef QT_NO_DEBUG_STREAM -QDebug operator<<(QDebug dbg, const QLogicalVertex §ion); -#endif - -QT_END_NAMESPACE - -#endif // QLOGICALVERTEX_H |