Frustum.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  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. #ifdef IMPORT_CORE
  24. #define Frustum CoreFrustum
  25. #define initFrustum coreInitFrustum
  26. #define updateProjection coreUpdateProjection
  27. #define updateFrustumPlanes coreUpdateFrustumPlanes
  28. #define isInsideFrustum coreIsInsideFrustum
  29. #define isInsideFrustumRadius coreIsInsideFrustumRadius
  30. #endif
  31. #endif