godot-cpp/include/core
Daniel Rakos abccf9a050 Make Basis look column-major while retaining a row-major representation
Per https://github.com/godotengine/godot/issues/14553:
Godot stores Basis in row-major layout for more change for efficiently
taking advantage of SIMD instructions, but in scripts Basis looks like and
is accessible in a column-major format.

This change modifies the C++ binding so that from the script's perspective
Basis does look like if it was column-major while retaining a row-major
in-memory representation. This is achieved using a set of helper template
classes which allow accessing individual columns whose components are
non-continues in memory as if it was a Vector3 type. This ensures script
interface compatibility without needing to transpose the Basis every time
it is passed over the script-engine boundary.

Also made most of the Vector2 and Vector3 class interfaces inlined in the
process for increased performance.

While unrelated (but didn't want to file a separate PR for it), this change
adds the necessary flags to have debug symbol information under MSVC.

Fixes #241.
2019-04-08 16:28:41 +02:00
..
AABB.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Array.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Basis.hpp Make Basis look column-major while retaining a row-major representation 2019-04-08 16:28:41 +02:00
Color.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
CoreTypes.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Defs.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Dictionary.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Godot.hpp Fix tags/cast_to for custom subclasses. 2018-11-28 00:08:45 +02:00
GodotGlobal.hpp Profiling support 2018-11-27 09:45:56 -03:00
GodotProfiling.hpp Profiling support 2018-11-27 09:45:56 -03:00
NodePath.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Plane.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
PoolArrays.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Quat.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
RID.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Rect2.hpp Renamed Rect2::pos to Rect2::position 2018-12-13 11:10:25 +02:00
Ref.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
String.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
TagDB.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Transform.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Transform2D.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Variant.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00
Vector2.hpp Make Basis look column-major while retaining a row-major representation 2019-04-08 16:28:41 +02:00
Vector3.hpp Make Basis look column-major while retaining a row-major representation 2019-04-08 16:28:41 +02:00
Wrapped.hpp Implementing clang-format and applying it to all classes 2018-11-24 09:09:41 +11:00