Commit Graph

2613 Commits

Author SHA1 Message Date
2ec9a7ebe6 maths: remove util::is_nan in preference of std::isnan 2018-05-10 12:45:45 +10:00
4116442e40 debug: don't rely on format for output
debug is relied upon by a great deal of other units so it's very
difficult to include other popular headers like format.hpp without
triggering cyclic dependencies.
2018-05-10 12:44:03 +10:00
06e29ed136 cast: add alignment cast 2018-05-09 17:47:47 +10:00
2926776c97 view: use universal references for return types
Reduces the possibility that we dereference a temporary from the
internal iterators.
2018-05-08 21:51:09 +10:00
170f9ceb2c string: prefer type deduction over explicit typenames 2018-05-08 21:50:43 +10:00
34fc834a29 view: prefer std::next over std::advance
next is slightly less likely to trigger issues dereferencing a temporary
(since we aren't producing an lvalue).
2018-05-08 21:49:27 +10:00
e7c108c770 json: remove use of the restrict qualifier
This mostly just complicates type manipulations. We can add it back in
if performance actually warrants it, or if it becomes an official
qualifier.
2018-05-08 21:48:17 +10:00
749b5179a3 quaternion: add convenience quaternion-vector multiply 2018-05-08 15:51:39 +10:00
f53b9ace1b cpp: add some explanatory comments 2018-05-07 13:28:31 +10:00
1324ae2b4a geom/plane: add distance2 for plane/point 2018-05-07 11:48:32 +10:00
92ba5469c4 geom/frustum: add symbolic constants for plane indices 2018-05-07 11:09:53 +10:00
c33a679e81 geom/ray: make ray intersections more robust 2018-05-04 17:10:51 +10:00
3e5c89f643 coord/ops: add lshift 2018-05-04 17:06:18 +10:00
b01173d82b maths: rename limit to clamp 2018-05-03 21:43:48 +10:00
93ddd4c11d library: force typing for symbol queries 2018-05-03 21:22:41 +10:00
1350ea93c7 random: don't hardcode mt19937 2018-05-03 21:22:05 +10:00
c51673e421 io: add slurp for uint32_t 2018-05-03 21:21:45 +10:00
497d3ca970 build: update for gcc-8.1 warnings 2018-05-03 18:32:08 +10:00
c0af2df2c8 hash/fasthash: print result of each test case 2018-05-03 17:34:19 +10:00
dcf87a7c17 geom/aabb: add ray-aabb distance tests 2018-05-03 17:33:42 +10:00
1c150296f9 hash/siphash: qualify local helper functions as static 2018-05-03 17:32:45 +10:00
9f1f3633e2 debug: catch exceptions by constref in CHECK_THROWS 2018-05-03 17:32:03 +10:00
2a6ad38e9c coord/traits: add vector-extent result_type 2018-05-03 17:31:41 +10:00
9f6697dc2a geom/ray: correct test for negative aabb distance 2018-05-03 16:40:30 +10:00
cfefca7767 geom/ray: correct the sense of ray/plane distance 2018-05-03 16:39:57 +10:00
a1aa0c6949 geom/sample: make the extent surface sampler public 2018-05-01 16:02:55 +10:00
8b47a2e350 geom/sample: don't rely on float distances in poisson sampling 2018-05-01 16:02:23 +10:00
d72485307a geom/ellipse: add convenience ellipse3f typedef 2018-05-01 16:01:43 +10:00
a22829e9fc geom/tri: be consistent with struct/classes 2018-05-01 16:01:17 +10:00
93277d5d9d json/tree: add from_json that takes a path 2018-05-01 16:01:00 +10:00
63cf40eeca poisson-tool: use function objects for distances 2018-04-27 16:33:18 +10:00
864c0ecf58 functor: add constant functor 2018-04-27 16:32:58 +10:00
5011c670c6 geom/tri: add tri sampler 2018-04-26 18:37:01 +10:00
4bb66d2c05 geom/sample: surface sampler should take constref 2018-04-26 18:36:29 +10:00
05f8787c91 poission: add more thoroughly documented poisson sampler 2018-04-26 17:44:16 +10:00
d011c60359 point: add convenience centroid function 2018-04-26 16:30:16 +10:00
c5d142ec9a debug: seperate SCOPED_SANITY from CHECK_SANITY
the former is for checking immediately and a scope exit, the latter is
for checking immediately.
2018-04-24 15:12:09 +10:00
f5399450ab debug: add RETURN_UNLESS convenience macro
returns a given value unless a condition is true. primarily useful for
computing is_valid and breaking if one of the preconditions isn't valid.
2018-04-24 15:11:18 +10:00
e2b55c7ee5 kmeans: use norm as default metric
this avoids relying on 'point' being the coordinate type
2018-04-24 11:53:58 +10:00
337e53b725 kmeans: allow parameterised distance metrics 2018-04-23 23:19:14 +10:00
44d5b655ab geom/plane: correct the sense of coefficient `D' 2018-04-23 22:14:05 +10:00
6290f0be93 geom/plane: add furthest point finder 2018-04-23 15:41:58 +10:00
87dda1c568 point: avoid signedness warnings for furthest point 2018-04-23 15:40:51 +10:00
ced76721ac maths: add array max/min convenience functions 2018-04-23 15:40:24 +10:00
90244c5347 debug: remove overly complicated specialisation of validator 2018-04-23 15:39:20 +10:00
97f64490cf debug: add WARN_RETURN macro 2018-04-23 15:39:07 +10:00
f3f26fca64 geom/plane: use 'd' contribution for distance 2018-04-20 15:32:20 +10:00
aab066593b geom/segment: add trivial segment representation 2018-04-20 15:08:06 +10:00
cce9333b65 geom/ray: style 2018-04-20 15:08:06 +10:00
cc83dd8713 geom/plane: add point-plane distance 2018-04-20 15:08:06 +10:00