gfm ~master (2021-03-12T16:19:32Z)

- DimensionTypealias DimensionType
`(T : Segment!U, U...)`=`U[0]` - alias DimensionType
`(T : Triangle!U, U...)`=`U[0]` - alias DimensionType
`(T : Sphere!U, U...)`=`U[0]` - alias DimensionType
`(T : Ray!U, U...)`=`U[0]` - alias DimensionType
`(T : Plane!U, U)`=`U` - alias DimensionType
`(T : Frustum!U, U)`=`U` Get the numeric type used to measure a shape's dimensions.

- planedalias planed =
`Plane!double` - Undocumented in source.
- planefalias planef =
`Plane!float` - Undocumented in source.
- ray2dalias ray2d =
`Ray!(double, 2)` - Undocumented in source.
- ray2falias ray2f =
`Ray!(float, 2)` - Undocumented in source.
- ray3dalias ray3d =
`Ray!(double, 3)` - Undocumented in source.
- ray3falias ray3f =
`Ray!(float, 3)` - Undocumented in source.
- seg2dalias seg2d =
`Segment!(double, 2)` - Undocumented in source.
- seg2falias seg2f =
`Segment!(float, 2)` - Undocumented in source.
- seg2ialias seg2i =
`Segment!(int, 2)` - Undocumented in source.
- seg3dalias seg3d =
`Segment!(double, 3)` - Undocumented in source.
- seg3falias seg3f =
`Segment!(float, 3)` - Undocumented in source.
- seg3ialias seg3i =
`Segment!(int, 3)` - Undocumented in source.
- sphere2dalias sphere2d =
`Sphere!(double, 2)` - Undocumented in source.
- sphere2falias sphere2f =
`Sphere!(float, 2)` - Undocumented in source.
- sphere3dalias sphere3d =
`Sphere!(double, 3)` - Undocumented in source.
- sphere3falias sphere3f =
`Sphere!(float, 3)` - Undocumented in source.
- triangle2dalias triangle2d =
`Triangle!(double, 2)` - Undocumented in source.
- triangle2falias triangle2f =
`Triangle!(float, 2)` - Undocumented in source.
- triangle3dalias triangle3d =
`Triangle!(double, 3)` - Undocumented in source.
- triangle3falias triangle3f =
`Triangle!(float, 3)` - Undocumented in source.

- isFrustumeponymoustemplate isFrustum(T)
True if

`T`is a kind of Frustum- isPlaneeponymoustemplate isPlane(T)
True if

`T`is a kind of Plane- isRayeponymoustemplate isRay(T)
True if

`T`is a kind of Ray- isRay2Deponymoustemplate isRay2D(T)
True if

`T`is a kind of 2 dimensional Ray- isRay3Deponymoustemplate isRay3D(T)
True if

`T`is a kind of 3 dimensional Ray- isSegmenteponymoustemplate isSegment(T)
True if

`T`is a kind of Segment- isSegment2Deponymoustemplate isSegment2D(T)
True if

`T`is a kind of 2 dimensional Segment- isSegment3Deponymoustemplate isSegment3D(T)
True if

`T`is a kind of 3 dimensional Segment- isSphereeponymoustemplate isSphere(T)
True if

`T`is a kind of Sphere- isSphere2Deponymoustemplate isSphere2D(T)
True if

`T`is a kind of 2 dimensional Sphere- isSphere3Deponymoustemplate isSphere3D(T)
True if

`T`is a kind of 3 dimensional Sphere- isTriangleeponymoustemplate isTriangle(T)
True if

`T`is a kind of Triangle- isTriangle2Deponymoustemplate isTriangle2D(T)
True if

`T`is a kind of 2 dimensional Triangle- isTriangle3Deponymoustemplate isTriangle3D(T)
True if

`T`is a kind of 3 dimensional Triangle

- Frustumstruct Frustum(T)
3D frustum.

- Planestruct Plane(T)
3D plane.

- Raystruct Ray(T, int N)
A Ray ir a point + a direction.

- Segmentstruct Segment(T, int N)
A Segment is 2 points. When considered like a vector, it represents the arrow from a to b.

- Spherestruct Sphere(T, int N)
A Sphere is a point + a radius.

- Trianglestruct Triangle(T, int N)
A Triangle is 3 points.

This module implements some abstract geometric shapes: