Basic transform stuff

This commit is contained in:
2022-10-21 22:01:37 -07:00
parent 043873cc2d
commit be529b70c1
18 changed files with 363 additions and 38 deletions

View File

@ -7,6 +7,22 @@
using namespace Dawn;
std::shared_ptr<SceneItem> cubeCreate(std::shared_ptr<Scene> scene) {
auto cubeObject = scene->createSceneItem();
auto cubeMeshRenderer = cubeObject->addComponent<MeshRenderer>();
auto cubeMaterial = cubeObject->addComponent<Material>();
cubeMeshRenderer->mesh = std::make_shared<Mesh>();
cubeMeshRenderer->mesh->createBuffers(CUBE_VERTICE_COUNT, CUBE_INDICE_COUNT);
CubeMesh::buffer(
*cubeMeshRenderer->mesh,
glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1),
0, 0
);
return cubeObject;
}
std::shared_ptr<SceneItem> cubeParent;
DawnGame::DawnGame(DawnHost &host) :
host(host),
renderManager(*this)
@ -21,22 +37,14 @@ int32_t DawnGame::init() {
auto cameraObject = this->scene->createSceneItem();
auto camera = cameraObject->addComponent<Camera>();
camera->lookAt(glm::vec3(5, 5, 5), glm::vec3(0, 0, 0));
auto cubeObject = this->scene->createSceneItem();
auto cubeMeshRenderer = cubeObject->addComponent<MeshRenderer>();
auto cubeMaterial = cubeObject->addComponent<Material>();
cubeMeshRenderer->mesh = std::make_shared<Mesh>();
cubeMeshRenderer->mesh->createBuffers(QUAD_VERTICE_COUNT, QUAD_INDICE_COUNT);
QuadMesh::bufferQuadMeshWithZ(
*cubeMeshRenderer->mesh,
glm::vec2(-1, -1), glm::vec2(0, 0),
glm::vec2(1, 1), glm::vec2(1, 1),
0, 0, 0
);
auto textureAsset = this->assetManager.load<TextureAsset>("texture_test");
cubeMaterial->textureValues[cubeMaterial->getShader()->getParameterByName("u_Text")] = std::shared_ptr<Texture>(textureAsset->texture);
camera->transform.lookAt(glm::vec3(5, 5, 5), glm::vec3(0, 0, 0));
cubeParent = cubeCreate(this->scene);
auto cubeChild = cubeCreate(this->scene);
cubeChild->getComponent<Material>()->colorValues[cubeChild->getComponent<Material>()->getShader()->getParameterByName("u_Color")] = COLOR_MAGENTA;
cubeChild->transform.setParent(&cubeParent->transform);
cubeChild->transform.setLocalPosition(glm::vec3(1, 0, 0));
cubeParent->transform.setLocalPosition(glm::vec3(-0.5f, 0, 0));
return DAWN_GAME_INIT_RESULT_SUCCESS;
}
@ -45,6 +53,8 @@ int32_t DawnGame::update(float_t delta) {
this->assetManager.update();
if(this->scene != nullptr) this->scene->update();
cubeParent->transform.setLocalPosition(cubeParent->transform.getLocalPosition() + glm::vec3(-delta, 0, 0));
this->renderManager.update();

View File

@ -8,4 +8,5 @@
#include "scene/components/Components.hpp"
#include "display/mesh/QuadMesh.hpp"
#include "display/mesh/TriangleMesh.hpp"
#include "display/mesh/CubeMesh.hpp"
#include "asset/assets/TextureAsset.hpp"