summaryrefslogtreecommitdiffstats
path: root/servers/physics_3d/joints
Commit message (Collapse)AuthorAgeFilesLines
* Move Godot Physics 3D into a module; add dummy 3D physics serverRicardo Buring2024-09-2112-3196/+0
| | | | | | | | | | | | If the module is enabled (default), 3D physics works as it did before. If the module is disabled and no other 3D physics server is registered (via a module or GDExtension), then we fall back to a dummy implementation which effectively disables 3D physics functionality (and a warning is printed). The dummy 3D physics server can also be selected explicitly, in which case no warning is printed.
* Remove unnecessary `this->` expressionsA Thousand Ships2024-01-292-6/+6
|
* Single Compilation Unit build.lawnjelly2023-06-063-85/+0
| | | | | Adds support for simple SCU build (DEV_ENABLED only). This speeds up compilation by compiling multiple cpp files within a single translation unit.
* One Copyright Update to rule them allRémi Verschelde2023-01-0511-319/+319
| | | | | | | | | | | | | | | | | | | | As many open source projects have started doing it, we're removing the current year from the copyright notice, so that we don't need to bump it every year. It seems like only the first year of publication is technically relevant for copyright notices, and even that seems to be something that many companies stopped listing altogether (in a version controlled codebase, the commits are a much better source of date of publication than a hardcoded copyright statement). We also now list Godot Engine contributors first as we're collectively the current maintainers of the project, and we clarify that the "exclusive" copyright of the co-founders covers the timespan before opensourcing (their further contributions are included as part of Godot Engine contributors). Also fixed "cf." Frenchism - it's meant as "refer to / see".
* Move EulerOrder enum to math_defs.h and global scopeAaron Franke2022-11-021-1/+1
|
* Style: Cleanup header guards for consistencyRémi Verschelde2022-09-266-18/+18
| | | | Fix file names for {Static,Lightmap}RaycasterEmbree.
* Rename Basis get_axis to get_column, remove redundant methodsAaron Franke2022-05-034-35/+35
|
* Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde2022-02-161-5/+1
| | | | | Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
* Update copyright statements to 2022Rémi Verschelde2022-01-0311-22/+22
| | | | Happy new year to the wonderful Godot community!
* clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde2021-10-281-10/+10
| | | | All reviewed manually and occasionally rewritten to avoid bad auto formatting.
* clang-format: Disable alignment of operands, too unreliableRémi Verschelde2021-10-285-88/+108
| | | | | | | | | Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
* Refactored Node3D rotation modesreduz2021-10-251-1/+1
| | | | | | | | | * Made the Basis euler orders indexed via enum. * Node3D has a new rotation_order property to choose Euler rotation order. * Node3D has also a rotation_mode property to choose between Euler, Quaternion and Basis Exposing these modes as well as the order makes Godot a lot friendlier for animators, which can choose the best way to interpolate rotations. The new *Basis* mode makes the (exposed) transform property obsolete, so it was removed (can still be accessed by code of course).
* Rename Godot Physics classes from *SW to Godot*PouleyKetchoupp2021-10-1811-234/+206
| | | | | Also moved MT physics server wrappers to the main servers folder, since they don't have to be implementation specific.
* Initialize variables in servers/physicsqarmin2021-09-1510-225/+109
|
* Revert some URLs from the "Replace HTTP URLs with HTTPS" PRAaron Franke2021-09-139-9/+9
|
* Replace HTTP links with HTTPS for sites with HTTPS versionsAaron Franke2021-08-229-9/+9
|
* Fix various typos with codespellluz paz2021-07-252-3/+3
| | | | Found via `codespell -q 3 -S ./thirdparty,*.po,./DONORS.md -L ackward,ang,ans,ba,beng,cas,childs,childrens,dof,doubleclick,fave,findn,hist,inout,leapyear,lod,nd,numer,ois,ony,paket,seeked,sinc,switchs,te,uint`
* Style: Cleanup uses of double spaces between wordsRémi Verschelde2021-06-071-3/+3
| | | | | Or after punctuation. Tried to leave third-party stuff alone, unless it has been heavily modified for Godot.
* Rename Quat to QuaternionMarcel Admiraal2021-06-042-2/+2
|
* Rename files and the exposed name for Transform3DAaron Franke2021-06-031-1/+1
|
* Rename Transform to Transform3D in coreAaron Franke2021-06-038-32/+32
|
* Godot Physics collisions and solver processed on threadsPouleyKetchoupp2021-04-2610-53/+129
| | | | | | | | | | | | | | | | | | Use ThreadWorkPool to process physics step tasks in multiple threads. Collisions are all processed in parallel and solving impulses is processed in parallel for rigid body islands. Additional changes: - Proper islands for soft bodies linked to active bodies - All moving areas are on separate islands (can be parallelized) - Fix inconsistencies with body islands (Kinematic bodies could link bodies together or not depending on the processing order) - Completely prevent static bodies to be active (it could cause islands to be wrongly created and cause dangerous multi-threading operations as well as inconsistencies in created islands) - Apply impulses only on dynamic bodies to avoid unsafe multi-threaded operations (static bodies can be on multiple islands) - Removed inverted iterations when populating body islands, it's now faster in regular order (maybe after fixing inconsistencies)
* Fix errors related to joints setup with two non-dynamic bodiesPouleyKetchoupp2021-04-155-0/+20
|
* Make Servers truly Thread Safereduz2021-02-105-5/+5
| | | | | | | | | -Rendering server now uses a split RID allocate/initialize internally, this allows generating RIDs immediately but initialization to happen later on the proper thread (as rendering APIs generally requiere to call on the right thread). -RenderingServerWrapMT is no more, multithreading is done in RenderingServerDefault. -Some functions like texture or mesh creation, when renderer supports it, can register and return immediately (so no waiting for server API to flush, and saving staging and command buffer memory). -3D physics server changed to be made multithread friendly. -Added PhysicsServer3DWrapMT to use 3D physics server from multiple threads. -Disablet Bullet (too much effort to make multithread friendly, this needs to be fixed eventually).
* Merge pull request #37547 from aaronfranke/tauRémi Verschelde2021-02-011-3/+3
|\ | | | | Use Math_TAU and deg2rad/etc in more places and optimize code
| * Use Math_TAU and deg2rad/rad2deg in more places and optimize codeAaron Franke2021-01-091-3/+3
| |
* | CI: Update to clang-format 11 and apply ternary operator changesRémi Verschelde2021-01-121-2/+2
|/
* Update copyright statements to 2021Rémi Verschelde2021-01-0111-22/+22
| | | | | | | | | | | | | | 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 🎆
* Fix inconsistent Joint3DSW copy constructor and assignment declarationsMarcel Admiraal2020-12-071-28/+2
|
* Remove empty lines around braces with the formatting scriptAaron Franke2020-11-163-3/+0
|
* Refactor physics force and impulse codeAaron Franke2020-06-025-12/+12
|
* Style: Enforce braces around if blocks and loopsRémi Verschelde2020-05-142-8/+14
| | | | | Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
* Style: Enforce separation line between function definitionsRémi Verschelde2020-05-142-0/+4
| | | | | | | | | | | | | | | | | | | | | | | I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
* Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde2020-05-147-78/+0
| | | | | | | | | | | | | | Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
* Remove redundant void argument listsRémi Verschelde2020-05-144-12/+12
| | | | | Using clang-tidy's `modernize-redundant-void-arg`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-redundant-void-arg.html
* Enforce use of bool literals instead of integersRémi Verschelde2020-05-141-1/+1
| | | | | Using clang-tidy's `modernize-use-bool-literals`. https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-bool-literals.html
* Port member initialization from constructor to declaration (C++11)Rémi Verschelde2020-05-141-1/+1
| | | | | | | | | | Using `clang-tidy`'s `modernize-use-default-member-init` check and manual review of the changes, and some extra manual changes that `clang-tidy` failed to do. Also went manually through all of `core` to find occurrences that `clang-tidy` couldn't handle, especially all initializations done in a constructor without using initializer lists.
* Style: clang-format: Disable AllowShortCaseLabelsOnASingleLineRémi Verschelde2020-05-105-86/+203
| | | | Part of #33027.
* Style: clang-format: Disable AllowShortIfStatementsOnASingleLineRémi Verschelde2020-05-101-2/+4
| | | | | | | Part of #33027, also discussed in #29848. Enforcing the use of brackets even on single line statements would be preferred, but `clang-format` doesn't have this functionality yet.
* Rename "GodotPhysics" to "GodotPhysics{2D,3D}"WARIO-MDMA2020-04-091-22/+22
|
* SCons: Format buildsystem files with psf/blackRémi Verschelde2020-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | | Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
* More server renames for consistency after #37361Rémi Verschelde2020-03-2811-11/+11
|
* Renaming of servers for coherency.Juan Linietsky2020-03-2712-0/+3291
VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.