Commit graph

562 commits

Author SHA1 Message Date
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
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
Juan Linietsky
dc976cac57
Merge pull request #12678 from AndreaCatania/soft
Soft body
2018-07-23 16:04:32 -03: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
ec85fd554b Fix issues with CPUParticles and related conversion from Particles. Closes #20126 2018-07-23 12:28:50 -03:00
Juan Linietsky
1ad20dc2f1
Merge pull request #12403 from AndreaCatania/phymat
Physics material
2018-07-23 07:37:03 -03:00
Juan Linietsky
43dc050947 Several improvements to editor inspector usability and style 2018-07-18 19:37:41 -03:00
Juan Linietsky
d1550b4a9b Ability to disable scale in nodes, closes #19927 2018-07-18 13:48:09 -03:00
Rémi Verschelde
7c9f7452f4 Style: Format code with clang-format 6.0.1 2018-07-18 16:27:03 +02:00
Juan Linietsky
063a22851a -Added support for raycast in KinematicBody2D
-Added support for snapping in KinematicBody2D
2018-07-16 20:04:07 -03:00
Marcelo Fernandez
087329074d Improved stream paused fade code 2018-07-09 21:58:33 -03:00
Juan Linietsky
ea47359408 Add option to convert Particles to CPUParticles 2018-07-07 09:04:22 -03:00
Juan Linietsky
7dcaabaf19 Support for CPU based particles, which aids compatibility with OpenGL ES 2.0 2018-07-06 20:21:42 -03:00
Max Hilbrunner
ed61bdd2ae
Merge pull request #19646 from chanon/fix-audiostream-cant-set-null-stream
Fix can't set AudioStreamPlayer stream to null
2018-07-05 04:16:47 +02:00
Max Hilbrunner
6d0ade54c0
Merge pull request #19205 from marcelofg55/audio_stream_pause
Pause AudioStreamPlayer when SceneTree pauses
2018-07-03 17:23:53 +02:00
Max Hilbrunner
585a185e89
Merge pull request #19246 from xemjeff/physics
Hinge Joint Inspector - Change range for motor target velocity and params bias values
2018-07-03 16:49:10 +02:00
Andrea Catania
008e8266bb Removed two skeleton parameter from compilation width no 3d 2018-07-02 07:35:43 +02:00
Rémi Verschelde
05cc7020c0
Merge pull request #19886 from AndreaCatania/no3d
Fixes #19845 no 3d Compilation issue
2018-07-01 13:39:14 +02:00
Andrea Catania
08009c75a2 Fixes #19845 no 3d Compilation issue 2018-07-01 12:39:24 +02:00
Andrea Catania
16cf262e34 Fixes #19648 Kinematic body move_and_slide compatibility issue 2018-07-01 11:38:13 +02:00
Juan Linietsky
eeab3502d5 Changes to how node paths are selected from property, allowing setting a hint. 2018-06-27 20:50:25 -03:00
Bastiaan Olij
c11735facf Fight off some error spam in the editor 2018-06-24 11:54:08 +10:00
chanon
2bdac0a5d9 fix can't set AudioStreamPlayer stream to null 2018-06-22 15:00:57 +07:00
Rémi Verschelde
2fabb81318 Fix property hint for ReflectionProbe extents 2018-06-16 09:28:54 +02:00
Rémi Verschelde
8efbe9ed3d
Merge pull request #19487 from JFonS/better_3d_select
Improve 3D selection
2018-06-13 18:49:35 +02:00
JFonS
9cd1c20f6a Polished 3D selection 2018-06-13 17:52:37 +02:00
clayjohn
fafa197ca5 updated some particlematerial properties 2018-06-10 11:15:02 -07:00
Marcelo Fernandez
c409fe0597 Pause AudioStreamPlayers when SceneTree pauses 2018-06-03 14:01:47 -03:00
Jeffs
bd29fec042 Issues #19203 and #19204
- Hinge Joint Inspector:
Motor target velocity range changed from [0,4096] to [-200,200] to allow for negative velocity and a reasonable range.
Params bias now allows a zero value to prevent the bullet message of not supporting a non-zero bias.
2018-05-29 09:03:20 -04:00
Juan Linietsky
c80ac06253
Merge pull request #18691 from Web-eWorks/atlasfixes
Fix Sprite3d using AtlasTexture... Again.
2018-05-27 12:55:42 -03:00
Bastiaan Olij
660bebec94 Check for 0 roll influence 2018-05-26 08:26:39 +10:00
danilo2205
dc639d334a Up vector implementation and OrientedPathFollow. 2018-05-20 19:51:56 -03:00
Juan Linietsky
4b5227ff77 -Ability to open resources in the same window
-Plenty of fixes and improvements to new inspector
-Fixes that were needed to make inspector work better
2018-05-17 18:03:05 -03:00
Juan Linietsky
dfd1331690 Allow editing of some unbound properties when hinted (or no range hinted) 2018-05-16 09:13:41 -03:00
Juan Linietsky
005b69cf6e -New inspector.
-Changed UI resizing code, gained huge amount of speed.
-Reorganized timer sync to clean up behavior (sorry forgot commit this before)

-
2018-05-15 17:14:31 -03:00
Michael Alexsander Silva Dias
7f72d6476b Fixed some warnings found with Cppcheck. 2018-05-14 02:14:56 -03:00
Hein-Pieter van Braam
3cfb9df325
Revert "Use fake audio playing property in editor" 2018-05-13 21:37:08 +02:00
Hein-Pieter van Braam
24dbe5e310
Merge pull request #17367 from ShyRed/audio_playing_
Use fake audio playing property in editor
2018-05-13 21:35:44 +02:00
AndreaCatania
5f66734d2d Implemented physics material
Hidden a function

Fixed travis static check
2018-05-11 03:23:09 +02:00
Andrea Catania
5a0119f9e2 Improved API to active / deactive ragdoll 2018-05-10 21:05:00 +02:00
Marcelo Fernandez
e64bbcc429 Fix some enums missing its bind 2018-05-08 21:14:31 -03:00
Webster Sheets
4b545e3105 Fix AtlasTexture usage in Sprite3D.
Changes as requested in b484d5c.
2018-05-08 11:22:56 -04:00
Rémi Verschelde
de9683b605
Merge pull request #17559 from simedis/joint_motors
Implemented interface for bullet linear motors
2018-05-08 10:23:41 +02:00
Juan Linietsky
6d46f73ec3
Merge pull request #11973 from AndreaCatania/ragdoll
Ragdoll - Physical bone node
2018-05-07 16:12:27 -03:00
AndreaCatania
9e57a07fb6 Implemented ragdoll
Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

Implementing ragdoll

a

Implemented implicit hierarchy.

Improved

Added some physics properties

Added bone offset to preserve COM, partially fixed scaling

work in progress

WIP

wip

Implemented Joint Gizmos

Implemented pin joint joint

Implemented all joints
2018-05-07 21:03:16 +02:00
Juan Linietsky
b484d5c2d8
Revert "Fix Sprite3D's incorrect behavior when using AtlasTextures." 2018-05-07 15:44:27 -03:00
Rémi Verschelde
430e45c84a
Merge pull request #16359 from Noshyaar/convert
Particles: fix corrupted scene when saved after convert
2018-05-03 21:24:03 +02:00
Rémi Verschelde
76cc12d916
Merge pull request #18572 from bzztbomb/fix/project_local_ray_normal_virtual
Fix for ARVRCamera::project_local_ray_normal not getting called.
2018-05-03 21:06:59 +02:00
Brian Richardson
680a5cbb0b Camera::project_local_ray_normal needs to be virtual so that ARVRCamera::project_local_ray_normal gets called. 2018-05-03 11:32:37 -07:00
Rémi Verschelde
b774156729
Merge pull request #18514 from neikeq/api-hash-fixes
API hash fixes
2018-05-03 14:36:32 +02:00