Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
prism/engine/core/include/physics.hpp

38 lines
902 B
C++
Raw Normal View History

2020-08-11 12:07:21 -04:00
#pragma once
#include <memory>
#include "vector.hpp"
#include "object.hpp"
2020-09-21 09:37:52 -04:00
class btBroadphaseInterface;
class btDefaultCollisionConfiguration;
class btCollisionDispatcher;
class btSequentialImpulseConstraintSolver;
class btDiscreteDynamicsWorld;
2020-08-11 12:07:21 -04:00
class Physics {
public:
Physics();
2020-09-21 09:37:52 -04:00
~Physics();
2020-08-11 12:07:21 -04:00
void update(float deltaTime);
void reset();
void remove_object(prism::Object obj);
2020-08-11 12:07:21 -04:00
struct RayResult {
bool hasHit;
2021-05-12 09:56:44 -04:00
prism::float3 location;
2020-08-11 12:07:21 -04:00
};
2021-05-12 09:56:44 -04:00
RayResult raycast(prism::float3 from, prism::float3 to);
2020-08-11 12:07:21 -04:00
private:
std::unique_ptr<btBroadphaseInterface> broadphase;
std::unique_ptr<btDefaultCollisionConfiguration> collisionConfiguration;
std::unique_ptr<btCollisionDispatcher> dispatcher;
std::unique_ptr<btSequentialImpulseConstraintSolver> solver;
std::unique_ptr<btDiscreteDynamicsWorld> world;
};