geomc 1.0
A c++ linear algebra template library
|
A N-dimensional circle, sphere, or hypersphere. More...
#include <geomc/shape/Sphere.h>
Public Types | |
typedef ptype::point_t | point_t |
typedef T | elem_t |
The coordinate type of this shape. | |
Public Member Functions | |
constexpr | Sphere () |
constexpr | Sphere (T r) |
constexpr | Sphere (const point_t &c, T r) |
Rect< T, N > | bounds () const |
bool | contains (point_t p) const |
Shape-point intersection test. | |
bool | intersects (Sphere s) const |
point_t | convex_support (point_t d) const |
T | sdf (point_t p) const |
Signed distance function. | |
point_t | project (point_t p) const |
point_t | normal (point_t p) const |
Outward-facing direction. | |
Rect< T, 1 > | intersect (const Ray< T, N > &ray) const |
Shape-ray intersection test. | |
bool | intersects (const Convex< T, N, Shape > &other) const |
Convex shape overlap test. More... | |
Vec< T, N > | clip (Vec< T, N > p) const |
Nearest point on the interior of the shape. More... | |
Public Attributes | |
point_t | center |
Center of the sphere. | |
T | r |
Radius of the sphere. | |
Static Public Attributes | |
static constexpr size_t | N = _N |
The dimension of this shape. | |
A N-dimensional circle, sphere, or hypersphere.
|
inlineconstexpr |
Construct a sphere at the origin with radius 1.
|
inlineconstexpr |
Construct a sphere with center at the origin, having radius r
.
r | Radius of spehre. |
Construct a sphere with center at the point c
, having radius r
.
c | Center of sphere. |
r | Radius of spehre. |
Nearest point on the interior of the shape.
If p
is on the interior of the shape, return p
unaltered; otherwise orthogonally project p
to the shape's surface.
Convex shape overlap test.
other
; false otherwise. Sphere-sphere intersection test.
s | Another sphere. |
true
if s
overlaps with this sphere's volume, false otherwise. Return the point p
orthogonally projected onto the surface of the shape.