diff options
Diffstat (limited to 'src/extras/3dtext')
-rw-r--r-- | src/extras/3dtext/3dtext.pri | 10 | ||||
-rw-r--r-- | src/extras/3dtext/qextrudedtextgeometry.cpp (renamed from src/extras/3dtext/qtext3dgeometry.cpp) | 152 | ||||
-rw-r--r-- | src/extras/3dtext/qextrudedtextgeometry.h (renamed from src/extras/3dtext/qtext3dgeometry.h) | 38 | ||||
-rw-r--r-- | src/extras/3dtext/qextrudedtextgeometry_p.h (renamed from src/extras/3dtext/qtext3dgeometry_p.h) | 14 | ||||
-rw-r--r-- | src/extras/3dtext/qextrudedtextmesh.cpp (renamed from src/extras/3dtext/qtext3dmesh.cpp) | 86 | ||||
-rw-r--r-- | src/extras/3dtext/qextrudedtextmesh.h (renamed from src/extras/3dtext/qtext3dmesh.h) | 30 |
6 files changed, 139 insertions, 191 deletions
diff --git a/src/extras/3dtext/3dtext.pri b/src/extras/3dtext/3dtext.pri index bcf2ce948..d7855f1b0 100644 --- a/src/extras/3dtext/3dtext.pri +++ b/src/extras/3dtext/3dtext.pri @@ -1,11 +1,11 @@ SOURCES += \ - $$PWD/qtext3dgeometry.cpp \ - $$PWD/qtext3dmesh.cpp + $$PWD/qextrudedtextgeometry.cpp \ + $$PWD/qextrudedtextmesh.cpp HEADERS += \ - $$PWD/qtext3dgeometry.h \ - $$PWD/qtext3dgeometry_p.h \ - $$PWD/qtext3dmesh.h + $$PWD/qextrudedtextgeometry.h \ + $$PWD/qextrudedtextgeometry_p.h \ + $$PWD/qextrudedtextmesh.h INCLUDEPATH += $$PWD diff --git a/src/extras/3dtext/qtext3dgeometry.cpp b/src/extras/3dtext/qextrudedtextgeometry.cpp index 529c93b79..4a460bfc7 100644 --- a/src/extras/3dtext/qtext3dgeometry.cpp +++ b/src/extras/3dtext/qextrudedtextgeometry.cpp @@ -48,8 +48,8 @@ ** ****************************************************************************/ -#include "qtext3dgeometry.h" -#include "qtext3dgeometry_p.h" +#include "qextrudedtextgeometry.h" +#include "qextrudedtextgeometry_p.h" #include <Qt3DRender/qbuffer.h> #include <Qt3DRender/qbufferdatagenerator.h> #include <Qt3DRender/qattribute.h> @@ -65,7 +65,9 @@ namespace Qt3DExtras { namespace { -using IndexType = unsigned short; +static float edgeSplitAngle = 90.f * 0.1f; + +using IndexType = unsigned int; struct TriangulationData { struct Outline { @@ -103,7 +105,7 @@ TriangulationData triangulate(const QString &text, const QFont &font) for (QPolygonF &p : polygons) path.addPolygon(p); - // Extract polylines out of the path, this allows us to retrive indicies for each glyph outline + // Extract polylines out of the path, this allows us to retrieve indices for each glyph outline QPolylineSet polylines = qPolyline(path); QVector<IndexType> tmpIndices; tmpIndices.resize(polylines.indices.size()); @@ -145,11 +147,10 @@ inline QVector3D mix(const QVector3D &a, const QVector3D &b, float ratio) } // anonymous namespace -QText3DGeometryPrivate::QText3DGeometryPrivate() +QExtrudedTextGeometryPrivate::QExtrudedTextGeometryPrivate() : QGeometryPrivate() , m_font(QFont(QStringLiteral("Arial"))) , m_depth(1.f) - , m_edgeSplitAngle(90.f * 0.1f) , m_positionAttribute(nullptr) , m_normalAttribute(nullptr) , m_indexAttribute(nullptr) @@ -159,9 +160,9 @@ QText3DGeometryPrivate::QText3DGeometryPrivate() m_font.setPointSize(4); } -void QText3DGeometryPrivate::init() +void QExtrudedTextGeometryPrivate::init() { - Q_Q(QText3DGeometry); + Q_Q(QExtrudedTextGeometry); m_positionAttribute = new Qt3DRender::QAttribute(q); m_normalAttribute = new Qt3DRender::QAttribute(q); m_indexAttribute = new Qt3DRender::QAttribute(q); @@ -190,7 +191,7 @@ void QText3DGeometryPrivate::init() m_normalAttribute->setCount(0); m_indexAttribute->setAttributeType(Qt3DRender::QAttribute::IndexAttribute); - m_indexAttribute->setVertexBaseType(Qt3DRender::QAttribute::UnsignedShort); + m_indexAttribute->setVertexBaseType(Qt3DRender::QAttribute::UnsignedInt); m_indexAttribute->setBuffer(m_indexBuffer); m_indexAttribute->setCount(0); @@ -202,101 +203,96 @@ void QText3DGeometryPrivate::init() } /*! - * \qmltype Text3DGeometry - * \instantiates Qt3DExtras::QText3DGeometry + * \qmltype ExtrudedTextGeometry + * \instantiates Qt3DExtras::QExtrudedTextGeometry * \inqmlmodule Qt3D.Extras - * \brief Text3DGeometry allows creation of a 3D text in 3D space. + * \brief ExtrudedTextGeometry allows creation of a 3D text in 3D space. * - * The Text3DGeometry type is most commonly used internally by the Text3DMesh type - * but can also be used in custom GeometryRenderer types. + * The ExtrudedTextGeometry type is most commonly used internally by the + * ExtrudedTextMesh type but can also be used in custom GeometryRenderer types. */ /*! - * \qmlproperty QString Text3DGeometry::text + * \qmlproperty QString ExtrudedTextGeometry::text * * Holds the text used for the mesh. */ /*! - * \qmlproperty QFont Text3DGeometry::font + * \qmlproperty QFont ExtrudedTextGeometry::font * * Holds the font of the text. */ /*! - * \qmlproperty float Text3DGeometry::depth + * \qmlproperty float ExtrudedTextGeometry::depth * * Holds the extrusion depth of the text. */ /*! - * \qmlproperty float Text3DGeometry::edgeSplitAngle - * - * Holds the threshold angle for smooth normals. - */ - -/*! - * \qmlproperty Attribute Text3DGeometry::positionAttribute + * \qmlproperty Attribute ExtrudedTextGeometry::positionAttribute * * Holds the geometry position attribute. */ /*! - * \qmlproperty Attribute Text3DGeometry::normalAttribute + * \qmlproperty Attribute ExtrudedTextGeometry::normalAttribute * * Holds the geometry normal attribute. */ /*! - * \qmlproperty Attribute Text3DGeometry::indexAttribute + * \qmlproperty Attribute ExtrudedTextGeometry::indexAttribute * * Holds the geometry index attribute. */ /*! - * \class Qt3DExtras::QText3DGeometry - * \inheaderfile Qt3DExtras/QText3DGeometry + * \class Qt3DExtras::QExtrudedTextGeometry + * \inheaderfile Qt3DExtras/QExtrudedTextGeometry * \inmodule Qt3DExtras - * \brief The QText3DGeometry class allows creation of a 3D text in 3D space. - * \since 5.8 + * \brief The QExtrudedTextGeometry class allows creation of a 3D extruded text + * in 3D space. + * \since 5.9 * \ingroup geometries * \inherits Qt3DRender::QGeometry * - * The QText3DGeometry class is most commonly used internally by the QText3DMesh + * The QExtrudedTextGeometry class is most commonly used internally by the QText3DMesh * but can also be used in custom Qt3DRender::QGeometryRenderer subclasses. */ /*! - * Constructs a new QText3DGeometry with \a parent. + * Constructs a new QExtrudedTextGeometry with \a parent. */ -QText3DGeometry::QText3DGeometry(Qt3DCore::QNode *parent) - : QGeometry(*new QText3DGeometryPrivate(), parent) +QExtrudedTextGeometry::QExtrudedTextGeometry(Qt3DCore::QNode *parent) + : QGeometry(*new QExtrudedTextGeometryPrivate(), parent) { - Q_D(QText3DGeometry); + Q_D(QExtrudedTextGeometry); d->init(); } /*! * \internal */ -QText3DGeometry::QText3DGeometry(QText3DGeometryPrivate &dd, Qt3DCore::QNode *parent) +QExtrudedTextGeometry::QExtrudedTextGeometry(QExtrudedTextGeometryPrivate &dd, Qt3DCore::QNode *parent) : QGeometry(dd, parent) { - Q_D(QText3DGeometry); + Q_D(QExtrudedTextGeometry); d->init(); } /*! * \internal */ -QText3DGeometry::~QText3DGeometry() +QExtrudedTextGeometry::~QExtrudedTextGeometry() {} /*! * \internal - * Updates vertices based on text, font, depth and smoothAngle properties. + * Updates vertices based on text, font, extrusionLength and smoothAngle properties. */ -void QText3DGeometryPrivate::update() +void QExtrudedTextGeometryPrivate::update() { if (m_text.trimmed().isEmpty()) // save enough? return; @@ -328,6 +324,9 @@ void QText3DGeometryPrivate::update() const int end = data.outlines[i].end; const int verticesIndexBegin = verticesIndex; + if (begin == end) + continue; + QVector3D prevNormal = QVector3D::crossProduct( vertices[data.outlineIndices[end - 1] + numVertices].position - vertices[data.outlineIndices[end - 1]].position, vertices[data.outlineIndices[begin]].position - vertices[data.outlineIndices[end - 1]].position).normalized(); @@ -339,7 +338,7 @@ void QText3DGeometryPrivate::update() const QVector3D normal = QVector3D::crossProduct(vertices[cur + numVertices].position - vertices[cur].position, vertices[next].position - vertices[cur].position).normalized(); // use smooth normals in case of a short angle - const bool smooth = QVector3D::dotProduct(prevNormal, normal) > (90.0f - m_edgeSplitAngle) / 90.0f; + const bool smooth = QVector3D::dotProduct(prevNormal, normal) > (90.0f - edgeSplitAngle) / 90.0f; const QVector3D resultNormal = smooth ? mix(prevNormal, normal, 0.5f) : normal; if (!smooth) { vertices.push_back({vertices[cur].position, prevNormal}); @@ -403,9 +402,9 @@ void QText3DGeometryPrivate::update() } } -void QText3DGeometry::setText(QString text) +void QExtrudedTextGeometry::setText(const QString &text) { - Q_D(QText3DGeometry); + Q_D(QExtrudedTextGeometry); if (d->m_text != text) { d->m_text = text; d->update(); @@ -413,9 +412,9 @@ void QText3DGeometry::setText(QString text) } } -void QText3DGeometry::setFont(QFont font) +void QExtrudedTextGeometry::setFont(const QFont &font) { - Q_D(QText3DGeometry); + Q_D(QExtrudedTextGeometry); if (d->m_font != font) { d->m_font = font; d->update(); @@ -423,9 +422,9 @@ void QText3DGeometry::setFont(QFont font) } } -void QText3DGeometry::setDepth(float depth) +void QExtrudedTextGeometry::setDepth(float depth) { - Q_D(QText3DGeometry); + Q_D(QExtrudedTextGeometry); if (d->m_depth != depth) { d->m_depth = depth; d->update(); @@ -433,90 +432,69 @@ void QText3DGeometry::setDepth(float depth) } } -void QText3DGeometry::setEdgeSplitAngle(float smoothAngle) -{ - Q_D(QText3DGeometry); - if (d->m_edgeSplitAngle != smoothAngle) { - d->m_edgeSplitAngle = smoothAngle; - d->update(); - emit edgeSplitAngleChanged(smoothAngle); - } -} - /*! - * \property QString Text3DGeometry::text + * \property QString QExtrudedTextGeometry::text * * Holds the text used for the mesh. */ -QString QText3DGeometry::text() const +QString QExtrudedTextGeometry::text() const { - Q_D(const QText3DGeometry); + Q_D(const QExtrudedTextGeometry); return d->m_text; } /*! - * \property QFont Text3DGeometry::font + * \property QFont QExtrudedTextGeometry::font * * Holds the font of the text. */ -QFont QText3DGeometry::font() const +QFont QExtrudedTextGeometry::font() const { - Q_D(const QText3DGeometry); + Q_D(const QExtrudedTextGeometry); return d->m_font; } /*! - * \property float Text3DGeometry::depth + * \property float QExtrudedTextGeometry::extrusionLength * - * Holds the extrusion depth of the text. + * Holds the extrusion length of the text. */ -float QText3DGeometry::depth() const +float QExtrudedTextGeometry::extrusionLength() const { - Q_D(const QText3DGeometry); + Q_D(const QExtrudedTextGeometry); return d->m_depth; } /*! - * \property float Text3DGeometry::edgeSplitAngle - * - * Holds the threshold angle for smooth normals. - */ -float QText3DGeometry::edgeSplitAngle() const -{ - Q_D(const QText3DGeometry); - return d->m_edgeSplitAngle; -} - -/*! - * \property Text3DGeometry::positionAttribute + * \property QExtrudedTextGeometry::positionAttribute * * Holds the geometry position attribute. */ -Qt3DRender::QAttribute *QText3DGeometry::positionAttribute() const +Qt3DRender::QAttribute *QExtrudedTextGeometry::positionAttribute() const { - Q_D(const QText3DGeometry); + Q_D(const QExtrudedTextGeometry); return d->m_positionAttribute; } /*! - * \property Text3DGeometry::normalAttribute + * \property QExtrudedTextMesh::normalAttribute * * Holds the geometry normal attribute. */ -Qt3DRender::QAttribute *QText3DGeometry::normalAttribute() const +Qt3DRender::QAttribute *QExtrudedTextGeometry::normalAttribute() const { - Q_D(const QText3DGeometry); + Q_D(const QExtrudedTextGeometry); return d->m_normalAttribute; } /*! - * \property Text3DGeometry::indexAttribute + * \property QExtrudedTextMesh::indexAttribute * * Holds the geometry index attribute. */ -Qt3DRender::QAttribute *QText3DGeometry::indexAttribute() const +Qt3DRender::QAttribute *QExtrudedTextGeometry::indexAttribute() const { - Q_D(const QText3DGeometry); + Q_D(const QExtrudedTextGeometry); return d->m_indexAttribute; } diff --git a/src/extras/3dtext/qtext3dgeometry.h b/src/extras/3dtext/qextrudedtextgeometry.h index 4cd89b112..9ee8b23f0 100644 --- a/src/extras/3dtext/qtext3dgeometry.h +++ b/src/extras/3dtext/qextrudedtextgeometry.h @@ -48,8 +48,8 @@ ** ****************************************************************************/ -#ifndef QT3DEXTRAS_QTEXT3DGEOMETRY_H -#define QT3DEXTRAS_QTEXT3DGEOMETRY_H +#ifndef QT3DEXTRAS_QEXTRUDEDTEXTGEOMETRY_H +#define QT3DEXTRAS_QEXTRUDEDTEXTGEOMETRY_H #include <Qt3DExtras/qt3dextras_global.h> #include <Qt3DRender/qgeometry.h> @@ -66,52 +66,48 @@ class QAttribute; namespace Qt3DExtras { -class QText3DGeometryPrivate; +class QExtrudedTextGeometryPrivate; -class QT3DEXTRASSHARED_EXPORT QText3DGeometry : public Qt3DRender::QGeometry +class QT3DEXTRASSHARED_EXPORT QExtrudedTextGeometry : public Qt3DRender::QGeometry { Q_OBJECT Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) - Q_PROPERTY(float depth READ depth WRITE setDepth NOTIFY depthChanged) - Q_PROPERTY(float edgeSplitAngle READ edgeSplitAngle WRITE setEdgeSplitAngle NOTIFY edgeSplitAngleChanged) + Q_PROPERTY(float extrusionLength READ extrusionLength WRITE setDepth NOTIFY depthChanged) Q_PROPERTY(Qt3DRender::QAttribute *positionAttribute READ positionAttribute CONSTANT) Q_PROPERTY(Qt3DRender::QAttribute *normalAttribute READ normalAttribute CONSTANT) Q_PROPERTY(Qt3DRender::QAttribute *indexAttribute READ indexAttribute CONSTANT) public: - explicit QText3DGeometry(Qt3DCore::QNode *parent = nullptr); - ~QText3DGeometry(); + explicit QExtrudedTextGeometry(Qt3DCore::QNode *parent = nullptr); + ~QExtrudedTextGeometry(); Qt3DRender::QAttribute *positionAttribute() const; Qt3DRender::QAttribute *normalAttribute() const; Qt3DRender::QAttribute *indexAttribute() const; QString text() const; QFont font() const; - float depth() const; - float edgeSplitAngle() const; + float extrusionLength() const; public Q_SLOTS: - void setText(QString text); - void setFont(QFont font); - void setDepth(float depth); - void setEdgeSplitAngle(float edgeSplitAngle); + void setText(const QString &text); + void setFont(const QFont &font); + void setDepth(float extrusionLength); Q_SIGNALS: - void textChanged(QString text); - void fontChanged(QFont font); - void depthChanged(float depth); - void edgeSplitAngleChanged(float edgeSplitAngle); + void textChanged(const QString &text); + void fontChanged(const QFont &font); + void depthChanged(float extrusionLength); protected: - QText3DGeometry(QText3DGeometryPrivate &dd, QNode *parent = nullptr); + explicit QExtrudedTextGeometry(QExtrudedTextGeometryPrivate &dd, QNode *parent = nullptr); private: - Q_DECLARE_PRIVATE(QText3DGeometry) + Q_DECLARE_PRIVATE(QExtrudedTextGeometry) }; } // namespace Qt3DExtras QT_END_NAMESPACE -#endif // QT3DEXTRAS_QTEXT3DGEOMETRY_H +#endif // QT3DEXTRAS_QEXTRUDEDTEXTGEOMETRY_H diff --git a/src/extras/3dtext/qtext3dgeometry_p.h b/src/extras/3dtext/qextrudedtextgeometry_p.h index dc5e2f6a7..0bfa45e17 100644 --- a/src/extras/3dtext/qtext3dgeometry_p.h +++ b/src/extras/3dtext/qextrudedtextgeometry_p.h @@ -48,8 +48,8 @@ ** ****************************************************************************/ -#ifndef QT3DEXTRAS_QTEXT3DGEOMETRY_P_H -#define QT3DEXTRAS_QTEXT3DGEOMETRY_P_H +#ifndef QT3DEXTRAS_QEXTRUDEDTEXTGEOMETRY_P_H +#define QT3DEXTRAS_QEXTRUDEDTEXTGEOMETRY_P_H // // W A R N I N G @@ -76,12 +76,12 @@ class QBuffer; namespace Qt3DExtras { -class QText3DGeometry; +class QExtrudedTextGeometry; -class QText3DGeometryPrivate : public Qt3DRender::QGeometryPrivate +class QExtrudedTextGeometryPrivate : public Qt3DRender::QGeometryPrivate { public: - QText3DGeometryPrivate(); + QExtrudedTextGeometryPrivate(); void init(); void update(); @@ -96,11 +96,11 @@ public: Qt3DRender::QBuffer *m_vertexBuffer; Qt3DRender::QBuffer *m_indexBuffer; - Q_DECLARE_PUBLIC(QText3DGeometry) + Q_DECLARE_PUBLIC(QExtrudedTextGeometry) }; } // namespace Qt3DExtras QT_END_NAMESPACE -#endif // QT3DEXTRAS_QTEXT3DGEOMETRY_P_H +#endif // QT3DEXTRAS_QEXTRUDEDTEXTGEOMETRY_P_H diff --git a/src/extras/3dtext/qtext3dmesh.cpp b/src/extras/3dtext/qextrudedtextmesh.cpp index a89c01a4d..9d1dc7359 100644 --- a/src/extras/3dtext/qtext3dmesh.cpp +++ b/src/extras/3dtext/qextrudedtextmesh.cpp @@ -48,130 +48,108 @@ ** ****************************************************************************/ -#include "qtext3dmesh.h" -#include "qtext3dgeometry.h" +#include "qextrudedtextmesh.h" +#include "qextrudedtextgeometry.h" QT_BEGIN_NAMESPACE namespace Qt3DExtras { /*! - * \qmltype Text3DMesh - * \instantiates Qt3DExtras::QText3DMesh + * \qmltype ExtrudedTextMesh + * \instantiates Qt3DExtras::QExtrudedTextMesh * \inqmlmodule Qt3D.Extras - * \brief A 3D Text mesh. + * \brief A 3D extruded Text mesh. */ /*! - * \qmlproperty QString Text3DMesh::text + * \qmlproperty QString ExtrudedTextMesh::text * * Holds the text used for the mesh. */ /*! - * \qmlproperty QFont Text3DMesh::font + * \qmlproperty QFont ExtrudedTextMesh::font * * Holds the font of the text. */ /*! - * \qmlproperty float Text3DMesh::depth + * \qmlproperty float ExtrudedTextMesh::depth * * Holds the extrusion depth of the text. */ /*! - * \qmlproperty float Text3DMesh::edgeSplitAngle - * - * Holds the threshold angle for smooth normals. - */ - -/*! - * \class Qt3DExtras::QText3DMesh - * \inheaderfile Qt3DExtras/QText3DMesh + * \class Qt3DExtras::QExtrudedTextMesh + * \inheaderfile Qt3DExtras/QExtrudedTextMesh * \inmodule Qt3DExtras * * \inherits Qt3DRender::QGeometryRenderer * - * \brief A 3D Text mesh. + * \brief A 3D extruded Text mesh. */ /*! * Constructs a new QText3DMesh with \a parent. */ -QText3DMesh::QText3DMesh(Qt3DCore::QNode *parent) +QExtrudedTextMesh::QExtrudedTextMesh(Qt3DCore::QNode *parent) : QGeometryRenderer(parent) { - QText3DGeometry *geometry = new QText3DGeometry(); - QObject::connect(geometry, &QText3DGeometry::depthChanged, this, &QText3DMesh::depthChanged); - QObject::connect(geometry, &QText3DGeometry::textChanged, this, &QText3DMesh::textChanged); - QObject::connect(geometry, &QText3DGeometry::fontChanged, this, &QText3DMesh::fontChanged); - QObject::connect(geometry, &QText3DGeometry::edgeSplitAngleChanged, this, &QText3DMesh::edgeSplitAngleChanged); + QExtrudedTextGeometry *geometry = new QExtrudedTextGeometry(); + QObject::connect(geometry, &QExtrudedTextGeometry::depthChanged, this, &QExtrudedTextMesh::depthChanged); + QObject::connect(geometry, &QExtrudedTextGeometry::textChanged, this, &QExtrudedTextMesh::textChanged); + QObject::connect(geometry, &QExtrudedTextGeometry::fontChanged, this, &QExtrudedTextMesh::fontChanged); QGeometryRenderer::setGeometry(geometry); } /*! \internal */ -QText3DMesh::~QText3DMesh() +QExtrudedTextMesh::~QExtrudedTextMesh() {} -void QText3DMesh::setText(QString text) -{ - static_cast<QText3DGeometry*>(geometry())->setText(text); -} - -void QText3DMesh::setFont(QFont font) +void QExtrudedTextMesh::setText(const QString &text) { - static_cast<QText3DGeometry*>(geometry())->setFont(font); + static_cast<QExtrudedTextGeometry*>(geometry())->setText(text); } -void QText3DMesh::setDepth(float depth) +void QExtrudedTextMesh::setFont(const QFont &font) { - static_cast<QText3DGeometry*>(geometry())->setDepth(depth); + static_cast<QExtrudedTextGeometry*>(geometry())->setFont(font); } -void QText3DMesh::setEdgeSplitAngle(float smoothAngle) +void QExtrudedTextMesh::setDepth(float depth) { - static_cast<QText3DGeometry*>(geometry())->setEdgeSplitAngle(smoothAngle); + static_cast<QExtrudedTextGeometry*>(geometry())->setDepth(depth); } /*! - * \property QString QText3DMesh::text + * \property QString QExtrudedTextMesh::text * * Holds the text used for the mesh. */ -QString QText3DMesh::text() +QString QExtrudedTextMesh::text() const { - return static_cast<QText3DGeometry*>(geometry())->text(); + return static_cast<QExtrudedTextGeometry*>(geometry())->text(); } /*! - * \property QFont QText3DMesh::font + * \property QFont QExtrudedTextMesh::font * * Holds the font of the text. */ -QFont QText3DMesh::font() +QFont QExtrudedTextMesh::font() const { - return static_cast<QText3DGeometry*>(geometry())->font(); + return static_cast<QExtrudedTextGeometry*>(geometry())->font(); } /*! - * \property float QText3DMesh::depth + * \property float QExtrudedTextMesh::depth * * Holds the extrusion depth of the text. */ -float QText3DMesh::depth() -{ - return static_cast<QText3DGeometry*>(geometry())->depth(); -} - -/*! - * \property float QText3DMesh::edgeSplitAngle - * - * Holds the threshold angle for smooth normals. - */ -float QText3DMesh::edgeSplitAngle() +float QExtrudedTextMesh::depth() const { - return static_cast<QText3DGeometry*>(geometry())->edgeSplitAngle(); + return static_cast<QExtrudedTextGeometry*>(geometry())->extrusionLength(); } } // namespace Qt3DExtras diff --git a/src/extras/3dtext/qtext3dmesh.h b/src/extras/3dtext/qextrudedtextmesh.h index 6bb546675..3f2f41a37 100644 --- a/src/extras/3dtext/qtext3dmesh.h +++ b/src/extras/3dtext/qextrudedtextmesh.h @@ -48,8 +48,8 @@ ** ****************************************************************************/ -#ifndef QT3DEXTRAS_QTEXT3DMESH_H -#define QT3DEXTRAS_QTEXT3DMESH_H +#ifndef QT3DEXTRAS_QEXTRUDEDTEXTMESH_H +#define QT3DEXTRAS_QEXTRUDEDTEXTMESH_H #include <Qt3DExtras/qt3dextras_global.h> #include <Qt3DRender/qgeometryrenderer.h> @@ -60,38 +60,34 @@ QT_BEGIN_NAMESPACE namespace Qt3DExtras { -class QT3DEXTRASSHARED_EXPORT QText3DMesh : public Qt3DRender::QGeometryRenderer +class QT3DEXTRASSHARED_EXPORT QExtrudedTextMesh : public Qt3DRender::QGeometryRenderer { Q_OBJECT Q_PROPERTY(QString text READ text WRITE setText NOTIFY textChanged) Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY fontChanged) Q_PROPERTY(float depth READ depth WRITE setDepth NOTIFY depthChanged) - Q_PROPERTY(float edgeSplitAngle READ edgeSplitAngle WRITE setEdgeSplitAngle NOTIFY edgeSplitAngleChanged) public: - QText3DMesh(Qt3DCore::QNode *parent = nullptr); - ~QText3DMesh(); + explicit QExtrudedTextMesh(Qt3DCore::QNode *parent = nullptr); + ~QExtrudedTextMesh(); - QString text(); - QFont font(); - float depth(); - float edgeSplitAngle(); + QString text() const; + QFont font() const; + float depth() const; public Q_SLOTS: - void setText(QString text); - void setFont(QFont font); + void setText(const QString &text); + void setFont(const QFont &font); void setDepth(float depth); - void setEdgeSplitAngle(float edgeSplitAngle); Q_SIGNALS: - void textChanged(QString text); - void fontChanged(QFont font); + void textChanged(const QString &text); + void fontChanged(const QFont &font); void depthChanged(float depth); - void edgeSplitAngleChanged(float edgeSplitAngle); }; } // namespace Qt3DExtras QT_END_NAMESPACE -#endif // QT3DEXTRAS_QTEXT3DMESH_H +#endif // QT3DEXTRAS_QEXTRUDEDTEXTMESH_H |