#ifndef CORE_FRUSTUM_H #define CORE_FRUSTUM_H #include "core/Matrix.h" #include "core/Plane.h" typedef struct { CoreMatrix projection; CorePlane planes[6]; float tan; float nearClip; float farClip; } CoreFrustum; void coreInitFrustum(CoreFrustum* f, float fieldOfView, float nearClip, float farClip); const CoreMatrix* coreUpdateProjection(CoreFrustum* f, const CoreIntVector2* size); void coreUpdateFrustumPlanes(CoreFrustum* f, const CoreVector3* pos, const CoreVector3* right, const CoreVector3* up, const CoreVector3* front, const CoreIntVector2* size); bool coreIsInsideFrustum(const CoreFrustum* f, const CoreVector3* pos); bool coreIsInsideFrustumRadius(const CoreFrustum* f, const CoreVector3* pos, float radius); #ifdef IMPORT_CORE #define Frustum CoreFrustum #define initFrustum coreInitFrustum #define updateProjection coreUpdateProjection #define updateFrustumPlanes coreUpdateFrustumPlanes #define isInsideFrustum coreIsInsideFrustum #define isInsideFrustumRadius coreIsInsideFrustumRadius #endif #endif