fixed trace line, improved collision

This commit is contained in:
2024-11-15 11:28:13 +03:00
parent 0ba787f6e0
commit a0b9d35edd
7 changed files with 65 additions and 5 deletions

View File

@@ -0,0 +1,22 @@
//
// Created by vlad on 11/15/2024.
//
#pragma once
#include "ICollidable.h"
namespace omath::collision
{
class Cube final : public ICollidable
{
public:
[[nodiscard]]
bool IsCollideWith(const std::shared_ptr<ICollidable>& other) override;
private:
[[nodiscard]]
bool IsCollideWithCube(const Cube& other);
bool IsCollideWithCapsule(const Cube& other);
};
}

View File

@@ -0,0 +1,20 @@
//
// Created by vlad on 11/15/2024.
//
#pragma once
#include "ICollidable.h"
#include <memory>
namespace omath::collision
{
class ICollidable
{
public:
virtual ~ICollidable() = default;
[[nodiscard]]
virtual bool IsCollideWith(const std::shared_ptr<ICollidable>& other) = 0;
};
}

View File

@@ -2,7 +2,6 @@
// Created by Orange on 11/13/2024.
//
#pragma once
#include <optional>
#include "omath/Vector3.hpp"
#include "omath/Triangle3d.hpp"
@@ -34,6 +33,6 @@ namespace omath::collision
// Realization of MöllerTrumbore intersection algorithm
// https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm
[[nodiscard]]
static std::optional<Vector3> GetRayHitPoint(const Ray& ray, const Triangle3d& triangle);
static Vector3 GetRayHitPoint(const Ray& ray, const Triangle3d& triangle);
};
}