// Copyright (c) 2023 Dominic Masters
// 
// This software is released under the MIT License.
// https://opensource.org/licenses/MIT

#pragma once
#include "Collider3D.hpp"
#include "physics/3d/Ray3D.hpp"

namespace Dawn {
  class CubeCollider : public Collider3D {
    protected:
      bool_t performRaycast(
        struct Collider3DRayResult *result,
        struct Ray3D ray
      ) override;

    public:
      // @optional
      glm::vec3 min = glm::vec3(-0.5f, -0.5f, -0.5f);
      // @optional
      glm::vec3 max = glm::vec3(0.5f, 0.5f, 0.5f);

      CubeCollider(std::weak_ptr<SceneItem> item);

      enum Collider3DType getColliderType() override;
  };
}