godot/core/math
reduz 455c06ecd4 Implement Vector4, Vector4i, Projection
Implement built-in classes Vector4, Vector4i and Projection.

* Two versions of Vector4 (float and integer).
* A Projection class, which is a 4x4 matrix specialized in projection types.

These types have been requested for a long time, but given they were very corner case they were not added before.
Because in Godot 4, reimplementing parts of the rendering engine is now possible, access to these types (heavily used by the rendering code) becomes a necessity.

**Q**: Why Projection and not Matrix4?
**A**: Godot does not use Matrix2, Matrix3, Matrix4x3, etc. naming convention because, within the engine, these types always have a *purpose*. As such, Godot names them: Transform2D, Transform3D or Basis. In this case, this 4x4 matrix is _always_ used as a _Projection_, hence the naming.
2022-07-23 14:00:01 +02:00
..
a_star.cpp Make AStar to use 64-bit logic 2022-06-16 16:43:41 +03:00
a_star.h Remove redundand header from a_star.h 2022-06-16 17:23:08 +03:00
aabb.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
aabb.h Float literals - fix main primitives to use .f 2022-02-10 18:43:19 +00:00
audio_frame.h Ensure AudioFrame variables l and r are always initialised 2022-06-17 17:36:11 +01:00
basis.cpp Fix the calculation of the angular velocity when the rotation speed is not high. 2022-07-19 10:27:13 +02:00
basis.h Fix VECTOR/LOCAL transitions in Node3D 2022-06-27 13:45:35 +02:00
bvh_abb.h BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
bvh_cull.inc Merge pull request #57630 from lawnjelly/bvh4_templated_checks 2022-03-04 23:29:38 +01:00
bvh_debug.inc Merge pull request #57630 from lawnjelly/bvh4_templated_checks 2022-03-04 23:29:38 +01:00
bvh_integrity.inc Dynamic BVH broadphase in 2D & 3D Godot Physics 2021-05-10 16:28:55 -07:00
bvh_logic.inc BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
bvh_misc.inc BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
bvh_pair.inc BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
bvh_public.inc BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
bvh_refit.inc BVH - fix stale current_tree in deactivate function [4.x] 2021-05-29 18:03:43 +01:00
bvh_split.inc BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
bvh_structs.inc Add protective checks for invalid handle use in BVH 2022-03-23 09:19:26 +00:00
bvh_tree.h Add protective checks for invalid handle use in BVH 2022-03-23 09:19:26 +00:00
bvh.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
color_names.inc Update color constants to use HEX codes 2022-03-17 11:36:23 +02:00
color.cpp Allow picking similar colours using OKHSL. 2022-06-07 05:53:27 -07:00
color.h Allow picking similar colours using OKHSL. 2022-06-07 05:53:27 -07:00
convex_hull.cpp Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
convex_hull.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
delaunay_2d.h Core: Move Vector2i to its own vector2i.h header 2022-02-04 16:32:21 +01:00
delaunay_3d.h Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
disjoint_set.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
dynamic_bvh.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
dynamic_bvh.h Fix DynamicBVH crash after #59867 2022-04-05 02:17:34 +02:00
expression.cpp Expression built-in functions can also be considered as identifiers in subscripts 2022-07-04 13:25:43 +03:00
expression.h Add a const call mode to Object, Variant and Script. 2022-06-27 13:33:06 -07:00
face3.cpp Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
face3.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
geometry_2d.cpp Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
geometry_2d.h Float literals - fix main primitives to use real_t casting 2022-02-24 08:15:10 +00:00
geometry_3d.cpp Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
geometry_3d.h Float literals - fix main primitives to use real_t casting 2022-02-24 08:15:10 +00:00
math_defs.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
math_fieldwise.cpp Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
math_fieldwise.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
math_funcs.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
math_funcs.h Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
plane.cpp Float literals - fix main primitives to use real_t casting 2022-02-24 08:15:10 +00:00
plane.h Rename epsilon to tolerance in the Plane::has_point method 2022-07-21 20:15:15 +03:00
projection.cpp Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
projection.h Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
quaternion.cpp Fix blend animation to solve TRS track bug & blend order inconsistency 2022-03-16 05:11:55 +09:00
quaternion.h Fix blend animation to solve TRS track bug & blend order inconsistency 2022-03-16 05:11:55 +09:00
quick_hull.cpp Add a new HashSet template 2022-05-20 22:40:38 +02:00
quick_hull.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
random_number_generator.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
random_number_generator.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
random_pcg.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
random_pcg.h Style: Partially apply clang-tidy's cppcoreguidelines-pro-type-member-init 2022-05-02 16:28:25 +02:00
rect2.cpp Rename Transform2D "elements" to "columns" 2022-04-29 08:02:39 -05:00
rect2.h Float literals - fix main primitives to use .f 2022-02-10 18:43:19 +00:00
rect2i.cpp Core: Move Rect2i to its own rect2i.h header 2022-02-04 14:17:30 +01:00
rect2i.h Core: Move Vector2i to its own vector2i.h header 2022-02-04 16:32:21 +01:00
SCsub SCons: Format buildsystem files with psf/black 2020-03-30 09:05:53 +02:00
static_raycaster.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
static_raycaster.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
transform_2d.cpp Core: Rename math 'phi' arguments to 'angle' 2022-05-05 14:17:39 +02:00
transform_2d.h Core: Rename math 'phi' arguments to 'angle' 2022-05-05 14:17:39 +02:00
transform_3d.cpp Core: Rename math 'phi' arguments to 'angle' 2022-05-05 14:17:39 +02:00
transform_3d.h Core: Rename math 'phi' arguments to 'angle' 2022-05-05 14:17:39 +02:00
triangle_mesh.cpp Add surface indices to TriangleMesh 2022-06-22 21:48:23 +02:00
triangle_mesh.h Add surface indices to TriangleMesh 2022-06-22 21:48:23 +02:00
triangulate.cpp Float literals - fix main primitives to use .f 2022-02-10 18:43:19 +00:00
triangulate.h Core: Move Vector2i to its own vector2i.h header 2022-02-04 16:32:21 +01:00
vector2.cpp Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
vector2.h Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
vector2i.cpp Core: Move Vector2i to its own vector2i.h header 2022-02-04 16:32:21 +01:00
vector2i.h Protection for array operator for Vector2 / 3 in DEV builds 2022-03-07 11:15:45 +00:00
vector3.cpp Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
vector3.h Refactor bezier interpolation functions 2022-06-27 19:42:43 +02:00
vector3i.cpp Core: Use forward declares for Vector3/Vector3i 2022-02-19 16:47:24 +01:00
vector3i.h Protection for array operator for Vector2 / 3 in DEV builds 2022-03-07 11:15:45 +00:00
vector4.cpp Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
vector4.h Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
vector4i.cpp Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
vector4i.h Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00