summaryrefslogtreecommitdiff
path: root/core/math
AgeCommit message (Collapse)Author
2018-09-13Merge pull request #21982 from luzpaz/misc-typosRémi Verschelde
Misc. typos
2018-09-12Misc. typosluz.paz
Found via `codespell -q 3 -I ../godot-word-whitelist.txt --skip="./thirdparty,*.po"`
2018-09-12Make core/ includes absolute, remove subfolders from include pathRémi Verschelde
This allows more consistency in the manner we include core headers, where previously there would be a mix of absolute, relative and include path-dependent includes.
2018-08-29Add missing copyright headersRémi Verschelde
2018-08-27Merge pull request #21205 from KellyThomas/c-sharp-feature-parity-quatIgnacio Etcheverry
[Mono] Quat - add some missing constructors and methods
2018-08-24Make some debug prints verbose-only, remove othersRémi Verschelde
2018-08-24mono: Quat - add some missing constructors and methodsKelly Thomas
2018-08-23Merge pull request #21305 from Mr-Slurpy/expression-fixRémi Verschelde
Fixed bugs in expression class
2018-08-23Fixed bugs in expression classDaniel Eliasinski
2018-08-22[Mono] Vector2/3 Project methodsAaron Franke
2018-08-20Remove faces in in QuickHull::build() that we don't need anymoreHein-Pieter van Braam
We delete the faces for consideration in this loop but we can still sometimes find an edge that connects to this face. We now interate over all edges and disconnect edges connecting to this face. This fixes #16560 and fixes #17569
2018-08-16add project method to Vector2/3Thomas Herzog
2018-08-11[Core] Completely kill math_2d.h, change includesAaron Franke
2018-08-11[Core] Move Vector2i and Rect2i out of math_2d.hAaron Franke
2018-08-10[Core] Move Rect2 and Transform2D to their own filesAaron Franke
Math2D includes Transform2D, which includes Rect2, which includes Vector2.
2018-08-10[Core] Grammar, move defs to defsAaron Franke
Math constant definitions belong in `math_defs.h`. Also, the grammer in these files really needed some updating.
2018-08-10[Core] Change math_2d includes to vector2 includes where relevantAaron Franke
2018-08-10[Core] Move Vector2 to its own fileAaron Franke
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-09Fix clang compile errorMarcelo Fernandez
2018-08-08Ability to pass custom variables to expression.Juan Linietsky
2018-08-08-Add Expression class, used to evaluate expressionsJuan Linietsky
-Added expression evaluation to EditorSpinSlider, fixes #20813, fixes #18932
2018-07-26Merge pull request #18955 from tagcup/fix_set_scaleRémi Verschelde
Removed incorrect Basis::set_scale().
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
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-24Removed unnecessary assignmentsWilson E. Alvarez
2018-07-05Merge pull request #19279 from aaronfranke/core-fposmod-fixMax Hilbrunner
[Core] [Math] Fix fposmod() function
2018-07-03Merge pull request #19819 from MetaSaval/masterMax Hilbrunner
Change the neighbours vector to a set in AStar
2018-06-27Change the neighbours vector to a set in AStarDanny
This fixes an issue where one could not disconnect two points that were connected more than once.
2018-06-25Merge pull request #19193 from tagcup/quat_normJuan Linietsky
Fixed Basis -> Quat conversions, added a few safety checks.
2018-06-21Added auto triangle generation in blend space, using Delaunay.Juan Linietsky
2018-06-13Polished 3D selectionJFonS
2018-06-10[Core] [Math] Fix fposmod() functionAaron Franke
ffff meth
2018-06-07Added functions to get trimesh infoAndrea Catania
2018-05-31Style: Apply clang-format (5.0) to some missed filesRémi Verschelde
2018-05-27Fixed Basis -> Quat conversions, added a few safety checks.tagcup
Fixes #19027.
2018-05-17Removed incorrect Basis::set_scale().tagcup
Also added a missing constructor in Basis, and fixed usage of inverse and affine inverse in Transform.
2018-05-12Add SLERP to Vector{2,3}, optimize Quat's Vector3 rotation.tagcup
Also even out Basis and Quat APIs a little.
2018-05-07Merge pull request #15943 from poke1024/geometry-line-lineJuan Linietsky
Add Geometry::line_intersects_line_2d()
2018-05-04Vector3::round, Vector2::round & Vector2::ceil methods were added.Alexander Alekseev
Now both structs (Vector2 & Vector3) have round, floor & ceil methods. (see #18603)
2018-04-19Fix Coverity reports of uninitialized scalar variableRémi Verschelde
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-14Avoid converting Quat to Euler angles when not necessary.tagcup
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-13Small performance fix to wrapfChaosus
2018-04-09Resolves Inccorect Quaternion ConversionCrazy-P
Fixes https://github.com/godotengine/godot/issues/18025
2018-04-08Merge pull request #16495 from Chaosus/is_point_in_triangle_fixJuan Linietsky
Fix is_point_in_triangle function
2018-03-22Fix for clang warning at distance_toMarcelo Fernandez
2018-03-13Merge pull request #17254 from Chaosus/updatewrapRémi Verschelde
Update wrap functions
2018-03-07Bring back Vector2.cross()Bernhard Liebl
2018-03-06Update wrap functionsChaosus
2018-02-28Allow degenerate triangles in polygon triangulation when necessary.Nicolas Silva
2018-02-08Fix is_point_in_triangleChaosus
2018-02-05Fix polygon triangulation failure.Nicolas Silva
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.