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 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 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 Protected Attributes inherited from Sphere
static const double epsilon = 1.0e-4
  ε 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.