Frustum.h 1005 B

12345678910111213141516171819202122232425262728
  1. #ifndef CORE_FRUSTUM_H
  2. #define CORE_FRUSTUM_H
  3. #include "core/Matrix.h"
  4. #include "core/Plane.h"
  5. typedef struct {
  6. CoreMatrix projection;
  7. CorePlane planes[6];
  8. float tan;
  9. float nearClip;
  10. float farClip;
  11. } CoreFrustum;
  12. void coreInitFrustum(CoreFrustum* f, float fieldOfView, float nearClip,
  13. float farClip);
  14. const CoreMatrix* coreUpdateProjection(CoreFrustum* f,
  15. const CoreIntVector2* size);
  16. void coreUpdateFrustumPlanes(CoreFrustum* f, const CoreVector3* pos,
  17. const CoreVector3* right, const CoreVector3* up,
  18. const CoreVector3* front,
  19. const CoreIntVector2* size);
  20. bool coreIsInsideFrustum(const CoreFrustum* f, const CoreVector3* pos);
  21. bool coreIsInsideFrustumRadius(const CoreFrustum* f, const CoreVector3* pos,
  22. float radius);
  23. size_t coreToStringFrustum(const CoreFrustum* f, char* buffer, size_t n);
  24. #endif