31#include "hpl1/engine/graphics/GraphicsTypes.h"
32#include "hpl1/engine/math/BoundingVolume.h"
33#include "hpl1/engine/math/MathTypes.h"
34#include "hpl1/engine/system/SystemTypes.h"
38class iLowLevelGraphics;
41 eFrustumPlane_Left = 0,
42 eFrustumPlane_Right = 1,
43 eFrustumPlane_Bottom = 2,
44 eFrustumPlane_Top = 3,
45 eFrustumPlane_Near = 4,
46 eFrustumPlane_Far = 5,
47 eFrustumPlane_LastEnum = 7,
50enum eFrustumCollision {
51 eFrustumCollision_Inside,
52 eFrustumCollision_Outside,
53 eFrustumCollision_Intersect,
54 eFrustumCollision_LastEnum
62 float afFarPlane,
float afNearPlane,
float afFOV,
float afAspect,
63 const cVector3f &avOrigin,
bool abInfFarPlane =
false);
65 cPlanef GetPlane(eFrustumPlane aType);
87 cSpheref GetBoundingSphere() {
return mBoundingSphere; }
90 const cVector3f &GetOrigin();
91 cBoundingVolume *GetOriginBV();
93 cVector3f GetForward();
95 void Draw(iLowLevelGraphics *apLowLevelGraphics);
100 void UpdateEndPoints();
111 cBoundingVolume mOriginBV;
113 cMatrixf m_mtxViewProj;
114 cMatrixf m_mtxModelView;
116 cSpheref mBoundingSphere;
117 cBoundingVolume mBoundingVolume;
119 cVector3f mvEndPoints[4];
120 tVector3fVec mvPoints;
Definition: BoundingVolume.h:71
bool CheckQuadMeshIntersection(tVector3fVec *apPoints)
bool CheckLineIntersection(const cVector3f &avPoint1, const cVector3f &avPoint2)
Definition: BoundingVolume.h:57