summaryrefslogtreecommitdiff
path: root/core/math
AgeCommit message (Collapse)Author
2021-05-29BVH - fix stale current_tree in deactivate function [4.x]lawnjelly
Changes passing of current_tree from a member variable to a function argument, making bugs due to stale state less likely. Fix a bug in deactivate where current_tree variable was stale. This may have resulted in visual anomalies.
2021-05-22Replace QuickHull with Bullet's convex hull computer.Morris Tabor
The code is based on the current version of thirdparty/vhacd and modified to use Godot's types and code style. Additional changes: - extended PagedAllocator to allow leaked objects - applied patch from https://github.com/bulletphysics/bullet3/pull/3037
2021-05-21Merge pull request #48903 from Calinou/math-funcs-remove-old-msvc-ifdefRémi Verschelde
2021-05-20Remove `#ifdef` catering to MSVC 2012 and earlier in `math_funcs.h`Hugo Locurcio
For the `master` branch, the minimum supported MSVC version is now MSVC 2017 (with MSVC 2019 being recommended).
2021-05-20Merge pull request #48887 from aaronfranke/roundRémi Verschelde
Use global scope round method for rounding
2021-05-20Use global scope round method for roundingAaron Franke
2021-05-20Make is_equal_approx have explicit float and double versionsAaron Franke
2021-05-19Fix Quat includesMarcel Admiraal
2021-05-10Dynamic BVH broadphase in 2D & 3D Godot PhysicsPouleyKetchoupp
Port lawnjelly's dynamic BVH implementation from 3.x to be used in both 2D and 3D broadphases. Removed alternative broadphase implementations which are not meant to be used anymore since they are much slower. Includes changes in Rect2, Vector2, Vector3 that help with the template implementation of the dynamic BVH by uniformizing the interface between 2D and 3D math. Co-authored-by: lawnjelly <lawnjelly@gmail.com>
2021-05-07Merge pull request #48535 from groud/tiles_squashedRémi Verschelde
TileSet and TileMap rework (squashed)
2021-05-07Rework the TileSet resource and TileMap nodes:Gilles Roudière
- Move most properties from TileMap to TileSet, - Make TileSet more flexible, supporting more feature (several collision layers, etc...), - Fusion both the TileMap and TileSet editor, - Implement TileSetSources, and thus a new way to index tiles in the TileSet, - Rework the TileSet and TileMap editors completely, - Implement an editor zoom widget (and use it in several places)
2021-05-07Merge pull request #45144 from dalexeev/color-constsRémi Verschelde
Rename color constants (alternative)
2021-05-04Re-bind posmod, use int64_t instead of intRémi Verschelde
Fixes #48420, fixes #48421. The binding was missed when moving GDScript built-in to Global Scope it seems. Co-authored-by: kleonc <9283098+kleonc@users.noreply.github.com>
2021-05-03Cast Unix time to uint in the randomize functionGeorge Marques
This returns a double while the other values are all uint64_t. The clang compiler gives a warning since converting the constant to double loses precision.
2021-04-28Fix area calculation of Face3Pasi Nuutinmaki
There seemed to be a bug in area calculation in Face3::get_area()-function. It returned the area of "imaginary" parallelogram instead of the triangle. Therefore the area returned was twice the real area. This manifested itself when using a hydro module for godot ( https://gitlab.com/ringtechsolutions/godot-tools/hydro/hydro ) causing the buoyancy to be two times the expected value. "Reference": http://www.maths.usyd.edu.au/u/MOW/vectors/vectors-11/v-11-7.html
2021-04-28Merge pull request #48239 from akien-mga/goodbye-copymemRémi Verschelde
Core: Drop custom `copymem`/`zeromem` defines
2021-04-27Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde
We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
2021-04-23Implement occlusion cullingjfons
Added an occlusion culling system with support for static occluder meshes. It can be enabled via `Project Settings > Rendering > Occlusion Culling > Use Occlusion Culling`. Occluders are defined via the new `Occluder3D` resource and instanced using the new `OccluderInstance3D` node. The occluders can also be automatically baked from a scene using the built-in editor plugin.
2021-04-22Make randomize() use unix time tookobewi
2021-04-09Fix `Color::get_{r,g,b,a}8`Danil Alexeev
Closes #47022.
2021-04-05Style: Apply clang-tidy's `readability-braces-around-statements`Rémi Verschelde
2021-04-05Style: Apply clang-tidy's `modernize-use-nullptr`Rémi Verschelde
2021-03-29Fix Quat multiplicationrafallus
x, y, z values were updated too early
2021-03-12Fixes small typos and grammar correctionAnshul7sp1
2021-02-25Make Color::from_hsv use Color::set_hsvkleonc
2021-02-24Geometry2D::make_atlas Fail is passed invalid rect sizekleonc
2021-02-22Fix unchecked array access in build_*_planesDelf Neumärker
2021-02-16Use Vector3.UP as a default value for look_at's up vectorAaron Franke
2021-02-16Added signed_angle_to for Vector3JestemStefan
2021-02-10Cylinder support in Godot Physics 3DPouleyKetchoupp
Cylinder collision detection uses a mix of SAT and GJKEPA. GJKEPA is used to find the best separation axis in cases where finding it analytically is too complex. Changes in SAT solver: Added support for generating separation axes for cylinder shape. Added support for generating contact points with circle feature. Changes in GJKEPA solver: Updated from latest Bullet version which includes EPA fixes in some scenarios. Setting a lower EPA_ACCURACY to fix accuracy problems with cylinder vs. cylinder in some cases.
2021-02-03Merge pull request #45658 from RandomShaper/fix_frozen_peakRémi Verschelde
Make audio bus channels' peak volume consistent
2021-02-02Make audio bus channels' peak volume consistentPedro J. Estébanez
Channels that are inactive -or when playback has not started yet- will report -200 dB as their peak value (which is also the lowest value possible during playback).
2021-02-01Replace ColorN and from HTML with a string constructorAaron Franke
2021-02-01Merge pull request #37547 from aaronfranke/tauRémi Verschelde
Use Math_TAU and deg2rad/etc in more places and optimize code
2021-01-26Type consistencies in coreAaron Franke
2021-01-26Merge pull request #45373 from aaronfranke/gdnative-sizeofGeorge Marques
Define GDNative sizes using sizeof(godot_real) and sizeof(int32_t)
2021-01-26Rename color constants (alternative)Danil Alexeev
Named color constants renamed to UPPERCASE. Unlike #41019, this PR is complete and implements these changes in the simplest way possible. Co-authored-by: Shivam Mukherjee <mshivam98@gmail.com>
2021-01-26Remove Quat set methods in favour of constructorsMarcel Admiraal
2021-01-25Define GDNative sizes using sizeof(godot_real_t) and sizeof(int32_t)Aaron Franke
2021-01-20Merge pull request #45023 from reduz/optimize-shader-vgpr1Rémi Verschelde
Shader optimizations to reduce VGPR usage and increase occupancy
2021-01-19Added GPU based cluster builderreduz
Clustering is now GPU based, uses an implementation based on the Activision algorithm.
2021-01-19Remove useless "else" statements from vector3.hPouleyKetchoupp
2021-01-13Merge pull request #45136 from akien-mga/clang-format-11Rémi Verschelde
CI: Update to clang-format 11 and apply ternary operator changes
2021-01-12Update PolyPartition / Triangulator libraryAaron Franke
2021-01-12CI: Update to clang-format 11 and apply ternary operator changesRémi Verschelde
2021-01-09Use Math_TAU and deg2rad/rad2deg in more places and optimize codeAaron Franke
2021-01-08Merge pull request #35505 from dalexeev/rtl_colorsRémi Verschelde
Unified named colors in RichTextLabel
2021-01-03Fix xform_inv of Plane, intermediate results were ignoredMai Lavelle
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-30Added Geometry2D unit testsMarcus Brummer