Commit Graph

79 Commits

Author SHA1 Message Date
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
63cf40eeca poisson-tool: use function objects for distances 2018-04-27 16:33:18 +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
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
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
dd369c7c9c geom/plane: add make_plane convenience function 2018-04-20 15:08:06 +10:00
56a73275c1 geom/line: add basic line class 2018-04-20 15:08:06 +10:00
89defb3bc2 geom/sample: add trivial poisson sample generator 2018-04-19 13:27:43 +10:00
dcd789a075 geom/ellipse: add naive covering ellipse impl 2018-04-18 21:48:55 +10:00
06350b53cf geom/ellipse: add sample_surface function 2018-04-17 17:11:29 +10:00
76c809f031 point/vector: homog no longer takes a size parameter 2018-04-17 14:26:23 +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
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
2eb0b429ef geom/sphere: style 2018-04-16 16:00:32 +10:00
05b1c2dd80 geom/ray: add matrix multiply operator 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
4e558ce9a9 geom/cylinder: add convenience cylinder3f typedef 2018-04-11 15:10:16 +10:00
40cf869d7e geom/tri: add triangle area formula 2018-04-09 12:49:09 +10:00
a4634a771b g/frustum: simplify aabb intersection test 2018-03-28 20:42:43 +11:00
14e2fc5bd5 geom/ray: use infinity, not nan, to signal no intersection 2018-03-27 16:06:34 +11:00
2d7e3e5d7d build: prefer iosfwd over iostream 2018-03-22 16:11:13 +11:00
0646b1c13b geom: move distance/intersection tests outside classes 2018-03-13 23:27:37 +11:00
b1276519ef geom: add simple frustum class 2018-03-13 22:37:40 +11:00
47efd293c9 geom/plane: use a vector for coefficients
this simplifies usage of the coefficients in other routines
2018-03-13 22:37:09 +11:00
95d13b9fe4 geom/aabb: rename p0,p1 to lo,hi
this makes their meaning more explicit
2018-03-13 15:42:29 +11:00
5bc2cf12d4 maths: use true constexpr values for pi 2018-03-12 23:06:15 +11:00
0e3fa05f05 build: migrate from ipp files to pure hpp files
ipp files weren't a great way of keeping things clean, and IDEs have a
little trouble dealing with the split configuration. this simplifies
debugging a great deal.
2018-02-28 11:49:13 +11:00
0351313c36 Merge branch 'master' into coord 2017-11-23 17:24:11 +11:00
d3f434b523 coord: make template parameters more flexible
The coordinate system was unable to support types that prohibited
redim or retype operations. Additionally, the `tags' type used for
providing named data parameters was unwiedly.

We remove much of the dependance on template template parameters in the
defined operations and instead define these in terms of a template
specialisation of is_coord.

The tag types were replaced with direct specialisation of the `store'
struct by the primary type, and passing this type through use of the
CRTP.
2017-11-22 17:03:00 +11:00
34788756d2 build: don't use './' as an include prefix
GCC produces ODR error when including paths of the form './foo' and
'foo' in the same binary. Rather than managing duplication we just
universally pick the absolute form over the relative form.
2017-11-22 16:49:37 +11:00
2cb5fd7391 geom/sample: prefer inline impl over ipp files 2017-08-29 12:28:54 +10:00
a91df8895d geom: prefer inline implementation over ipp 2017-08-29 12:19:58 +10:00
07d74187c5 geom/aabb: don't write the class name with ostream operators 2017-08-24 17:52:59 +10:00
e573c0bcc6 geom/aabb: style and headers 2017-08-24 17:52:46 +10:00
1277975708 geom/aabb: add brief class description 2017-08-24 17:27:46 +10:00