godot/core/templates
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
..
bin_sorted_array.h use ERR_FAIL_INDEX when preferred 2022-05-25 13:36:45 -05:00
command_queue_mt.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
command_queue_mt.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
cowdata.h Add search methods for packed arrays 2022-05-07 20:16:11 +08:00
hash_map.h Optimize HashMap/HashSet using fastmod 2022-06-23 18:08:52 +02:00
hash_set.h Optimize HashMap/HashSet using fastmod 2022-06-23 18:08:52 +02:00
hashfuncs.h Implement Vector4, Vector4i, Projection 2022-07-23 14:00:01 +02:00
list.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
local_vector.h Avoid manual memory management of certain arrays in Vulkan RD 2022-06-28 10:01:46 +02:00
lru.h Refactor Font configuration and import UI, and Font resources. 2022-07-06 14:12:36 +03:00
oa_hash_map.h Add mutable OAHashMap::lookup_ptr function to fix mutability. 2022-04-22 09:20:15 +02:00
paged_allocator.h Add a new HashMap implementation 2022-05-12 11:21:29 +02:00
paged_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pair.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
pass_func.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
pooled_list.h BVH - Sync BVH with 3.x 2022-02-04 16:51:21 +00:00
rb_map.h Replace most uses of Map by HashMap 2022-05-16 10:37:48 +02:00
rb_set.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
rid_owner.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
rid_owner.h Add a new HashSet template 2022-05-20 22:40:38 +02:00
rid.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
ring_buffer.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
safe_list.h add SafeList destructor which calls maybe_cleanup() to prevent mem leak 2022-04-08 09:50:49 -04:00
safe_refcount.h Implement a Worker ThreadPool 2022-07-22 11:46:48 +02:00
SCsub Reorganized core/ directory, it was too fatty already 2020-11-07 20:17:12 -03:00
search_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
self_list.h Zero initialize all pointer class and struct members 2022-04-04 19:49:50 +02:00
simple_type.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
sort_array.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
thread_work_pool.cpp Update copyright statements to 2022 2022-01-03 21:27:34 +01:00
thread_work_pool.h Fix some issues found by cppcheck. 2022-04-06 14:34:37 +03:00
vector.h Prevent out-of-bounds write in array conversion; avoid logspam on empty arrays. 2022-06-30 18:04:33 -07:00
vmap.h Make VMap::find_nearest return -1 when empty 2022-02-16 16:12:30 +08:00
vset.h Update copyright statements to 2022 2022-01-03 21:27:34 +01:00