diff options
| author | jussi | 2025-06-02 20:49:51 +0300 |
|---|---|---|
| committer | jussi | 2025-06-02 20:49:51 +0300 |
| commit | 5b8af05e96b33f2d032cc31a329b89e1231d5502 (patch) | |
| tree | 9ea0f70bae6c77cfc0edeb3f4b0b11fa9fb6be94 /include | |
| parent | e26bb8603c5a4053f2790fc7d6ce02b3179f5289 (diff) | |
| download | reilua-enhanced-5b8af05e96b33f2d032cc31a329b89e1231d5502.tar.gz reilua-enhanced-5b8af05e96b33f2d032cc31a329b89e1231d5502.tar.bz2 reilua-enhanced-5b8af05e96b33f2d032cc31a329b89e1231d5502.zip | |
Frustum math from raylib extras.
Diffstat (limited to 'include')
| -rw-r--r-- | include/frustum.h | 62 | ||||
| -rw-r--r-- | include/rmath.h | 5 |
2 files changed, 67 insertions, 0 deletions
diff --git a/include/frustum.h b/include/frustum.h new file mode 100644 index 0000000..370074c --- /dev/null +++ b/include/frustum.h @@ -0,0 +1,62 @@ +/********************************************************************************************** +* +* raylibExtras * Utilities and Shared Components for Raylib +* +* RLSprite * Simple Sprite Managment System for Raylib +* +* LICENSE: MIT +* +* Copyright (c) 2020 Jeffery Myers +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all +* copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +* SOFTWARE. +* +**********************************************************************************************/ + +#pragma once +#ifndef FRUSTUM_H +#define FRUSTUM_H + +#include "raylib.h" +#include "raymath.h" +#include "frustum.h" + +typedef enum +{ + Back = 0, + Front = 1, + Bottom = 2, + Top = 3, + Right = 4, + Left = 5, + MAX = 6 +}FrustumPlanes; + +typedef struct +{ + Vector4 Planes[6]; +}Frustum; + +// RLAPI void ExtractFrustum(Frustum* frustrum); +RLAPI void ExtractFrustum(Frustum* frustum, Matrix projection, Matrix modelview); +RLAPI bool PointInFrustumV(Frustum* frustrum, Vector3 position); +RLAPI bool SphereInFrustumV(Frustum* frustrum, Vector3 position, float radius); + +RLAPI bool AABBoxInFrustum(Frustum* frustrum, Vector3 min, Vector3 max); + +#endif //FRUSTUM_H diff --git a/include/rmath.h b/include/rmath.h index 20c4049..7b96f14 100644 --- a/include/rmath.h +++ b/include/rmath.h @@ -152,3 +152,8 @@ int lmathQuaternionFromEuler( lua_State* L ); int lmathQuaternionToEuler( lua_State* L ); int lmathQuaternionTransform( lua_State* L ); int lmathQuaternionEquals( lua_State* L ); +/* Frustum */ +int lmathExtractFrustum( lua_State* L ); +int lmathPointInFrustum( lua_State* L ); +int lmathSphereInFrustum( lua_State* L ); +int lmathAABBInFrustum( lua_State* L ); |
