summaryrefslogtreecommitdiff
path: root/servers/physics_2d/space_2d_sw.h
AgeCommit message (Collapse)Author
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-16-Added support for raycast in KinematicBody2DJuan Linietsky
-Added support for snapping in KinematicBody2D
2018-02-20Improved kinematic body 2D and 3D, Now can move rigid bodyAndrea Catania
2018-01-05Add missing copyright headers and fix formattingRémi Verschelde
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-01Update copyright statements to 2018Rémi Verschelde
Happy new year to the wonderful Godot community!
2017-11-21Removed type_mask and fixed some variable nameAndreaCatania
2017-10-21Rename RayCasts collision_layer to collision_maskPedro J. Estébanez
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-09-17correction to one way collision codeJuan Linietsky
2017-09-17fixes to one way collision, closes #10971Juan Linietsky
2017-08-27Use HTTPS URL for Godot's website in the headersRémi Verschelde
2017-07-22Clang-formatting *.cpp and *.h (some files excluded)Poommetee Ketson
2017-07-19-Renamed GlobalConfig to ProjectSettings, makes more sense.Juan Linietsky
-Added system for feature overrides, it's pretty cool :)
2017-07-08Refactor 'treshold' to 'threshold'Poommetee Ketson
2017-06-14Refactor layer_mask to collision_layerPoommetee Ketson
2017-04-08Add "Godot Engine contributors" copyright lineRémi Verschelde
2017-03-05A Whole New World (clang-format edition)Rémi Verschelde
I can show you the code Pretty, with proper whitespace Tell me, coder, now when did You last write readable code? I can open your eyes Make you see your bad indent Force you to respect the style The core devs agreed upon A whole new world A new fantastic code format A de facto standard With some sugar Enforced with clang-format A whole new world A dazzling style we all dreamed of And when we read it through It's crystal clear That now we're in a whole new world of code
2017-02-26Merge pull request #7802 from tagcup/physics_64bitRémi Verschelde
Use real_t as floating point type in physics code.
2017-02-21-renamed globals.h to global_config.cpp (this seems to have caused a few ↵Juan Linietsky
modified files) -.pck and .zip exporting redone, seems to be working..
2017-02-13Use real_t as floating point type in physics code.Ferenc Arn
This is a continuation of an on-going work for 64-bit floating point builds, started in PR #7528. Covers physics, physics/joints and physics_2d code. Also removed matrixToEulerXYZ function in favor of Basis::get_euler.
2017-01-11Type renames:Juan Linietsky
Matrix32 -> Transform2D Matrix3 -> Basis AABB -> Rect3 RawArray -> PoolByteArray IntArray -> PoolIntArray FloatArray -> PoolFloatArray Vector2Array -> PoolVector2Array Vector3Array -> PoolVector3Array ColorArray -> PoolColorArray
2017-01-02ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to ↵Juan Linietsky
Variant. All usages of "type" to refer to classes were renamed to "class" ClassDB has been exposed to GDScript. OBJ_TYPE() macro is now GDCLASS()
2017-01-02Merge remote-tracking branch 'origin/gles3' into gles3-on-masterRémi Verschelde
Various merge conflicts have been fixed manually and some mistakes might have been made - time will tell :)
2017-01-01Welcome in 2017, dear changelog reader!Rémi Verschelde
That year should bring the long-awaited OpenGL ES 3.0 compatible renderer with state-of-the-art rendering techniques tuned to work as low as middle end handheld devices - without compromising with the possibilities given for higher end desktop games of course. Great times ahead for the Godot community and the gamers that will play our games!
2016-10-03Begining of GLES3 renderer:Juan Linietsky
-Most 2D drawing is implemented -Missing shaders -Missing all 3D -Editor needs to be set on update always to be used, otherwise it does not refresh -Large parts of editor not working
2016-10-03Expose more 2D/3D physics options in project settingsFabio Alessandrelli
2016-09-01-Fixed issue in Kinematicbody2DJuan Linietsky
2016-05-21First version of ProfilerJuan Linietsky
It is now possible to profile GDScript as well as some parts of Godot internals.
2016-02-01Physics2D: Allow to use 'intersect_point' with objects which is not 'pickable'Biliogadafr
2016-01-01Update copyright to 2016 in headersGeorge Marques
2015-09-20Ability to visually debug geometry visually:Juan Linietsky
-Visible 2D and 3D Shapes, Polygons, Tile collisions, etc. -Visible Navmesh and Navpoly -Visible collision contacts for 2D and 3D as a red point -Customizable colors in project settings
2015-05-03improved kinematic motion, improved demos for kinematic motionJuan Linietsky
2015-04-19-Rewritten KinematicBody2D::move to MUCH more efficient code.Juan Linietsky
-KinematicBody2D::move now properly recognizes collision exceptions and masks, fixes #1649 -Removed object type masking for KinematicBody2D -Added a test_motion() function to RigidBody2D, allowing simlar behavior to KinematicBody2D::move there.
2015-04-18Updated copyright year in all headersJuan Linietsky
2015-03-22input events on Area2D is now supportedJuan Linietsky
also added a demo showing how this works
2015-01-05Changes to 2D physics engineJuan Linietsky
-=-=-=-=-=-=-=-=-=-=-=-=-=-= -Removed "density" property -Added instead more flexible "angular damp" and "linear damp" -Added ability to override angular and linear damp in rigidbody -Added gravity scale option rigidbody Test well and iron out bugs, when it works the same will be moved to 3D
2014-09-023D Physics and Other StuffJuan Linietsky
-=-=-=-=-=-=-=-=-=-=-=-=-= -New Vehicle (Based on Bullet's RaycastVehicle) - Vehiclebody/VehicleWheel. Demo will come soon, old vehicle (CarBody) will go away soon too. -A lot of fixes to the 3D physics engine -Added KinematicBody with demo -Fixed the space query API for 2D (demo will come soon). 3D is WIP. -Fixed long-standing bug with body_enter/body_exit for Area and Area2D -Performance variables now includes physics (active bodies, collision pairs and islands) -Ability to see what's inside of instanced scenes! -Fixed Blend Shapes (no bs+skeleton yet) -Added an Android JavaClassWrapper singleton for using Android native classes directly from GDScript. This is very Alpha!
2014-05-14A bit of everything:Juan Linietsky
-IMA-ADPCM support for samples, this means that sound effects can be compressed and use 4 timess less RAM. -New 3D import workflow based on Wavefront OBJ. Import single objects as mesh resources instead of full scenes. Many people prefers to work this way. Just like the rest of the imported resources, these are updated in realtime if modified externally. -Mesh resources now support naming surfaces. This helps reimporting to identify which user-created materials must be kept. -Several fixes and improvements to SurfaceTool. -Anti Aliasing added to WorldEnvironment effects (using FXAA) -2D Physics bodies (RigidBody, KinematicBody, etc), Raycasts, Tilemap, etc support collision layers. This makes easy to group which objects collide against which. -2D Trigger shapes can now also trigger collision reporting in other 2D bodies (it used to be in Area2D before) -Viewport render target textures can now be filtered. -Few fixes in GDscript make it easier to work with static functions and class members. -Several and many bugfixes.
2014-02-22-added kinematic bodyJuan Linietsky
-added kinematic body demos
2014-02-19-improved physics ccdJuan Linietsky
-html5 exporter works again -disable repeat on image loader by default -can change shape offset en tileset, texture offset was broken
2014-02-09GODOT IS OPEN SOURCEJuan Linietsky