Commit Graph

100 Commits

Author SHA1 Message Date
Ray 3e1cd487df Remove trailing spaces 2020-11-03 23:47:33 +01:00
Ray a4ea9f872f Review "aggregate initializations" #1403 2020-10-05 20:04:33 +02:00
Daniel-Junior Dubé a8685ee4fd Add Vector2Reflect to raymath.h (#1400)
Vector3Reflect exists but not Vector2Reflect. The code is pretty much the same.
I'm not sure what RMDEF does, but I added it to match other function definitions (haven't done much C programming, maybe I'm missing something). Can someone explain to me what it does?
2020-10-04 12:12:52 +02:00
seanpringle 4bcddc3b15 [wip] rlDrawMeshInstanced (#1318)
* rlDrawMeshInstanced first attempt

* rlDrawMeshInstanced OpenGL 3.3 and VAO checks

* rlDrawMeshInstanced GetShaderAttribLocation; comments

* example instanced shader

* RLGL_STANDALONE RAYMATH_STANDALONE Vector4

* apply suggested naming changes; add instanced mesh example

* remove orphan variables
2020-09-27 10:29:05 +02:00
raysan5 05cdaf7d01 MOVED: rlUnproject() [rlgl] -> Vector3Unproject() [raymath] 2020-09-01 21:08:45 +02:00
raysan5 d0ebeb1713 Reorder some functions 2020-08-23 21:18:39 +02:00
raysan5 ea832628c4 Review last PR formatting to follow raylib standards 2020-08-23 21:10:59 +02:00
chriscamacho d140dc81c0 work on quat and matrix math - deleted multiple copies of raymath.h causing issues (#1359)
Co-authored-by: codifies <nospam@antispam.com>
2020-08-23 21:01:26 +02:00
jvocaturo 6e84120b89 fix bug in QuaternionFromVector3ToVector3 (#1263) 2020-05-27 17:52:23 +02:00
Noor Wachid abb94bd2ff Adding Normalize and Remap functions (#1247)
* Adding Norm and Remap functions

// Normalize input value within input range
// Remap input value within input range to output range

* Rename Norm to Normalize

To make it uniforms with Raylib's functions

* Calculate Remap without other functions
2020-05-15 13:08:28 +02:00
ThePituLegend d14c51aa2a Introduced Vector2 and Vector3 Square Lenght. (#1248)
* Introduced Vector2 and Vector3 Square Lenght.

* Square length functions renamed
2020-05-14 22:31:58 +02:00
raysan5 b8055925bf Update raymath.h 2020-05-01 18:19:54 +02:00
raysan5 af744b07c3 Review latest PR formatting 2020-05-01 18:04:47 +02:00
Anata 4583987fb9 Add Vector2MoveTowards function (#1233) 2020-05-01 17:50:41 +02:00
G3bE 32387317bf Make raymath more consistent (#1197)
* Make raymath naming and functions more consistent

* Minor fixes

* Fix examples

* Fix Physac

* New naming rules

* Apply naming to Quaternion functions

* Apply to models.c

* Remove *MulitplyValue / *DivideValue
2020-04-13 16:32:45 +02:00
Valentin Lemière 41582f0448 Fix "variable is reassigned before use" linter warning on raymath.h (#1158) 2020-03-29 22:03:10 +02:00
i-right-i 3c2ee1cc75 Update raymath.h (#1118)
* Update raymath.h

Added Vector2Rotate Function.

* Update raymath.h
2020-03-02 10:22:08 +01:00
Ray 9b5a796213 Use float math functions 2020-02-26 20:20:52 +01:00
Ray b5fe41f41a Review libc dependencies and remove when possible
Just for clarification, no plans to remove libc dependency, just did some code analysis to see how much raylib depend on stardard C library. My conclusions:

 - stdlib.h: primary dependency is for malloc() and free()
 - stdio.h: primary dependency is for FILE access, maybe it could go through a custom ABI?
 - string.h: just around 8 functions required
 - math.h: just around 8 functions required
 - others: 1-2 functions required for some other headers
2020-02-04 16:55:24 +01:00
Ray fa0d5bbf9e Remove duplicate function 2020-01-23 21:12:50 +01:00
Ray d10ff78822 WARNING: Renamed Vector3Multiply() to Vector3Scale()
Renamed for consistency with Vecto2Scale()
Also renamed Vector3MultiplyV() to Vector3Multiply()
2020-01-23 21:10:12 +01:00
raysan5 21c30f43d4 Update year to 2020 2020-01-05 20:01:54 +01:00
chriscamacho 6f2f09947f addition to raylib to create matrix from 3 euler angles (#938) 2019-08-09 17:04:52 +02:00
Leandro Gabriel 89c16baf18 Replace tabs with spaces and update year of copyright notices (#927)
* Update year of copyright notices

* Fix mistake in comment

* Fix typo ("algorythms")

* Replace tabs with spaces

* Remove trailing whitespace and fix mistake in comment

* Fix ExportImageAsCode missing comment rectangle corner

* Replace tab with spaces

* Replace tabs with spaces
2019-08-03 11:07:41 +02:00
Ray d690e734f9 Merge pull request #799 from flashjaysan/master
Update raymath.h
2019-04-13 15:08:28 +02:00
flashjaysan 310d1d1589 Update raymath.h
Removed a useless semicolon.
2019-04-13 14:35:07 +02:00
Ray fc6f5a92f3 Reviewed functions definition 2018-10-24 22:24:59 +02:00
raysan5 cd6c362485 Corrected func name typo 2018-10-13 16:00:54 +02:00
Ray f32e23c11b Merge pull request #641 from ChrisDill/master
Added a few missing functions to raymath
2018-09-13 12:51:45 +02:00
ChrisDill 1e1bbaa40b Added a few missing functions to raymath
- Added Vector2MultiplyV
- Added Vector2DivideV
- Added Vector3Divide
- Added Vector3DivideV
2018-09-13 11:43:10 +01:00
Oğuzhan Çankaya 2bef76735d lerp for vector2 and float 2018-08-21 04:14:43 +03:00
ChrisDill c669c6762f Improved raymath defines
- Using raylib.h as reference, added define checks for BUILD_LIBTYPE_SHARED and USE_LIBTYPE_SHARED.
2018-08-16 18:20:49 +01:00
ChrisDill a187361c6f Raymath dllexport fix if _WIN32 defined
- Added check for dllexport to compile if _WIN32 defined.
- If not defined then use the original RMDEF.
2018-08-16 12:54:45 +01:00
ChrisDill 42b52ecdb1 Raymath dllexport fix
- Added __declspec(dllexport) to RMDEF in raymath.h. This allows them to be accessed when importing from raylib.dll.
2018-08-16 11:29:30 +01:00
Kim Kulling b2cac82fa0 Fix compiler warings in texture.c and more. 2018-08-05 00:34:35 +02:00
Kim Kulling ecf8bff4aa Fix compiler warnings, first part 2018-08-04 10:32:16 +02:00
Ray 7b971e0623 Added Quaternion typedef 2018-07-02 18:53:46 +02:00
Ray 7dedb84fd0 Added function: Vector3RotateByQuaternion()
Rotate a Vector3 by a Quaternion
2018-06-30 22:00:16 +02:00
Ray 0148432588 fabsf() not working with TCC
Replaced by fabs() that seem to work ok
2018-05-28 00:48:45 +02:00
raysan5 23e335d933 Implemented MeshTangents()
- Added Vector3OrthoNormalize() to raymath.h - not sure if it is correct
- Implemented MeshBinormals() - Mesh struct has not a place for them...
- Updated model_material_pbr example - tested but not working on my GPU
(old Intel HD), actually, it never worked on it...
2018-04-30 02:47:48 +02:00
Ahmad Fatoum 8b0fef6c34 raymath: Workaround tcc inline function limitation
Reported in #435, tcc generates out-of-line definitions for inline
symbols, something it shouldn't.  This fix punishes tcc for that
by making applications it compiles (slightly) larger...
2018-04-11 10:43:27 +02:00
Ray 61e0e4b4f3 Complete review of raymath for API consistency 2018-03-16 13:47:01 +01:00
Ray 9d8f15c19d Reviewed raymath changes 2018-03-15 12:37:23 +01:00
Ahmad Fatoum f52d2de582 raymath.h: Use C99 inline semantics
RAYMATH_EXTERN_INLINE was renamed to RAYMATH_HEADER_ONLY, which user code
may define if they want to use it as header-only library. If multiple
files in the same project define RAYMATH_HEADER_ONLY, they might each
have duplicate out-of-line definitions of the same functions.

By default, raymath.h exposes inline definitions, which instructs the
compiler _not_ to generate out-of-line definitons, if out-of-line
definitions are required, those of the file defined with
RAYLIB_IMPLEMENTATION are used instead. There may be only one such file.

In C++ mode, the compiler will select only one out-of-line definition
automatically, so no need to define a RAYLIB_IMPLEMENTATION.

Unfortunately, we have to remove raymath function declaration from
raylib.h as those declarations would lead to duplicate out-of-line
definitions which would yield linker errors. This problem didn't
exist with GNU89 or C++, because there multiple defintions are ok,
but in C99 they aren't.
2018-02-24 23:39:23 +01:00
Ahmad Fatoum ed6962edd3 Make MatrixToFloat and Vector3ToFloat reentrant
Besides making it thread-safe, it suppresses a GCC warning
when making them static inline in an upcoming patch.
2018-02-24 23:39:17 +01:00
Ahmad Fatoum a5881fb9cc Revert "raymath.h: Use C99 inline semantics"
This reverts commit 6ffc8cb799.
and commit e4d7bbec1e.
which I pushed by mistake...
2018-02-24 15:40:08 +01:00
Ahmad Fatoum 6ffc8cb799 raymath.h: Use C99 inline semantics
RAYMATH_EXTERN_INLINE was renamed to RAYMATH_HEADER_ONLY, which user code
may define if they want to use it as header-only library. If multiple
files in the same project define RAYMATH_HEADER_ONLY, they might each
have duplicate out-of-line definitions of the same functions.

By default, raymath.h exposes inline definitions, which instructs the
compiler _not_ to generate out-of-line definitons, if out-of-line
definitions are required, those of the file defined with
RAYLIB_IMPLEMENTATION are used instead. There may be only one such file.

In C++ mode, the compiler will select only one out-of-line definition
automatically, so no need to define a RAYLIB_IMPLEMENTATION.

Unfortunately, we have to remove raymath function declaration from
raylib.h as those declarations would lead to duplicate out-of-line
definitions which would yield linker errors. This problem didn't
exist with GNU89 or C++, because there multiple defintions are ok,
but in C99 they aren't.
2018-02-24 15:37:37 +01:00
Ahmad Fatoum e4d7bbec1e Make MatrixToFloat and Vector3ToFloat reentrant
Besides making it thread-safe, it suppresses a GCC warning
when making them static inline in an upcoming patch.
2018-02-24 15:37:37 +01:00
Ray San 53ad53d051 Manually review previous PR 2017-12-15 13:44:31 +01:00
user d51f382ef8 optimized matrixrotate function by removing identity matrix 2017-12-14 11:48:33 +01:00