Commit Graph

2642 Commits

Author SHA1 Message Date
1678cb3a69 maths: add rsqrt convenience function 2018-04-17 17:01:29 +10:00
76c809f031 point/vector: homog no longer takes a size parameter 2018-04-17 14:26:23 +10:00
0f9fb9b515 coord: add general store template and 5-element init 2018-04-17 14:25:04 +10:00
f7a9dc598f geom/ray: forward declare ostream operator
may be required for CHECK_SANITY
2018-04-16 16:44:26 +10:00
675969936e geom/ray: remove useless deduction guide 2018-04-16 16:44:11 +10:00
f21297cad5 geom/ellipse: add ray distance tests 2018-04-16 16:00:32 +10:00
1889a76e26 geom/sphere: add glancing ray test 2018-04-16 16:00:32 +10:00
87d442772c geom/ops: remove point-point distance via sfinae
point-point distance is already defined outside of the geom namespace
2018-04-16 16:00:32 +10:00
a8b3737b8b geom/ray: remove constructors so we have a POD 2018-04-16 16:00:32 +10:00
ce246f8aa2 ellipse: add ray distance query 2018-04-16 16:00:32 +10:00
63fb76c24c geom/ray: ensure direction is normalised after transform 2018-04-16 16:00:35 +10:00
4dcd10243c geom/ray: add validator specialisation 2018-04-16 16:00:32 +10:00
401c59bc0e tap: add proof-of-concept printf chaining 2018-04-16 16:00:32 +10:00
52fcb847c9 vector: add validator specialisation 2018-04-16 16:00:32 +10:00
4c5bc46ad9 rational: add ostream operator
required for upcoming TAP changes
2018-04-16 16:00:32 +10:00
f0a05e06e2 point: add forwarding assignment operator 2018-04-16 16:00:32 +10:00
e7a76081e0 point: don't directly iterate over data 2018-04-16 16:00:32 +10:00
2eb0b429ef geom/sphere: style 2018-04-16 16:00:32 +10:00
3bd795f5e3 matrix: move sfinae condition into template param list 2018-04-16 16:00:32 +10:00
c4eec456a0 coord/base: remove explicit from scalar constructor
we need to create vectors of zeros pretty often and it's pretty verbose
having to continually use the full type name each time.
2018-04-16 16:00:32 +10:00
05b1c2dd80 geom/ray: add matrix multiply operator 2018-04-16 16:00:32 +10:00
42ab7543a7 debug: add CHECK_FINITE assertion 2018-04-16 16:00:32 +10:00
64ea4fb6d4 quaternion: add docstrings 2018-04-16 16:00:32 +10:00
00515078f9 ray: move convenience typedefs directly after type decl 2018-04-16 16:00:32 +10:00
44b3d8d628 ray: add deduction guides 2018-04-16 16:00:32 +10:00
bef0aa4929 sphere: move ray tests into sphere's unit 2018-04-16 16:00:32 +10:00
28148dd890 vector: add make_basis function 2018-04-12 12:59:45 +10:00
56fdc7844e geom/frustum: test projection should use radians 2018-04-11 19:28:18 +10:00
1cc4f90b52 vector: add forwarding assignment operator 2018-04-11 19:28:03 +10:00
d7b36b0ee3 affine: add perspective matrix test cases 2018-04-11 18:26:30 +10:00
561925b201 vector: expose base assignment operator 2018-04-11 18:25:51 +10:00
366b1f7879 maths: use our abs implementation for relatively_equal
this simplifies calling logic for integral, floating, and coord types
2018-04-11 18:24:52 +10:00
34a274bc92 maths: move abs higher so more functions can use it 2018-04-11 18:24:34 +10:00
3b5e94e0ea matrix: add relatively_equal overload 2018-04-11 18:24:10 +10:00
2ef759877e matrix: add scalar filling constructor 2018-04-11 18:23:57 +10:00
ea75b102d0 matrix: assert that fov is within 0-360
this will catch more cases where degrees are used where radians area
expected.
2018-04-11 18:23:17 +10:00
f830b149b0 coord/ops: add scalar bool overload for any 2018-04-11 18:22:49 +10:00
2d801a1725 coord/base: actually set fill values in constructor 2018-04-11 18:22:25 +10:00
4e558ce9a9 geom/cylinder: add convenience cylinder3f typedef 2018-04-11 15:10:16 +10:00
6389839f4e alloc/allocator: add make_allocator convenience function 2018-04-09 18:34:22 +10:00
40cf869d7e geom/tri: add triangle area formula 2018-04-09 12:49:09 +10:00
24a530e23e maths: remove pow2 function
pow2 has been used enough times to mean 2^x and x^2 that it's not worth
the ambiguity. just use pow(b,e) directly.
2018-04-09 12:30:22 +10:00
d1da97f213 vector: clarify spherical components 2018-04-05 19:22:38 +10:00
3748b77500 time/delta_time: return nanoseconds objects rather than floats 2018-04-05 18:48:23 +10:00
665c8aa49e tuple/value: add reversing operation 2018-04-05 16:06:09 +10:00
1bafe204b6 tuple/index: fix incorrect header guard 2018-04-05 16:05:47 +10:00
d69a567431 tuple/index: add some index sequence generators and manipulators 2018-04-05 15:18:30 +10:00
c570d6ad2f tap: guard against users ignoring status return code 2018-04-05 13:55:07 +10:00
5f2b1a5c36 tuple: split tests into separate units 2018-04-05 13:54:42 +10:00
8f2f623520 tuple/value: add zip implementation 2018-04-05 12:23:12 +10:00