diff options
author | Paul Lemire <paul.lemire350@gmail.com> | 2015-08-10 15:26:28 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2015-08-11 17:29:25 +0000 |
commit | 86efa9fe761915d738ba231a5d94c74af3660500 (patch) | |
tree | 62176b3200e30bdf4f52ac2e1fd01277c80188ff /src/render/io | |
parent | dfe50678f651f4effd677e4fc9d7b518a5975329 (diff) |
Cleanup: remove QAbstractMesh/QMeshData/MeshDataManager
Change-Id: I1f13cea4cf864dcf985d1f487e195509de9006e7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/io')
-rw-r--r-- | src/render/io/qmeshdata.cpp | 225 | ||||
-rw-r--r-- | src/render/io/qmeshdata.h | 113 | ||||
-rw-r--r-- | src/render/io/qmeshdata_p.h | 73 | ||||
-rw-r--r-- | src/render/io/render-io.pri | 3 |
4 files changed, 0 insertions, 414 deletions
diff --git a/src/render/io/qmeshdata.cpp b/src/render/io/qmeshdata.cpp deleted file mode 100644 index 0a689257f..000000000 --- a/src/render/io/qmeshdata.cpp +++ /dev/null @@ -1,225 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later 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 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qmeshdata.h" -#include "qmeshdata_p.h" -#include <Qt3DCore/qabstractattribute.h> -#include <Qt3DCore/qabstractbuffer.h> -#include <QOpenGLVertexArrayObject> - -QT_BEGIN_NAMESPACE - -namespace Qt3D { - -/*! - \class Qt3D::QMeshDataPrivate - \internal -*/ -QMeshDataPrivate::QMeshDataPrivate() - : m_indexAttr(Q_NULLPTR) - , m_verticesPerPatch(0) - , m_primitiveType(0) -{ -} - -QMeshDataPrivate::~QMeshDataPrivate() -{ - delete m_indexAttr; - qDeleteAll(m_attributes); -} - -QMeshData::QMeshData(PrimitiveType primitiveType) - : d_ptr(new QMeshDataPrivate) -{ - setPrimitiveType(primitiveType); -} - -QMeshData::~QMeshData() -{ -// delete d_ptr; -} - -// TO DO: Be careful is QMeshData is copied to not leak memory - -/*! \internal */ -QMeshData::QMeshData(QMeshDataPrivate &dd) - : d_ptr(&dd) -{ -} - -void QMeshData::addAttribute(const QString &name, QAbstractAttribute *attr) -{ - Q_D(QMeshData); - const int i = d->m_attributesNames.indexOf(name); - if (i != -1) { - d->m_attributes[i] = attr; - } else { - d->m_attributesNames.append(name); - d->m_attributes.append(attr); - } -} - -void QMeshData::setIndexAttribute(QAbstractAttribute *attr) -{ - Q_D(QMeshData); - d->m_indexAttr = attr; -} - -QStringList QMeshData::attributeNames() const -{ - Q_D(const QMeshData); - return d->m_attributesNames; -} - -QAbstractAttribute *QMeshData::attributeByName(const QString &name) const -{ - Q_D(const QMeshData); - const int i = d->m_attributesNames.indexOf(name); - if (i != -1) - return d->m_attributes[i]; - else - return Q_NULLPTR; -} - -QAbstractAttribute *QMeshData::indexAttribute() const -{ - Q_D(const QMeshData); - return d->m_indexAttr; -} - -QString QMeshData::defaultPositionAttributeName() -{ - return QStringLiteral("vertexPosition"); -} - -QString QMeshData::defaultNormalAttributeName() -{ - return QStringLiteral("vertexNormal"); -} - -QString QMeshData::defaultColorAttributeName() -{ - return QStringLiteral("vertexColor"); -} - -QString QMeshData::defaultTextureCoordinateAttributeName() -{ - return QStringLiteral("vertexTexCoord"); -} - -QString QMeshData::defaultTangentAttributeName() -{ - return QStringLiteral("vertexTangent"); -} - -void QMeshData::setVerticesPerPatch(int verticesPerPatch) -{ - Q_D(QMeshData); - d->m_verticesPerPatch = verticesPerPatch; -} - -int QMeshData::verticesPerPatch() const -{ - Q_D(const QMeshData); - return d->m_verticesPerPatch; -} - -int QMeshData::primitiveCount() const -{ - Q_D(const QMeshData); - if (d->m_indexAttr) { - return d->m_indexAttr->count(); - } else { - // assume all attribute arrays have the same size - // will break with instanced drawing, but probably per-instance - // arrays aren't coming from this code-path. - // Maybe. - return d->m_attributes.first()->count(); - } -} - -QVector<QAbstractBuffer *> QMeshData::buffers() const -{ - Q_D(const QMeshData); - QVector<QAbstractBuffer*> r; - r.reserve(d->m_attributes.count() + 1); - if (d->m_indexAttr) - r.push_back(d->m_indexAttr->buffer()); - Q_FOREACH (QAbstractAttribute *attr, d->m_attributes) - r.push_back(attr->buffer()); - - return r; -} - -void QMeshData::setBoundingBox(const QAxisAlignedBoundingBox &bbox) -{ - Q_D(QMeshData); - d->m_bbox = bbox; -} - -void QMeshData::computeBoundsFromAttribute(const QString &name) -{ - Q_D(QMeshData); - QAbstractAttribute *attr = attributeByName(name); - if (!attr) { - qWarning() << Q_FUNC_INFO << "unknown attribute:" << name; - return; - } - d->m_bbox.clear(); - d->m_bbox.update(attr->asVector3D()); -} - -QAxisAlignedBoundingBox QMeshData::boundingBox() const -{ - Q_D(const QMeshData); - return d->m_bbox; -} - -void QMeshData::setPrimitiveType(PrimitiveType primitiveType) -{ - Q_D(QMeshData); - d->m_primitiveType = primitiveType; -} - -int QMeshData::primitiveType() const -{ - Q_D(const QMeshData); - return d->m_primitiveType; -} - -} // Qt3D - -QT_END_NAMESPACE diff --git a/src/render/io/qmeshdata.h b/src/render/io/qmeshdata.h deleted file mode 100644 index 23116ec7e..000000000 --- a/src/render/io/qmeshdata.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later 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 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QT3D_QMESHDATA_H -#define QT3D_QMESHDATA_H - -#include <Qt3DRenderer/qt3drenderer_global.h> -#include <Qt3DCore/qaxisalignedboundingbox.h> -#include <QSharedPointer> - -QT_BEGIN_NAMESPACE - -namespace Qt3D { - -class QAbstractAttribute; -class QAbstractBuffer; -class QMeshDataPrivate; - -class QT3DRENDERERSHARED_EXPORT QMeshData -{ -public: - enum PrimitiveType { - Points = 0x0000, - Lines = 0x0001, - LineLoop = 0x0002, - LineStrip = 0x0003, - Triangles = 0x0004, - TriangleStrip = 0x0005, - TriangleFan = 0x0006, - LinesAdjacency = 0x000A, - TrianglesAdjacency = 0x000C, - LineStripAdjacency = 0x000B, - TriangleStripAdjacency = 0x000D, - Patches = 0x000E - }; - - explicit QMeshData(PrimitiveType primitiveType = Triangles); - virtual ~QMeshData(); - - void addAttribute(const QString &name, QAbstractAttribute *attr); - void setIndexAttribute(QAbstractAttribute *attr); - - QStringList attributeNames() const; - QAbstractAttribute *attributeByName(const QString &name) const; - QAbstractAttribute *indexAttribute() const; - - static QString defaultPositionAttributeName(); - static QString defaultNormalAttributeName(); - static QString defaultColorAttributeName(); - static QString defaultTextureCoordinateAttributeName(); - static QString defaultTangentAttributeName(); - - void setPrimitiveType(PrimitiveType primitiveType); - int primitiveType() const; - - void setVerticesPerPatch(int verticesPerPatch); - int verticesPerPatch() const; - - int primitiveCount() const; - - QVector<QAbstractBuffer *> buffers() const; - - void setBoundingBox(const QAxisAlignedBoundingBox &bbox); - void computeBoundsFromAttribute(const QString &name); - - QAxisAlignedBoundingBox boundingBox() const; - -protected: - Q_DECLARE_PRIVATE(QMeshData) - QMeshDataPrivate *d_ptr; - QMeshData(QMeshDataPrivate &dd); -}; - -typedef QSharedPointer<QMeshData> QMeshDataPtr; - -} // Qt3D - -QT_END_NAMESPACE - -#endif // QT3D_QMESHDATA_H diff --git a/src/render/io/qmeshdata_p.h b/src/render/io/qmeshdata_p.h deleted file mode 100644 index c1722396d..000000000 --- a/src/render/io/qmeshdata_p.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL3$ -** 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 http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/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 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPLv3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or later 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 2.0 requirements will be -** met: http://www.gnu.org/licenses/gpl-2.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QT3D_QMESHDATA_P_H -#define QT3D_QMESHDATA_P_H - -#include <Qt3DCore/qt3dcore_global.h> -#include <Qt3DCore/qaxisalignedboundingbox.h> - -#include <QMap> -#include <QSharedPointer> - -QT_BEGIN_NAMESPACE - -namespace Qt3D { - -class QAbstractAttribute; -class QAbstractBuffer; - -typedef QSharedPointer<QAbstractAttribute> QAbstractAttributePtr; - -class QMeshDataPrivate -{ -public: - QMeshDataPrivate(); - ~QMeshDataPrivate(); - - QStringList m_attributesNames; - QVector<QAbstractAttribute *> m_attributes; - QAbstractAttribute *m_indexAttr; - QAxisAlignedBoundingBox m_bbox; - int m_verticesPerPatch; - int m_primitiveType; -}; - -} // Qt3D - -QT_END_NAMESPACE - -#endif // QT3D_QMESHDATA_P_H diff --git a/src/render/io/render-io.pri b/src/render/io/render-io.pri index 6ac63d9c5..ababc3cd0 100644 --- a/src/render/io/render-io.pri +++ b/src/render/io/render-io.pri @@ -8,8 +8,6 @@ HEADERS += \ $$PWD/qattribute_p.h \ $$PWD/qbuffer.h \ $$PWD/qbuffer_p.h \ - $$PWD/qmeshdata_p.h \ - $$PWD/qmeshdata.h \ $$PWD/uniformbuffer_p.h \ $$PWD/qbufferfunctor.h \ $$PWD/qgeometryfunctor.h @@ -20,5 +18,4 @@ SOURCES += \ $$PWD/abstractsceneparser.cpp \ $$PWD/qattribute.cpp \ $$PWD/qbuffer.cpp \ - $$PWD/qmeshdata.cpp \ $$PWD/uniformbuffer.cpp |