void initializeScene() { SceneWindow *window = new SceneWindow(); //QWidget *container = QWidget::createWindowContainer(window); Qt3DCore::QAspectEngine engine; Qt3DInput::QInputAspect *inputAspect = new Qt3DInput::QInputAspect(); engine.registerAspect(new Qt3DRender::QRenderAspect()); engine.registerAspect(inputAspect); QVariantMap data; data.insert(QStringLiteral("surface"), QVariant::fromValue(static_cast<QSurface *>(window))); data.insert(QStringLiteral("eventSource"), QVariant::fromValue(window)); engine.setData(data); // root entity Qt3DCore::QEntity *sceneRoot = new Qt3DCore::QEntity(); // camera scene Qt3DCore::QCamera *camera = new Qt3DCore::QCamera(sceneRoot); camera->setFieldOfView(25); camera->setNearPlane(1); camera->setFarPlane(1000); camera->setViewCenter(QVector3D(0, 3, 0)); inputAspect->setCamera(camera); Qt3DRender::QFrameGraph *frameGraphComponent = new Qt3DRender::QFrameGraph(sceneRoot); Qt3DRender::QForwardRenderer *forwardRenderer = new Qt3DRender::QForwardRenderer(); forwardRenderer->setCamera(camera); forwardRenderer->setClearColor(Qt::blue); frameGraphComponent->setActiveFrameGraph(forwardRenderer); sceneRoot->addComponent(frameGraphComponent); // scene loader Qt3DCore::QEntity *sceneLoaderEntity = new Qt3DCore::QEntity(sceneRoot); Qt3DRender::QSceneLoader *sceneLoader = new Qt3DRender::QSceneLoader(sceneLoaderEntity); SceneHandler sceneHandler(sceneLoader); QObject::connect(sceneLoader, &Qt3DRender::QSceneLoader::statusChanged, &sceneHandler, &SceneHandler::onStatusChanged); sceneLoaderEntity->addComponent(sceneLoader); QUrl fileName; fileName = QUrl::fromLocalFile("file:://C:/Users/jacobmosehansen/Desktop/IKT/20mm_hollow_cube.stl"); sceneLoader->setSource(fileName); engine.setRootEntity(sceneRoot); }
void transformed() { // GIVEN QFETCH(QVector3D, a); QFETCH(QVector3D, b); QFETCH(QVector3D, c); QFETCH(QVector3D, transformedA); QFETCH(QVector3D, transformedB); QFETCH(QVector3D, transformedC); Qt3DRender::Render::TriangleBoundingVolume volume(Qt3DCore::QNodeId(), a, b, c); Qt3DCore::QCamera camera; camera.setProjectionType(Qt3DCore::QCameraLens::PerspectiveProjection); camera.setFieldOfView(45.0f); camera.setAspectRatio(800.0/600.0f); camera.setNearPlane(0.1f); camera.setFarPlane(1000.0f); camera.setPosition(QVector3D(0.0f, 0.0f, 40.0f)); camera.setUpVector(QVector3D(0.0f, 1.0f, 0.0f)); camera.setViewCenter(QVector3D(0.0f, 0.0f, 0.0f)); const QMatrix4x4 viewMatrix = camera.viewMatrix(); // WHEN volume.transform(viewMatrix); // THEN QCOMPARE(transformedA, volume.a()); QCOMPARE(transformedB, volume.b()); QCOMPARE(transformedC, volume.c()); }