Add prototype collision checking

It outputs values, but they don't seem quite correct...
This commit is contained in:
karl 2021-01-02 16:14:59 +01:00
parent 87b54a1b41
commit 3bb071ae7b

View File

@ -3,6 +3,7 @@
#include "../../Util/kdtree.h"
#include "../Components/LODObjMesh.h"
#include "../Components/Mesh.h"
#include "../Components/MouseLook.h"
#include "../Components/ObjMesh.h"
#include "../Components/Transform.h"
#include "../ECS.h"
@ -71,6 +72,25 @@ class CollisionSystem : public EntitySystem {
std::cout << kdtree->to_string() << std::endl;
}
void tick(World *pWorld, float deltaTime) override {
pWorld->each<Transform, MouseLook>([&](Entity *ent, ComponentHandle<Transform> transform,
ComponentHandle<MouseLook> mouse_look) {
glm::vec3 origin_glm = transform->get_origin();
Vector origin = Vector(origin_glm.x, origin_glm.y, origin_glm.z);
// TODO: Get mouse look direction
Ray ray(origin, Vector(0, 0, -1));
Triangle *result = kdtree->intersect_ray(ray);
if (result) {
std::cout << result->p1[0] << ", " << result->p1[2] << ", " << result->p1[3]
<< std::endl;
}
// TODO: Also output visually
});
}
void configure(World *pWorld) override { myWorld = pWorld; }
World *myWorld;