geomc 1.0
A c++ linear algebra template library
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
SphericalSector< T, N > Class Template Reference

A N-dimensional circle, sphere, or hypersphere. More...

#include <geomc/shape/SphericalSector.h>

Inheritance diagram for SphericalSector< T, N >:
Convex< T, N, SphericalSector< T, N > > RayIntersectable< T, N, SphericalSector< T, N > > Projectable< T, N, SphericalSector< T, N > > Bounded< T, _N, Derived > SdfEvaluable< T, N, Derived >

Public Types

typedef ptype::point_t point_t
 
typedef T elem_t
 The coordinate type of this shape.
 

Public Member Functions

constexpr SphericalSector ()
 
constexpr SphericalSector (const Sphere< T, N > &s, Vec< T, N > v, T cos_a)
 
constexpr SphericalSector (const point_t &c, T r, Vec< T, N > v, T cos_a)
 
Rect< T, Nbounds () const
 
bool contains (point_t p) const
 Shape-point intersection test.
 
point_t convex_support (point_t d) const
 
sdf (point_t p) const
 
point_t project (point_t p) const
 xxx todo More...
 
point_t normal (point_t p) const
 
Rect< T, 1 > intersect (const Ray< T, N > &ray) const
 
bool intersects (const Convex< T, N, Shape > &other) const
 Convex shape overlap test. More...
 
Vec< T, Nclip (Vec< T, N > p) const
 Nearest point on the interior of the shape. More...
 

Public Attributes

Sphere< T, Nsphere
 
Vec< T, Ndir
 Direction vector pointing toward the center of the sector cap.
 
cos_a
 Cosine of the opening half-angle.
 

Static Public Attributes

static constexpr size_t N = _N
 The dimension of this shape.
 

Detailed Description

template<typename T, index_t N>
class geom::SphericalSector< T, N >

A N-dimensional circle, sphere, or hypersphere.

Constructor & Destructor Documentation

◆ SphericalSector() [1/3]

constexpr SphericalSector ( )
inlineconstexpr

Construct a spherical sector at the origin with radius 1 and an opening half-angle of 45 degrees.

◆ SphericalSector() [2/3]

constexpr SphericalSector ( const Sphere< T, N > &  s,
Vec< T, N v,
cos_a 
)
inlineconstexpr

Construct a spherical sector with center at the origin, having radius r.

Parameters
rRadius of spehre.

◆ SphericalSector() [3/3]

constexpr SphericalSector ( const point_t c,
r,
Vec< T, N v,
cos_a 
)
inlineconstexpr

Construct a sphere with center at the point c, having radius r.

Parameters
cCenter of sphere.
rRadius of spehre.

Member Function Documentation

◆ clip()

Vec< T, N > clip ( Vec< T, N >  p) const
inlineinherited

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.

◆ intersect()

Rect< T, 1 > intersect ( const Ray< T, N > &  ray) const
inline

xxx todo Shape-ray intersection test.

◆ intersects()

bool intersects ( const Convex< T, N, Shape > &  other) const
inlineinherited

Convex shape overlap test.

Returns
True if and only if this convex shape overlaps other; false otherwise.

◆ normal()

point_t normal ( point_t  p) const
inline

xxx todo Outward-facing direction.

◆ project()

point_t project ( point_t  p) const
inline

xxx todo

Return the point p orthogonally projected onto the surface of the shape.

◆ sdf()

T sdf ( point_t  p) const
inline

xxx todo Signed distance function.


The documentation for this class was generated from the following file: