Commit graph

174 commits

Author SHA1 Message Date
Juan Linietsky 978505a90a
Merge pull request #20727 from muiroc/fix_sw_sat_table
fixed godotphysics sat dispatch table
2018-08-08 09:49:48 -03:00
Juan Linietsky 14fd797c53
Merge pull request #20381 from AndreaCatania/phymat_2
Improved Physics material
2018-08-07 15:31:26 -03:00
Andrea Catania 5e65e28eed Removed physics material combination mode. Added rough and absorbent parameter to material. Fixed 'change' signal connection 2018-08-07 19:38:04 +02:00
muiroc 14a227e9e7 fixed godotphysics sat dispatch table 2018-08-05 00:02:14 +02:00
Rémi Verschelde 03e11c13bf Add check to clang 6.0 compiler bug workaround
Extending on b68222e4e7 to ensure that it still
has the exact same behaviour as the previous code, as discussed with @hpvb.
2018-07-26 17:25:16 +02:00
Rémi Verschelde ef93fec789
Merge pull request #15643 from organicpencil/bullet_contact_impulse
Expose PhysicsDirectBodyState.get_contact_impulse
2018-07-26 15:36:37 +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
Rémi Verschelde f778bd8e69
Merge pull request #20404 from TigerCaldwell/master
Ensured consistency between RigidBody, PhysicsDirectBodyState, PhysicsServers and their 2D counterparts
2018-07-25 08:25:34 +02:00
Tiger Caldwell 40c7716586 Modified RigidBody, PhysicsDirectBodyState, PhysicsServer, and their respective 2D counterparts to be more consistent and to include more useful methods.
RigidBody:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse

RigidBody2D:
- Added add_central_force
- Added add_torque
- Added apply_central_impulse
- Added apply_torque_impulse

PhysicsDirectBodyState:
- Added apply_central_impulse

Physics2DDirectBodyState:
- Added add_central_force
- Added add_force
- Added add_torque
- Added apply_central_impulse
- Added apply_impulse
- Added apply_torque_impulse

PhysicsServer:
- Added body_add_force
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse

Physics2DServer:
- Added body_add_torque
- Added body_add_central_force
- Added body_apply_central_impulse
- Added body_apply_torque_impulse

Also fixed some small bugs along the way
2018-07-24 05:00:56 -04:00
Wilson E. Alvarez a22e746bc3 Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
AndreaCatania 17ebbfb56d Implemented Soft body
- Soft Body Physics node
- Soft Body Rendering
- Soft body Editor
- Soft body importer
2018-07-23 20:50:23 +02:00
Juan Linietsky 1ad20dc2f1
Merge pull request #12403 from AndreaCatania/phymat
Physics material
2018-07-23 07:37:03 -03:00
Juan Linietsky 2b9902db06 -Fix disable_3d flag
-Add extra flag optimize=[size,speed] to be able to prioritize size
2018-07-21 17:26:49 -03:00
muiroc 0a36e974da added cylinder shape support 2018-07-01 11:16:54 +02:00
bruvzg b68222e4e7
Workaround for clang 6 bug. 2018-05-14 18:11:26 +03:00
AndreaCatania 5f66734d2d Implemented physics material
Hidden a function

Fixed travis static check
2018-05-11 03:23:09 +02: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
Juan Linietsky 10448063c4
Merge pull request #17594 from ivodopiviz/float-overflow
Changed debug max distance to avoid overflow
2018-04-08 09:14:29 -03:00
Marcelo Fernandez 9042ef3836 Fix missing const in CapsuleShapeSW::get_area 2018-03-21 23:58:40 -03:00
Ivan Vodopiviz 55f79f2e80 Changed debug max distance to avoid overflow
Changed it to roughly sqrt(FLT_MAX), it's a little less to account for float inaccuracies.
Fixes #1835
2018-03-17 23:32:07 +01:00
Rémi Verschelde 497a4e9e25
Merge pull request #16757 from AndreaCatania/kinpush
Improved kinematic body, Now can move rigid body
2018-02-20 15:41:10 +01:00
Andrea Catania 6ed392f47a Improved kinematic body 2D and 3D, Now can move rigid body 2018-02-20 12:43:47 +01:00
Rémi Verschelde b2aeb02e7d
Merge pull request #16530 from AndreaCatania/rays
Improved ray shape (2D and 3D) by addiing the possibility to act as r…
2018-02-19 22:15:49 +01:00
Andrea Catania ffc3ef8677 Improved ray shape (2D and 3D) by addiing the possibility to act as regular shape 2018-02-19 20:59:57 +01:00
Rémi Verschelde be67f2e4ba
Merge pull request #16751 from AndreaCatania/moreAPIs
Added Physics state APIs
2018-02-19 20:22:18 +01:00
Artem Varaksa d35e486228 Clean up some bad words from code comments 2018-02-17 16:00:39 +03:00
Andrea Catania a930797c31 Added Physics state APIs 2018-02-16 17:48:07 +01:00
Andrea Catania a42765dada Added physics API in order to enable/disable collisions between rigidbody attached to a joint with bullet physics bullet
Fixes #16424
2018-02-05 18:54:07 +01:00
Paolo Perkovic 08d4bfacaf Fix inconsistencies and typos in argument names 2018-02-01 16:47:20 +01:00
Lee Pugh ac26bf0fb4 Expose PhysicsDirectBodyState.get_contact_impulse 2018-01-12 15:27:45 -06: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 b50a9114b1 Update copyright statements to 2018
Happy new year to the wonderful Godot community!
2018-01-01 14:40:47 +01:00
AndreaCatania 5dee44bbc1 Implemented physics linear and angular lock 2017-12-10 17:21:14 +01:00
Rémi Verschelde 25b36f18d3
Merge pull request #12756 from Stratos695/master
Allowing double-axis lock in RigidBody & KinematicBody (Fixes #12500)
2017-12-09 13:01:41 +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
AndreaCatania d6e413bb9c Removed type_mask and fixed some variable name 2017-11-21 22:56:40 +01:00
Ferenc Arn d28763a4c1 Rename Rect3 to AABB.
Fixes #12973.
2017-11-17 11:01:41 -05:00
Eric Rybicki bd5df84199 Allow double-axis lock in RigidBody and KinematicBody 2017-11-10 22:33:54 +01:00
Juan Linietsky 19b1ff0fc5 Disabled filter clip by default and made it optional, fixes #12368, likely others too 2017-11-10 09:22:25 -03:00
Juan Linietsky 50a9bd4e23
Merge pull request #12713 from AndreaCatania/master
Rewritten kinematic system
2017-11-09 16:08:58 -03:00
Rémi Verschelde 0095d642c7
Merge pull request #11379 from m4nu3lf/feature/no_bias_overrotation
Avoid bias over rotation in contact resolution
2017-11-08 08:19:28 +01:00
AndreaCatania 10f879bf88 Rewritten kinematic system 2017-11-07 15:22:09 +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
Rémi Verschelde 24b3733f3b
Merge pull request #10770 from RandomShaper/fix-joints
Fix joints collision exceptions, plus a bit more
2017-10-31 23:02:37 +01:00
Pedro J. Estébanez 7b12ae39f2 Rename RayCasts collision_layer to collision_mask
The point is that `RayCast`s are checked against objects' `collision_layer`(s), but they themselves are considered no to _belong_ to any layer. Therefore, the correct name for their property is `collision_mask`, rather than `collision_layer`.

Only renaming is needed since the behavior was already the right one, only that it wasn't matching what users would expect from the name and description of the property.

Fixes #7589, where it's also discussed.
2017-10-21 22:17:47 +02:00
Grosskopf f8c7d32987 Added documentation for 3D Joints, the 2D Pin Joint, and the Physicsservers, also a minor bugfix in the 3D Pinjoint. 2017-10-14 22:17:26 +02:00
Rémi Verschelde 8e9b99fe59 Merge pull request #11702 from AndreaCatania/bodyDS
Added new API to get body direct state
2017-10-09 11:01:36 +02:00
AndreaCatania 4537977d6d Renamed fixed_process to physics_process 2017-09-30 16:19:07 +02:00
AndreaCatania c56c67db39 Added new API to get body direct state 2017-09-29 17:33:30 +02:00
m4nu3lf 0cb8d3ccbf Fix wrong index in get_euler_xyz and wrong get_euler in G6DF Joint 2017-09-22 20:06:23 +01:00