Commit graph

219 commits

Author SHA1 Message Date
3b509fb358 Fix geom::shortest_arc in case of 180 degree rotation 2022-07-09 11:53:39 +03:00
d157ba1cd5 Add geom::sphere deduction guide 2022-07-09 00:00:01 +03:00
11c431f38c Add geom::shortest_arc to compute smallest rotation between two 3D vectors 2022-07-05 18:32:33 +03:00
d405d3d502 Fix geom::angle(vector,vector) for dimension > 2 2022-07-05 18:32:12 +03:00
eb1e367085 Implement spaceship operator for geom::vector 2022-07-04 18:22:42 +03:00
63662124d5 Add geom::half_open_contains 2022-06-29 12:12:27 +03:00
0cb197a6c4 Fix geom::intersection(segment,box) for axis-aligned segments 2022-06-19 22:25:56 +03:00
b77060abac Support retrieving geom::matrix row or column as a vector 2022-06-17 18:51:39 +03:00
141c707562 Add geom::subdivide for subdividing an indexed mesh 2022-06-09 11:15:10 +03:00
8e081d6d06 Add geom::smooth_normals 2022-06-09 11:14:47 +03:00
0c3f4c3134 Fix geom::angle(vector, vector) 2022-05-30 12:10:25 +03:00
a22ea3d02e Refactor geom::bezier: extract a free-function de Casteljau's algorithm & support changing control points 2022-05-07 14:00:29 +03:00
afbf49950f Add geom::make_min & make_max 2022-03-16 16:23:57 +03:00
b4584f758d Add segment-sphere intersection 2022-02-21 13:05:35 +03:00
7a14ee82e6 Fix geom::intersect 2022-02-21 13:05:26 +03:00
d2a20d7882 Add safe round-up integer division 2022-02-11 14:26:15 +03:00
29bdfb4dd2 Add geom::box comparison operators 2022-02-05 12:38:51 +03:00
fdaaf58d20 Add geom::quaternion::i,j,k 2022-01-12 19:22:10 +03:00
7babed1c57 Fix geom::acos_over_sqrt_1_minus_x2 to allow arguments slightly larger than 1 to prevent NaNs 2022-01-12 19:18:24 +03:00
efc22a5bd7 Add stable implementation of acos(x)/sqrt(1-x*x) 2022-01-10 17:45:43 +03:00
23551f681d Add geom::log(quaternion) 2022-01-09 19:21:35 +03:00
4c48790497 Add quaternion/scalar operator & rename quaternion norm -> length 2022-01-07 23:51:34 +03:00
1f0e4e545e Add quaternion derivative to angular momentum transform matrix 2022-01-07 23:49:14 +03:00
29e62192ce Add begin(simplex) & end(simplex) 2022-01-07 23:48:30 +03:00
cae538d7a5 Add geom::matrix::diagonal 2021-12-30 17:21:10 +03:00
64b3e876ad Add rotate(quat,vector,quat) 2021-12-27 15:14:23 +03:00
36854905fc Add quaternion += and -= 2021-12-27 11:49:12 +03:00
0a2cfda21f Use conjugate instead of inverse in quaternion rotation 2021-12-26 10:46:37 +03:00
f9e6a6e37e Add homogeneous matrix to affine/linear matrix conversion 2021-12-25 14:19:34 +03:00
9a50990c5c Add geom::submatrix 2021-12-25 14:19:22 +03:00
12b6b3169c Implement ray-cylinder intersection 2021-12-23 10:57:11 +03:00
e0312b66b1 Fix ray-sphere intersection: return an interval 2021-12-23 10:56:58 +03:00
8eae072ec1 Add geom::cylinder primitive 2021-12-23 10:56:11 +03:00
93f4147941 Add n-dimensional dual numbers implementation 2021-12-01 21:23:13 +03:00
ec86b0c0aa Add geom::signed_distance 2021-12-01 21:22:00 +03:00
44db0e8fee Add quaternion exponential 2021-08-17 12:45:52 +03:00
451b4c1e66 Add geom::sin_over_x 2021-08-17 12:45:41 +03:00
12ad3c1c43 Add quaternion stream output operator 2021-08-06 10:40:22 +03:00
4e16f5d9bf Add ray-sphere intersection 2021-07-24 12:00:54 +03:00
47e3970deb Add geom::sphere primitive 2021-07-24 12:00:46 +03:00
3e0060d9cb Add geom::normalized(ray) 2021-07-24 12:00:35 +03:00
a944f8c4f4 Add geom::rotate_towards 2021-07-23 23:28:16 +03:00
74a513c76b Fix geom::box::volume 2021-07-23 11:41:13 +03:00
4eef4046cb Add missing includes in geom/quaternion.hpp 2021-07-21 22:47:47 +03:00
2b46b38da2 Add geom::frac 2021-07-15 18:56:53 +03:00
e8076f528f Add geom::angle(quaternion, quaternion) 2021-07-14 22:35:03 +03:00
b51b0d3a94 Change quaternion coordinate order: wxyz -> xyzw 2021-07-13 11:45:11 +03:00
b9ea07f0f4 Ray-simplex intersection bugfix 2021-07-08 14:24:03 +03:00
6d7dbcdffe Add golden ratio constant 2021-05-30 23:09:55 +03:00
bdd32ad40f Add rotate(vector, angle) function 2021-05-17 20:20:39 +03:00