LeviLamina
Loading...
Searching...
No Matches
Frustum.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5class Frustum {
6public:
7 // Frustum inner types define
8 enum class FrustumSide : uchar {
9 Right = 0,
10 Left = 1,
11 Bottom = 2,
12 Top = 3,
13 Back = 4,
14 Front = 5,
15 NumFrustumPlanes = 6,
16 };
17
18 enum class Plane : uchar {
19 PlaneNormalX = 0,
20 PlaneNormalY = 1,
21 PlaneNormalZ = 2,
22 PlaneToOriginDistance = 3,
23 };
24
25public:
26 // member variables
27 // NOLINTBEGIN
31 // NOLINTEND
32
33public:
34 // prevent constructor by default
35 Frustum& operator=(Frustum const&);
36 Frustum(Frustum const&);
37 Frustum();
38
39public:
40 // member functions
41 // NOLINTBEGIN
42 MCNAPI_C void calculateFrustum(::glm::mat4x4 const& mvp);
43
44 MCNAPI_C bool cubeInFrustum(::glm::vec3 const& min, ::glm::vec3 const& max) const;
45 // NOLINTEND
46
47public:
48 // static functions
49 // NOLINTBEGIN
50 MCNAPI_C static ::Frustum
51 getFrustum(::glm::mat4x4 const& projection, ::glm::mat4x4 const& view, ::glm::mat4x4 const& world);
52 // NOLINTEND
53
54public:
55 // constructor thunks
56 // NOLINTBEGIN
57 MCNAPI_C void* $ctor(::Frustum&&);
58
59 MCNAPI_C void* $ctor(::Frustum const&);
60 // NOLINTEND
61};
Definition Alias.h:14