Dawn/src/dawn/physics/2d/Box.hpp

48 lines
1.4 KiB
C++

// Copyright (c) 2023 Dominic Masters
//
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT
#pragma once
#include "dawnlibs.hpp"
#include "assert/assert.hpp"
#include "util/mathutils.hpp"
namespace Dawn {
bool_t boxCheckCollision(
glm::vec2 posA, glm::vec2 minA, glm::vec2 maxA,
glm::vec2 posB, glm::vec2 minB, glm::vec2 maxB,
glm::vec2 velocity,
glm::vec2 &normal,
float_t &entryTime,
float_t &exitTime,
glm::vec2 &entryPoint,
glm::vec2 &exitPoint
);
/**
* Checks if two boxes are colliding.
*
* @param posA Position of the first box.
* @param minA Minimum point on the first box.
* @param maxA Maximum point on the first box.
* @param posB Position of the second box.
* @param minB Minimum point on the second box.
* @param maxB Maximum point on the second box.
* @return True if the boxes are colliding with each other, false otherwise.
*/
bool_t boxIsBoxColliding(
glm::vec2 posA, glm::vec2 minA, glm::vec2 maxA,
glm::vec2 posB, glm::vec2 minB, glm::vec2 maxB
);
/**
* Checks if a given point is within the 2D Boundaries of an object.
*
* @param point Point to test.
* @param min Minimum point on the box.
* @param max Maximum point on the box.
* @return True if the point is within the box.
*/
static bool_t boxIsPointInside(glm::vec2 point, glm::vec2 min, glm::vec2 max);
}