summaryrefslogtreecommitdiffstats
path: root/src/extras/3dtext
diff options
context:
space:
mode:
Diffstat (limited to 'src/extras/3dtext')
-rw-r--r--src/extras/3dtext/3dtext.pri10
-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