Commit Graph

168 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
Bastiaan Olij
6843f39875 Added some documentation for the CSG nodes 2018-07-19 22:24:46 +10:00
Bastiaan Olij
a971288bb0 Added path_local and path_continious_u properties to CSGPolygon 2018-07-07 18:20:21 +10: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
Benjamin
1535ffab06 Fix CSG issues when reparenting shape nodes. 2018-06-10 17:54:42 +02:00
Rémi Verschelde
43b7ebf0a0 Style: Apply clang-format (5.0) to some missed files 2018-05-31 09:00:37 +02:00
Rémi Verschelde
3334209a73 SCons: Pass env to modules can_build method
This allows to disable modules based on the environment,
in particular `env[tools]` which tells us if we are
building the editor or not.
2018-05-30 19:11:36 +02:00
Guilherme Felipe
35024d4e7b Add missing copyright headers 2018-05-16 14:50:44 -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
Rémi Verschelde
3d9deda8b3 Sync classref with current source 2018-05-12 09:38:00 +02:00
Marcelo Fernandez
e64bbcc429 Fix some enums missing its bind 2018-05-08 21:14:31 -03:00
karroffel
bf24d570bb updated OAHashMap to use robinhood hashing 2018-05-03 17:00:21 +02:00
Juan Linietsky
1226720c01 Add poly triangulation order check, ensures faces do not flip on different order 2018-04-28 12:59:45 -03:00
Juan Linietsky
f8520dbba7 -Changed how operators work, any shape can operate on any other
-Added some break condition for bad poly data to avoid editor freezes
2018-04-28 12:33:23 -03:00
Juan Linietsky
ec7ed5f360 Avoid CSG freeze condition on degenerates 2018-04-28 09:47:16 -03:00
Juan Linietsky
c4d0f528b1 Do not crash if the polygon is invalid 2018-04-28 08:53:27 -03:00
Juan Linietsky
afb4ce8d2d Reduce false positives in interior detection by adding a small offset to raycast, fixes #18476 2018-04-28 08:16:26 -03:00
Juan Linietsky
8d199a9b2c CSG Support for Godot!
-Missing Icons
-Missing freezing option (for baking light and faster load)
-Missing a way to export from Godot (GLTF2?)
-Probably buggy (may freeze editor, can be worked around easily, but let me know if this happens so it's easier to catch bugs)
Happy testing!
2018-04-27 21:55:10 -03:00