summaryrefslogtreecommitdiffstats
path: root/editorlib/src/editorutils.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2016-06-10 10:35:29 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2016-06-10 08:18:00 +0000
commit0ecf16d22a4ba4eb242a74cac98c96eb74c3ee2c (patch)
treef68a7982c31c5e682af58c648d4309a1a80d4be5 /editorlib/src/editorutils.cpp
parent43efeacee594a760398e8d16c1d258f361ab13d8 (diff)
Change group box to always tightly contain group contents
Added drag handle for actual group/mesh translation point for groups/meshes that are not centered around their translation point. For additional clarity, added a line between the selection box translation handle and group/mesh translation point handle. Change-Id: I25146a68472f3f1b3703cbbcc1a60464d4c87260 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'editorlib/src/editorutils.cpp')
-rw-r--r--editorlib/src/editorutils.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/editorlib/src/editorutils.cpp b/editorlib/src/editorutils.cpp
index 37c1cab..2fac868 100644
--- a/editorlib/src/editorutils.cpp
+++ b/editorlib/src/editorutils.cpp
@@ -615,6 +615,43 @@ Qt3DRender::QGeometryRenderer *EditorUtils::createWireframePlaneMesh(int lineCou
return planeMesh;
}
+Qt3DRender::QGeometryRenderer *EditorUtils::createSingleLineMesh()
+{
+ Qt3DRender::QGeometryRenderer *mesh = new Qt3DRender::QGeometryRenderer();
+ Qt3DRender::QGeometry *geometry = new Qt3DRender::QGeometry(mesh);
+ Qt3DRender::QBuffer *dataBuffer = new Qt3DRender::QBuffer(Qt3DRender::QBuffer::VertexBuffer,
+ geometry);
+ QByteArray vertexBufferData;
+ QVector<QVector3D> vertices;
+
+ vertices.resize(2);
+ vertexBufferData.resize(vertices.size() * 3 * sizeof(float));
+
+ vertices[0] = QVector3D(0.0f, 0.0f, 0.0f);
+ vertices[1] = QVector3D(0.0f, 0.0f, 1.0f);
+
+ float *rawVertexArray = reinterpret_cast<float *>(vertexBufferData.data());
+ int idx = 0;
+ Q_FOREACH (const QVector3D &v, vertices) {
+ rawVertexArray[idx++] = v.x();
+ rawVertexArray[idx++] = v.y();
+ rawVertexArray[idx++] = v.z();
+ }
+
+ dataBuffer->setData(vertexBufferData);
+
+ addPositionAttributeToGeometry(geometry, dataBuffer, 2);
+
+ mesh->setInstanceCount(1);
+ mesh->setIndexOffset(0);
+ mesh->setFirstInstance(0);
+ mesh->setVertexCount(2);
+ mesh->setPrimitiveType(Qt3DRender::QGeometryRenderer::Lines);
+ mesh->setGeometry(geometry);
+
+ return mesh;
+}
+
Qt3DRender::QGeometryRenderer *EditorUtils::createDefaultCustomMesh()
{
Qt3DRender::QMesh *customMesh = new Qt3DRender::QMesh();