feat: test object now rotates the surroundings
This commit is contained in:
parent
09e52d007a
commit
8f3ad30c4a
|
@ -10,12 +10,14 @@
|
|||
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);
|
||||
|
@ -23,10 +25,9 @@ Scene *CreateInitialScene() {
|
|||
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(root, camera_parent_parent);
|
||||
SceneNodeAddChild(camera_parent_parent, camera_parent);
|
||||
SceneNodeAddChild(camera_parent, CreateCameraNode());
|
||||
SceneNodeAddChild(root, CreateTestObject());
|
||||
SceneNodeAddChild(camera_parent, CreateTestObject());
|
||||
return CreateScene(root);
|
||||
}
|
||||
|
||||
|
|
|
@ -41,9 +41,10 @@ void TestObjectExitTree(TestObject *self) {
|
|||
}
|
||||
|
||||
void TestObjectDraw(TestObject *self) {
|
||||
Vector3 position = Vector3Add((Vector3){0.f, 1.f, 0.f}, self->transform.tc->get_global_transform(self->transform.data).translation);
|
||||
DrawCube(position, 1.f, 2.f, 1.f, YELLOW);
|
||||
}
|
||||
|
||||
void TestObjectTick(TestObject *self, double delta) {
|
||||
Transform local_transform = self->transform.tc->get_transform(self->transform.data);
|
||||
local_transform.rotation = QuaternionMultiply(QuaternionFromEuler(0.f, 0.01f, 0.f), local_transform.rotation);
|
||||
self->transform.tc->set_transform(self->transform.data, local_transform);
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "utils/drop.h"
|
||||
#include "utils/mirror.h"
|
||||
|
||||
// Test object created to generally test game features
|
||||
typedef struct TestObject {
|
||||
SceneNode *node;
|
||||
Transformable transform;
|
||||
|
|
Loading…
Reference in a new issue