Commit Graph

251 Commits

Author SHA1 Message Date
Random
0322fc28d4
optimized MatrixLookAt (#1442) 2020-11-29 10:08:22 +01:00
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
user
b5395b22cc make raymath compiling with msvc in c++ mode 2017-12-14 11:47:52 +01:00
Ray San
0cd327ccb2 Moved QuaternionNlerp() function 2017-12-04 11:03:45 +01:00
Michael Campagnaro
18bf0ac044 Fix typo in raymath.h 2017-08-23 22:55:43 -04:00
Ray
d071418cba Added Vector3MultiplyV()
To multiply Vector3 by Vector3
2017-07-28 20:58:38 +02:00
raysan5
b2712b6db7 Corrected issue on QuaternionFromVector3ToVector3() 2017-07-23 17:29:51 +02:00
raysan5
f57367e786 Implemented some changes 2017-07-23 13:20:35 +02:00
raysan5
3655c6e466 Renamed Vector*() functions to Vector3*()
For consistency!
2017-07-22 22:13:26 +02:00
raysan5
00d2768bc9 Corrected bug on MatrixPerspective()
Some other tweaks...
2017-07-22 10:35:49 +02:00
raysan5
c6cd07c373 Some tweaks raymath related 2017-07-21 17:46:44 +02:00
raysan5
e52032f646 Complete review of raymath
Now it should be coherent with OpenGL math standards
2017-07-21 17:19:28 +02:00
raysan5
38d9fcb08e Moved some functions to raymath
Exposed some raymath useful functions to raylib API
2017-07-21 15:25:35 +02:00
raysan5
84aff31973 MatrixPerspective() angle required in radians
Consistent with similar functions in raymath
2017-07-21 10:42:41 +02:00
Wilhem Barbier
056a494baf Fix some other typos 2017-06-29 10:36:58 +02:00
Wilhem Barbier
aba3739c13 Fix some typos in raymath.h 2017-06-29 10:30:21 +02:00
raysan5
402a8bfd68 Added note about transposing 2017-06-05 18:53:53 +02:00
raysan5
43cb6414f6 Added note about transposing 2017-06-05 18:53:37 +02:00
Ray
70a7c65668 Return angles as degrees 2017-05-04 17:41:51 +02:00
Ray
18b31f6792 Added two new functions to raymath 2017-05-04 00:35:41 +02:00
raysan5
f5894278b7 Added Vector2 math functions
Reviewed some Vector3 functions
Added auxiliary Clamp() function
2017-04-16 13:48:46 +02:00
Ray
59652c75b4 Review some comments 2017-03-20 20:34:44 +01:00
Ray
05cff44d0a Improved modules description -IN PROGRESS-
Working in modules configuration flags...
2017-02-16 00:50:02 +01:00
raysan5
658c280669 Lattest PR review
Function names, code formatting...
2017-01-05 19:33:05 +01:00
Joel Davis
d5d391faaf Added RaycastMesh function and example test case 2017-01-02 21:56:25 -08:00
Ray
377dcb025f Corrected some warnings 2016-12-05 01:14:18 +01:00
raysan5
c46c0fc652 Corrected keywords usage 2016-06-11 12:18:08 +02:00
raysan5
0bc71d84f8 Added functions to customize internal matrix
Internal modelview and projection matrices can be replaced before
drawing.
2016-06-02 20:23:09 +02:00
raysan5
5bcddca5e1 Remove useless stuff 2016-06-02 18:29:49 +02:00
raysan5
d17a0cee1a Review text formatting (spacing, tabs...) 2016-05-31 19:12:37 +02:00
raysan5
e060944b34 Added QuaternionInvert() 2016-05-12 13:02:04 +02:00
raysan5
4476a9e241 Review rlglUnproject() system 2016-03-02 17:13:31 +01:00
Ray
df5c64d0be Functions parameters reorganize: Axis and Angle
sin(), cos() functions cached and replaced by float c99 versions sinf(),
cos()
2016-02-02 18:41:01 +01:00
raysan5
3113a20390 Added bounding box calculation 2016-01-25 11:12:31 +01:00
raysan5
882e2abee1 Corrected bug 2016-01-21 12:24:12 +01:00
raysan5
efa1c96d19 Adapted raymath as single header library
Added support for single header implementation and also inline functions
support
2016-01-20 18:20:05 +01:00
Joshua Reisenauer
ae87a35f6e standalone raymath
look over for errors
2016-01-19 15:00:48 -08:00
raysan5
5e7686695f Review Light/Material system
Simplified for the user (more intuitive and clear)
Removed lighting module dependency
2016-01-11 13:29:55 +01:00
raysan5
94a1fdc2ae Updated some comments 2015-09-01 23:15:26 +02:00
raysan5
a7714c842f raymath module review and other changes
Complete review of matrix rotation math
Check compressed textures support
WIP: LoadImageFromData()
2015-05-11 00:15:46 +02:00
raysan5
a632a04a30 Big batch of changes! Check description:
Support multiple texture formats (uncompressed and compressed)
Postprocessing shaders support
Model struct redefined and improved
Extended loading functions for Textures and Models
Simplified functions: DrawPlane(), DrawQuad()
Deleted functions: DrawPlaneEx(), DrawGizmoEx()
Now Text module only depends on Textures module
Shapes: Reviewed functions to low lines/triangles usage
Removed useless tabs and spaces around code
2015-04-06 14:02:29 +02:00
Marc Palau
3cad094edd Changes integration (some WIP, view details)
Corrected GetMouseWheelMove()
Corrected camera system
Reviewed cubicmap resolution (collision detection)
Added QuaternionTransform()
WIP: Raycast system (not working)
WIP: Reviewing axis-angle rotations...
2015-03-02 20:52:58 +01:00
raysan5
905b6ec53d Added full support for HTML5 (emscripten)
Corrected some bugs on the way...
Automatically convert textures to POT on RPI and WEB
2014-12-31 18:03:32 +01:00
raysan5
d3cf316e40 Added features and corrected bugs...
[core] Added SetMousePosition()
[models] LoadHeightmap() - Corrected textures bug
[raymath] Functions renaming
[WEB] Prepare environment for emscripten!
2014-12-09 13:21:55 +01:00
Palaui
a2c8ddca13 Revert "Corrected some bugs..."
This reverts commit 29d8b48503.
2014-12-09 13:10:28 +01:00
Palaui
29d8b48503 Corrected some bugs...
[core] Added SetMousePosition()
[models] LoadHeightmap() - Corrected textures bug
[raymath] Functions renaming
[WEB] Prepare environment for emscripten!
2014-12-09 13:10:05 +01:00
raysan5
fc6081fe70 raylib 1.2
This is a huge update. Check CHANGELOG for details
2014-09-16 22:51:31 +02:00
raysan5
c56ef738ed Explicit define of functions prototypes
No-parameters functions use the prototype style FunctionName(void);
2014-09-03 17:06:10 +02:00
raysan5
d2b98fbb5c Removed useless spaces 2014-09-03 16:51:28 +02:00
raysan5
f06a15ac8b raylib 1.1
View CHANGELOG for a detailed list of changes
2014-04-19 16:36:49 +02:00
raysan5
96f520ff6d Road to raylib 1.1 - Testing rlgl 2014-03-25 12:40:35 +01:00
raysan5
174cd86d08 3D useful maths
Some useful functions to work with Vector3, Matrix and Quaternions
2014-03-02 16:03:25 +01:00