Aaron Franke
2eb8a9749e
[Core] Move Rect2 and Transform2D to their own files
...
Math2D includes Transform2D, which includes Rect2, which includes Vector2.
2018-08-10 23:40:50 -05:00
Aaron Franke
9170d932e3
[Core] Grammar, move defs to defs
...
Math constant definitions belong in `math_defs.h`. Also, the grammer in these files really needed some updating.
2018-08-10 22:42:02 -05:00
Aaron Franke
28fc195339
[Core] Change math_2d includes to vector2 includes where relevant
2018-08-10 14:59:29 -05:00
Aaron Franke
9d1b5f4e3b
[Core] Move Vector2 to its own file
...
Makes 2D math code easier to read and makes Vector2 consistent with Vector3. In the future, we may move other things out of math_2d as well.
2018-08-10 14:59:29 -05:00
Marcelo Fernandez
da1f1619fe
Fix clang compile error
2018-08-09 08:50:06 -03:00
Juan Linietsky
a71a5fc0c3
Ability to pass custom variables to expression.
2018-08-08 17:47:51 -03:00
Juan Linietsky
934c641a15
-Add Expression class, used to evaluate expressions
...
-Added expression evaluation to EditorSpinSlider, fixes #20813 , fixes #18932
2018-08-08 17:35:23 -03:00
Rémi Verschelde
5c8919aac6
Merge pull request #18955 from tagcup/fix_set_scale
...
Removed incorrect Basis::set_scale().
2018-07-26 10:37:03 +02:00
Hein-Pieter van Braam
0e29f7974b
Reduce unnecessary COW on Vector by make writing explicit
...
This commit makes operator[] on Vector const and adds a write proxy to it. From
now on writes to Vectors need to happen through the .write proxy. So for
instance:
Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;
Failing to use the .write proxy will cause a compilation error.
In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.
_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
Wilson E. Alvarez
a22e746bc3
Removed unnecessary assignments
2018-07-24 09:51:03 +02:00
Max Hilbrunner
c538f2ff80
Merge pull request #19279 from aaronfranke/core-fposmod-fix
...
[Core] [Math] Fix fposmod() function
2018-07-05 00:35:46 +02:00
Max Hilbrunner
045944f83a
Merge pull request #19819 from MetaSaval/master
...
Change the neighbours vector to a set in AStar
2018-07-03 15:32:15 +02:00
Danny
9b60bb2c7c
Change the neighbours vector to a set in AStar
...
This fixes an issue where one could not disconnect two points that were connected more than once.
2018-06-27 22:36:38 -07:00
Juan Linietsky
ad4666f8e0
Merge pull request #19193 from tagcup/quat_norm
...
Fixed Basis -> Quat conversions, added a few safety checks.
2018-06-25 10:58:04 -03:00
Juan Linietsky
2365fe472b
Added auto triangle generation in blend space, using Delaunay.
2018-06-21 22:48:47 -03:00
JFonS
9cd1c20f6a
Polished 3D selection
2018-06-13 17:52:37 +02:00
Aaron Franke
eebe41b1b0
[Core] [Math] Fix fposmod() function
...
ffff
meth
2018-06-10 15:06:44 -05:00
Andrea Catania
0b7c4db5ee
Added functions to get trimesh info
2018-06-07 15:46:17 +02:00
Rémi Verschelde
43b7ebf0a0
Style: Apply clang-format (5.0) to some missed files
2018-05-31 09:00:37 +02:00
tagcup
9d41161596
Fixed Basis -> Quat conversions, added a few safety checks.
...
Fixes #19027 .
2018-05-27 14:15:47 -04:00
tagcup
1bba6eeeb9
Removed incorrect Basis::set_scale().
...
Also added a missing constructor in Basis, and fixed usage of inverse and affine inverse in Transform.
2018-05-17 19:39:04 -04:00
tagcup
ed7aadcd87
Add SLERP to Vector{2,3}, optimize Quat's Vector3 rotation.
...
Also even out Basis and Quat APIs a little.
2018-05-12 13:05:04 -04:00
Juan Linietsky
69a96ff4a6
Merge pull request #15943 from poke1024/geometry-line-line
...
Add Geometry::line_intersects_line_2d()
2018-05-07 17:54:33 -03:00
Alexander Alekseev
26963473a9
Vector3::round, Vector2::round & Vector2::ceil methods were added.
...
Now both structs (Vector2 & Vector3) have round, floor & ceil methods.
(see #18603 )
2018-05-04 12:43:50 +03:00
Rémi Verschelde
bf7ca623a6
Fix Coverity reports of uninitialized scalar variable
...
Fixes most current reports on Coverity Scan of uninitialized scalar
variable (CWE-457): https://cwe.mitre.org/data/definitions/457.html
These happen most of the time (in our code) when instanciating structs
without a constructor (or with an incomplete one), and later returning
the instance. This is sometimes intended though, as some parameters are
only used in some situations and should not be double-initialized for
performance reasons (e.g. `constant` in ShaderLanguage::Token).
2018-04-19 15:20:45 +02:00
tagcup
a5e0bb447c
Avoid converting Quat to Euler angles when not necessary.
...
Also ensure that get_scale doesn't arbitrarlity change the signs of scales, ensuring that the combination of get_rotation and get_scale gives the correct basis.
Added various missing functions and constructors.
Should close #17968 .
2018-04-14 15:53:25 -04:00
Chaosus
ac4c340a45
Small performance fix to wrapf
2018-04-13 13:50:17 +03:00
Crazy-P
ae7a9df292
Resolves Inccorect Quaternion Conversion
...
Fixes https://github.com/godotengine/godot/issues/18025
2018-04-09 14:48:03 +08:00
Juan Linietsky
cef01f1f49
Merge pull request #16495 from Chaosus/is_point_in_triangle_fix
...
Fix is_point_in_triangle function
2018-04-08 18:18:19 -03:00
Marcelo Fernandez
bbd21c2203
Fix for clang warning at distance_to
2018-03-22 13:26:04 -03:00
Rémi Verschelde
b4da44981a
Merge pull request #17254 from Chaosus/updatewrap
...
Update wrap functions
2018-03-13 12:33:57 +01:00
Bernhard Liebl
9d7856620c
Bring back Vector2.cross()
2018-03-07 21:10:31 +01:00
Chaosus
70bb31a7b2
Update wrap functions
2018-03-06 10:34:37 +03:00
Nicolas Silva
e73266a51c
Allow degenerate triangles in polygon triangulation when necessary.
2018-02-28 22:46:56 -05:00
Chaosus
f2c22791ce
Fix is_point_in_triangle
2018-02-08 19:59:52 +03:00
Nicolas Silva
91215e1919
Fix polygon triangulation failure.
...
The ear clipping algorithm used to triangulate polygons has a slightly too conservative point-in-triangle test which can, in some configurations prevent it from finding a possible tessellation. Relaxing the test by considering that points exactly on edges don't belong the triangle fixes the issue. Changing the semantic of the test is safe because no other code makes use of it. A more detailed explanation can be found in issue #16395 .
Fixes #16395 .
2018-02-05 16:01:24 +01:00
Bernhard Liebl
c1e099b48f
Add Geometry::line_intersects_line_2d()
2018-01-21 15:31:34 +01:00
Rémi Verschelde
9f479f096c
Fix typos in code and docs with codespell
...
Using v1.11.0 from https://github.com/lucasdemarchi/codespell
2018-01-18 22:01:42 +01:00
Rémi Verschelde
e4213e66b2
Add missing copyright headers and fix formatting
...
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
2018-01-05 01:22:23 +01:00
Rémi Verschelde
459ee51338
Merge pull request #15093 from poke1024/canvas-editor-select
...
More exact picking for canvas editor
2018-01-03 11:15:28 +01:00
Juan Linietsky
14772d2213
Merge pull request #15083 from tagcup/spatial_rot_fix
...
Restore the behavior of Spatial rotations recently changed in c1153f5
.
2018-01-02 15:02:19 -03:00
Rémi Verschelde
b50a9114b1
Update copyright statements to 2018
...
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
Noshyaar
8dcc28254c
Merge pull request #15091 from poke1024/fix-rect2-distance-to
...
Fix Rect2::distance_to() not returning 0
2018-01-01 18:37:46 +07:00
tagcup
e9896b17a9
Restore the behavior of Spatial rotations recently changed in c1153f5
.
...
That change was borne out of a confusion regarding the meaning of "local" in #14569 .
Affine transformations in Spatial simply correspond to affine operations of its Transform. Such operations take place in a coordinate system that is defined by the parent Spatial. When there is no parent, they correspond to operations in the global coordinate system.
This coordinate system, which is relative to the parent, has been referred to as the local coordinate system in the docs so far, but this sloppy language has apparently confused some users, making them think that the local coordinate system refers to the one whose axes are "painted" on the Spatial node itself.
To avoid such conceptual conflations and misunderstandings in the future, the parent-relative local system is now referred to as "parent-local", and the object-relative local system is called "object-local" in the docs.
This commit adds the functionality "requested" in #14569 , not by changing how rotate/scale/translate works, but by adding new rotate_object_local, scale_object_local and translate_object_local functions. Also, for completeness, there is now global_scale.
This commit also updates another part of the docs regarding the rotation property of Spatial, which also leads to confusion among some users.
2017-12-27 16:40:49 -05:00
Bernhard Liebl
8505871a87
More exact picking for canvas editor
2017-12-27 20:24:58 +01:00
Bernhard Liebl
41c11894f1
Fix Rect2::distance_to() not returning 0
2017-12-27 09:56:52 +01:00
Noshyaar
de2247b9b4
Merge pull request #15045 from poke1024/vector2-inline
...
Inline some very common Vector2 operations
2017-12-27 10:25:08 +07:00
Juan Linietsky
c1153f5041
Change the rotate function of Spatial to be local, makes more sense. Closes #14569
2017-12-26 12:45:56 -03:00
Bernhard Liebl
517227943f
Inline some very common Vector2 operations
2017-12-25 15:58:14 +01:00
Poommetee Ketson
6c897707ca
Add missing parameter names
2017-12-25 21:19:56 +07:00
Gilles Roudiere
71f5e17680
Fixes grow_margin not working at all
2017-12-21 23:53:31 +01:00
Rémi Verschelde
2b41afb30e
Fix wrong return value in some virtual method bindings
2017-12-10 15:34:08 +01:00
Rémi Verschelde
41e3592041
Merge pull request #13347 from Noshyaar/hang_in_there
...
Rect2: add function returning same rect with positive w and h
2017-12-09 18:08:09 +01:00
Rémi Verschelde
13c2ff9320
Style: Apply new clang-format 5.0 style to all files
2017-12-07 08:02:00 +01:00
Rémi Verschelde
d5ca9e2f6f
Style: Apply clang-format again on all files
...
Fixes issues introduced by newer clang-format versions or commits
pushed directly without using the clang-format pre-commit hook.
2017-12-07 08:02:00 +01:00
Bastiaan Olij
4f9dac5bb1
Forgot to apply oversampling to Y
2017-12-03 22:32:42 +11:00
Poommetee Ketson
5c9be411eb
Rect2: add function returning same rect with positive w and h
2017-11-28 00:41:29 +07:00
Ferenc Arn
d28763a4c1
Rename Rect3 to AABB.
...
Fixes #12973 .
2017-11-17 11:01:41 -05:00
Goutte
91ca725f9b
Add support for the TAU constant. Fixes #12094 .
2017-11-12 13:32:35 +01:00
Rémi Verschelde
ed57f0a0d4
Remove get_default_video_mode definition on OSX/iOS
...
It had been missed in d09160a8b6
and broke compilation
for those platforms.
Took the opportunity to run clang-format on the code base to fix some corner cases
that went through our static tests/were overlooked recently.
2017-11-09 23:36:08 +01:00
DmDerbin
4c79e58e3f
AStar: implementation of get_point_connections
2017-11-04 11:21:03 +03:00
Rémi Verschelde
ea0e942617
Merge pull request #12035 from Chaosus/wrapfunc
...
Added new Wrap functions for numbers
2017-10-31 23:30:50 +01:00
Rémi Verschelde
cb3f594b14
Merge pull request #11249 from m4nu3lf/bugfix/get_euler
...
Fix inertia tensor update & Generic6DOFJoint & Simplify Basis::get_euler()
2017-10-31 23:03:01 +01:00
Unknown
9b4c5989ad
AStar: Add setters for point position and scale weight, cleanup
2017-10-27 19:19:01 +02:00
Robert Hernandez
794407e7b6
Fixed memory leak with AStar class
2017-10-22 18:37:02 -04:00
Rémi Verschelde
99c8a8c7b1
Merge pull request #11401 from SaracenOne/snapped_drag
...
Added snapping to spatial drag and drop.
2017-10-22 12:06:00 +02:00
Chaosus
216a8aa643
Added new wrap functions
2017-10-13 11:10:45 +03:00
Ferenc Arn
8861cc40fa
Added Basis::get_quat() and set_quat().
2017-10-11 16:56:47 -04:00
m4nu3lf
3df217b1a1
Fix Basis::get_euler_xyz()
2017-09-22 20:19:11 +01:00
Rémi Verschelde
e3617cb187
Merge pull request #11409 from MarufSarker/PR-core-math-is_nan
...
Verbose and Platform-specific implementation for is_nan
2017-09-20 14:29:01 +02:00
letheed
5ad9be4c24
Rename pos to position in user facing methods and variables
...
Rename user facing methods and variables as well as the corresponding
C++ methods according to the folloming changes:
* pos -> position
* rot -> rotation
* loc -> location
C++ variables are left as is.
2017-09-20 13:11:10 +02:00
ABU MD. MARUF SARKER
7744bb153f
verbose and platform specific implementation for is_nan
2017-09-20 08:20:08 +06:00
SaracenOne
2e22c07f42
Added snapping to spatial drag and drop.
2017-09-20 01:54:01 +01:00
Indah Sylvia
13b630eb0c
Fixed Typo: 'Seperate' to 'Separate'
2017-09-19 15:51:00 +07:00
Rémi Verschelde
26017499a5
Merge pull request #11049 from scayze/astar_get_points
...
Add get_points() method to AStar
2017-09-12 14:07:06 +02:00
Rémi Verschelde
aabbd00284
Merge pull request #10908 from hpvb/fix-unused-variables
...
Fix unused variable warnings
2017-09-12 12:55:53 +02:00
Hein-Pieter van Braam
b2a38854fd
Fix unused variable warnings
...
The forth in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-08 15:03:53 +02:00
Hein-Pieter van Braam
5e18967d77
Fix serveral recent new clang-format errors
2017-09-08 00:20:16 +02:00
Juan Linietsky
eedb39091a
Several fixes to directional shadows, closes #10926
...
Added option to change directional light range mode, between optimized and stable. For Orthogonal, you might need to use optimized.
2017-09-07 18:00:47 -03:00
Scayze
6872cc7b12
Add get_points method to AStar
2017-09-07 19:15:46 +02:00
Juan Linietsky
6d233c651b
-Changed KinematicBody API yet again to make it friendlier
...
-Fixed get_scale functions (and added set_scale) to make it more coherent when decomposing and composing (fixes bugs in transform interpolation)
2017-09-04 07:49:42 -03:00
Hein-Pieter van Braam
9c63ab99f0
Fix use of unitialized variables
...
The second in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-02 01:59:26 +02:00
Rémi Verschelde
dac150108a
Merge pull request #10846 from hpvb/fix-sign-compare
...
Fix signed and unsigned comparisons
2017-09-01 21:52:55 +02:00
Poommetee Ketson
ed606ded52
Fix files header
2017-09-01 21:07:55 +07:00
Hein-Pieter van Braam
f9467ec1ea
Fix signed and unsigned comparisons
...
The first in my quest to make Godot 3.x compile with -Werror on GCC7
2017-09-01 08:13:12 +02:00
Ferenc Arn
5ad8d310f2
Add a new decomposition to Basis.
...
This new decomposition splits the basis into a rotation-reflection matrix and a positive scaling matrix, which is required for physics calculations.
2017-08-30 09:37:18 -04:00
Ferenc Arn
a0bbf5c9af
Remove Basis::set_scale and Basis::set_rotation_* functions.
...
Those functions were added in #8277 but they did more harm than good. They're subtle, don't do what people think and requires users to understand the non-uniqueness of polar decomposition. They ended up confusing people.
Until we store additional information enough to make a unique polar decomposition, these functions shouldn't be a part of Basis.
2017-08-29 21:47:59 -04:00
Rémi Verschelde
7ad14e7a3e
Dead code tells no tales
2017-08-27 22:13:45 +02:00
Rémi Verschelde
bd282ff43f
Use HTTPS URL for Godot's website in the headers
2017-08-27 14:16:55 +02:00
Rémi Verschelde
92410df24c
Merge pull request #10415 from tagcup/euler_hack
...
Fix incorrect workaround for pure Y (X) rotations in XYZ (YXZ) conven…
2017-08-22 00:54:39 +02:00
Rémi Verschelde
135027a2f6
Merge pull request #10225 from Noshyaar/map
...
GDScript Built-in: add inverse_lerp & range_lerp
2017-08-22 00:31:46 +02:00
Juan Linietsky
72be8876ea
Properly manage drawing of primitives when they lack an area, fixes #8930
2017-08-18 15:12:48 -03:00
Poommetee Ketson
d28da86f9f
GDScript Built-in: add inverse_lerp & range_lerp
2017-08-18 21:49:03 +07:00
Ferenc Arn
94aa4092f5
Fix incorrect workaround for pure Y (X) rotations in XYZ (YXZ) convention.
...
Fixes #10352 .
2017-08-18 01:45:36 -04:00
Marcelo Fernandez
eab850524e
Add closest_power_of_2 func and implement mix_rate/latency on OS X
2017-08-17 19:51:13 -03:00
Rémi Verschelde
a8a6082dc0
Merge pull request #8899 from toger5/BetterFlatStylebox
...
Better flat stylebox with rounded corners
2017-08-16 18:15:04 +02:00
TwistedTwigleg
00f6c85928
Synchronize parameter names in definition and declaration
...
Fixes #10244 .
2017-08-16 17:22:23 +02:00
Rémi Verschelde
035d74f54a
Rename cull_AABB to cull_aabb
...
Part of #8830 .
2017-08-16 17:01:05 +02:00
toger5
c39ac8650d
Added Corner Enum
2017-08-15 19:36:34 +02:00
Wilson E. Alvarez
21d281c4a9
Use const reference where favorable
2017-08-14 13:28:06 -04:00