Core 1.0
SmoothSphere Class Reference

A sphere domain with a cubic falloff decay. More...

#include <smooth.h>

Inheritance diagram for SmoothSphere:
Sphere

Public Member Functions

 SmoothSphere (const Vector &, const double &, const double &)
 Create a smooth sphere.
double Value (const Vector &) const
 Compute the intensity.
Box GetBox () const
 Compute the bounding box.

Protected Attributes

double re = 0.0
 Falloff radius.
Protected Attributes inherited from Sphere
Vector c = Vector::Null
 Center.
double r = 0.0
 Radius.

Additional Inherited Members

Protected Member Functions inherited from Sphere
 Sphere ()
 Empty.
 Sphere (const double &)
 Creates a sphere centered at origin with specified radius.
 Sphere (const Vector &, const double &=0.0)
 Creates a sphere given center and radius.
 Sphere (const Vector &, const Vector &)
 Creates a sphere given two points.
 Sphere (const Vector &, const Vector &, const Vector &)
 Creates a sphere given three vertices.
 Sphere (const Vector &, const Vector &, const Vector &, const Vector &)
 Create a sphere circumsizing four vertices.
 Sphere (const QVector< Vector > &)
 Compute the minimal bounding sphere of a set of points.
 ~Sphere ()
 Empty.
Vector Center () const
 Gets the center of a sphere.
double Radius () const
 Gets the radius of a sphere.
Box GetBox () const
 Compute the bounding box of a sphere.
bool Intersect (const Ray &) const
 Check the intersection between a sphere and a ray.
int Intersect (const Ray &, double &, double &) const
 Compute the intersection between a sphere and a ray.
int Intersect (const Ray &, double &, double &, Vector &, Vector &) const
 This function computes the intersections between a sphere and a ray.
bool Intersect (const Box &) const
 Box-sphere intersection test.
bool Intersect (const Sphere &, Circle &) const
 Check if two spheres intersect.
bool Intersect (const Sphere &) const
 Check if two spheres intersect.
bool SurfaceIntersect (const Sphere &) const
 Check if two spheres intersect, only considering their surface.
bool Intersect (const Ray &, double &) const
 This function computes the first intersection between a sphere and a ray.
bool Inside (const Vector &) const
 Check if a point is inside or outside the sphere.
double Volume () const
 Compute the volume of the sphere.
double Volume (const Sphere &) const
 Compute the volume of the intersection of two spheres.
double Area () const
 Compute the surface area of a sphere.
Vector Normal (const Vector &) const
 Computes the normal vector between a point and the sphere.
double R (const Vector &) const
 Compute the squared distance between a point and the sphere.
double Signed (const Vector &) const
 Compute the signed distance between a point and the sphere.
double R (const Sphere &) const
 Compute the signed distance between two spheres.
double R (const Vector &, const Vector &) const
 Compute the great-circle or orthodromic distance.
void Rotate (const Matrix &)
 Rotates a sphere.
void Translate (const Vector &)
 Translates a sphere.
void Scale (const double &)
 Uniformly scales a sphere.
Sphere Translated (const Vector &) const
 Translate a sphere.
Sphere Scaled (const Vector &) const
 Scales a sphere by a given vector.
Sphere Rotated (const Matrix &) const
 Rotates a sphere.
Sphere Transformed (const Frame &) const
 Transforms a sphere.
Sphere InverseTransformed (const Frame &) const
 Inverse transforms a sphere.
void Extend (const Vector &)
 Extend the sphere so that the argument point should be embedded in the new sphere.
void Extend (const double &)
 Extend the sphere, i.e. increase the radius of the sphere.
Sphere Extended (const double &) const
 Extend the sphere, i.e. increase the radius of the sphere.
Vector RandomSurface (Random &=Random::R239) const
 Generate a random point on the sphere.
Vector RandomInside (Random &=Random::R239) const
 Generate a random vector inside the sphere.
Vector Fibonacci (int, int) const
QVector< VectorPoisson (const double &, int, Random &=Random::R239) const
 Create a Poisson Disc sampling of the surface of the sphere.
Vector2 Euler (const Vector &) const
 Compute the Euler coordinates of a point.
Static Protected Member Functions inherited from Sphere
static Vector RandomNormal (Random &=Random::R239)
 Generate a random unit vector orthonormal to the sphere.
static double Area (const double &)
 Compute the surface area of a sphere.
static double Volume (const double &)
 Compute the volume of a sphere.
static Vector2 EquiRectangular (int, int, int, int)
 Compute the Euler coordinates of a point defined in a rectangle map.
static bool Intersection (const Sphere &, const Sphere &, const Sphere &, Vector &, Vector &)
 Compute the intersection of three spheres.
static bool Intersection (const Sphere &, const Sphere &, const Vector &, Vector &, Vector &)
 Compute the intersection of two spheres and a plane.
Static Protected Attributes inherited from Sphere
static const double epsilon = 1.0e-4
 \(\varepsilon\) for intersection tests.
static const Sphere Null
 Empty sphere.
static const Sphere Infinity
 Infinite sphere.
static const Sphere Unit
 Unit sphere.

Detailed Description

A sphere domain with a cubic falloff decay.

This class implements a simple spherical domain with constant intensity, and with a smooth cubic falloff decay function. It can be used to implement regions of influence, without resorting to the LibBlob.

Constructor & Destructor Documentation

◆ SmoothSphere()

SmoothSphere::SmoothSphere ( const Vector & c,
const double & r,
const double & re )
explicit

Create a smooth sphere.

Parameters
cCenter.
rRadius.
reFalloff radius.

Member Function Documentation

◆ Value()

double SmoothSphere::Value ( const Vector & p) const

Compute the intensity.

Parameters
pPoint.