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/renderer/include/frustum.hpp

28 lines
764 B
C++
Raw Normal View History

2020-08-19 22:09:14 -04:00
#pragma once
#include <array>
2020-09-20 23:31:03 -04:00
#include "frustum.hpp"
2020-08-19 22:09:14 -04:00
#include "matrix.hpp"
2020-09-20 23:31:03 -04:00
#include "vector.hpp"
#include "components.hpp"
2020-08-19 22:09:14 -04:00
#include "aabb.hpp"
2020-09-20 23:31:03 -04:00
#include "plane.hpp"
2020-08-19 22:09:14 -04:00
#include "asset_types.hpp"
class Scene;
struct CameraFrustum {
std::array<Plane, 6> planes;
};
2021-05-12 09:56:44 -04:00
CameraFrustum extract_frustum(Matrix4x4 combined);
2020-08-19 22:09:14 -04:00
CameraFrustum camera_extract_frustum(Scene& scene, Object cam);
CameraFrustum normalize_frustum(const CameraFrustum& frustum);
2021-05-12 09:56:44 -04:00
bool test_point_plane(const Plane& plane, const prism::float3& point);
bool test_point_frustum(const CameraFrustum& frustum, const prism::float3& point);
bool test_aabb_frustum(const CameraFrustum& frustum, const prism::aabb& aabb);
2020-08-19 22:09:14 -04:00
2021-05-12 09:56:44 -04:00
prism::aabb get_aabb_for_part(const Transform& transform, const Mesh::Part& part);