#include "WorldView.h" WorldView::WorldView() { // m_modelMat.translate(0, 0, -5); // m_modelMat.rotate(-90, 1, 0, 0); // m_modelMat.scale(1.f, 1.f, 1.5f); } void WorldView::initializeProjectionMatrix(QVulkanWindow *window) { // m_projectionMat = window->clipCorrectionMatrix(); // const QSize sz = window->swapChainImageSize(); // m_projectionMat.perspective( // 90.0f, static_cast(sz.width()) / static_cast(sz.height()), // 0.01f, 1000.0f); } VertexUniformBufferObject WorldView::getBufferObject() { VertexUniformBufferObject obj{}; m_modelMat.copyDataTo(obj.model.data()); m_camera.viewMatrix().copyDataTo(obj.view.data()); m_projectionMat.copyDataTo(obj.proj.data()); return obj; } QVector4D WorldView::multiply(const QVector4D &vector) { return m_projectionMat * m_camera.viewMatrix() * m_modelMat * vector; } void WorldView::pitchCamera(float degrees) { m_camera.pitch(degrees); } void WorldView::yawCamera(float degrees) { m_camera.yaw(degrees); } void WorldView::strafeCamera(float amount) { m_camera.strafe(amount); } void WorldView::moveCamera(float amount) { m_camera.walk(amount); }