34 lines
751 B
C++
34 lines
751 B
C++
// Copyright (c) 2023 Dominic Masters
|
|
//
|
|
// This software is released under the MIT License.
|
|
// https://opensource.org/licenses/MIT
|
|
|
|
#pragma once
|
|
#include "scene/SceneItemComponent.hpp"
|
|
#include "physics/2d/Box.hpp"
|
|
|
|
namespace Dawn {
|
|
enum Collider2DType {
|
|
COLLIDER2D_TYPE_BOX
|
|
};
|
|
|
|
struct Collider2DAxisAlignedCollidingResult {
|
|
glm::vec2 normal;
|
|
float_t entryTime;
|
|
float_t exitTime;
|
|
glm::vec2 entryPoint;
|
|
glm::vec2 exitPoint;
|
|
};
|
|
|
|
class Collider2D : public SceneItemComponent {
|
|
public:
|
|
Collider2D(SceneItem *item);
|
|
|
|
/**
|
|
* Returns which type of collider this is.
|
|
*
|
|
* @return The collider type that this is.
|
|
*/
|
|
virtual enum Collider2DType getColliderType() = 0;
|
|
};
|
|
} |