#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); size_t coreToStringFrustum(const CoreFrustum* f, char* buffer, size_t n); #endif