Shows four basic shapes that Qt 3D offers and sets up a mesh for each of them.
Basic Shapes shows four basic shapes that Qt 3D offers: a torus, a cylinder, a cube, and a sphere. The example also shows how to embed a Qt 3D scene into a widget and connect with other widgets.
To run the example from Qt Creator, open the Welcome mode and select the example from Examples. For more information, visit Building and Running an Example.
As an example, we go through how to set up a torus mesh. First, we instantiate the QTorusMesh
, and then we set the mesh specific parameters, which for torus are radius, minor radius, and the number of rings and
slices.
m_torus = new Qt3DExtras::QTorusMesh(); m_torus->setRadius(1.0f); m_torus->setMinorRadius(0.4f); m_torus->setRings(100); m_torus->setSlices(20);
The size and position of the torus can be adjusted with transform components. We create scale, translation, and rotation components and add them into the QTransform
component.
Qt3DCore::QTransform *torusTransform = new Qt3DCore::QTransform(); torusTransform->setScale(2.0f); torusTransform->setRotation(QQuaternion::fromAxisAndAngle(QVector3D(0.0f, 1.0f, 0.0f), 25.0f)); torusTransform->setTranslation(QVector3D(5.0f, 4.0f, 0.0f));
To change the diffuse color of the mesh, we create a QPhongMaterial
and set its diffuse color.
Qt3DExtras::QPhongMaterial *torusMaterial = new Qt3DExtras::QPhongMaterial(); torusMaterial->setDiffuse(QColor(QRgb(0xbeb32b)));
The final step is to add the torus into an entity tree, and we do that by creating a QEntity
with a parent entity and adding the previously created mesh, material, and transform components into it.
m_torusEntity = new Qt3DCore::QEntity(m_rootEntity); m_torusEntity->addComponent(m_torus); m_torusEntity->addComponent(torusMaterial); m_torusEntity->addComponent(torusTransform);
We can control the visibility of the entity by defining whether it has a parent or not. That is, whether it is part of an entity tree or not.
void SceneModifier::enableTorus(bool enabled) { m_torusEntity->setEnabled(enabled); }
Files:
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: