fogd-engine/src/main.c
2024-09-16 23:28:55 +02:00

41 lines
1.8 KiB
C

#include "raylib.h"
#include "test_object.h"
#include "core/camera_node.h"
#include "core/engine_global.h"
#include "core/engine_loop.h"
#include "core/scene.h"
#include "core/transform_node.h"
#include "core/mesh_render_entity.h"
#include "utils/debug.h"
Scene *CreateInitialScene() {
SceneNode *root = CreateTransformNode();
SceneNode *camera_parent_parent = CreateTransformNode();
// create parent of camera parent to test transform hierarchy
Transformable transformable = TC_CAST(camera_parent_parent->entity, Transformable);
Transform transform = transformable.tc->get_transform(transformable.data);
transform.translation = (Vector3){10.f, 0.f, 0.f};
transform.rotation = QuaternionFromEuler(0.f, -10.f * DEG2RAD, 0.f);
transformable.tc->set_transform(transformable.data, transform);
// create camera with a transform parent
SceneNodeAddChild(root, camera_parent_parent);
SceneNode *camera_parent = CreateTransformNode();
// set camera parent location
transformable = TC_CAST(camera_parent->entity, Transformable);
transform = transformable.tc->get_transform(transformable.data);
transform.translation = (Vector3){0.f, 10.f, -10.f};
transform.rotation = QuaternionFromEuler(45.f * DEG2RAD, 0.f, 0.f);
transformable.tc->set_transform(transformable.data, transform);
SceneNodeAddChild(camera_parent_parent, camera_parent);
SceneNodeAddChild(camera_parent, CreateCameraNode());
SceneNodeAddChild(camera_parent, CreateTestObject());
SceneNodeAddChild(root, CreateMeshRenderEntity("spacefighter.glb"));
return CreateScene(root);
}
int main() {
InitializeEngine();
RunGame(CreateInitialScene());
UNREACHABLE("End of main function reached. This is an error, call ShutDown() when exiting instead.");
}