Blob 1.0
Public Member Functions | Protected Attributes | List of all members
BlendQuadric Class Reference

Quadric polynomial potential function. More...

#include <blend.h>

Inheritance diagram for BlendQuadric:
BlendAnalytic BlendCompact

Public Member Functions

 BlendQuadric (const double &, const double &=1.0)
 Creates a quadric polynomial potential function. More...
 
virtual ~BlendQuadric ()
 Empty.
 
virtual double Eval (const double &) const
 Computes the falloff value. More...
 
virtual double Gradient (const double &) const
 Computes the first derivative of the falloff function. More...
 
virtual double K (const double &, const double &) const
 Returns the Lipschitz constant of the blend.
 
virtual void Scale (const double &)
 Scales the radius if the blending function. More...
 
virtual void Alpha (const double &)
 Scales the maximum intensity of the blending function. More...
 
virtual BlendQuadricCopy () const
 Deep copy.
 
double Radius (const double &) const
 Computes the radius of the blend given a threshold value. More...
 
void Analytic (const Quadric &, Polynomial &) const
 Compute the closed form expression of the field along the ray. More...
 
- Public Member Functions inherited from BlendAnalytic
 BlendAnalytic ()
 Empty.
 
 BlendAnalytic (const double &, const double &)
 Stores the radius of influence and the strength (maximum intensity). More...
 
virtual ~BlendAnalytic ()
 Empty.
 
- Public Member Functions inherited from BlendCompact
 BlendCompact ()
 Empty.
 
 BlendCompact (const double &, const double &)
 Stores the radius of influence and the strength (maximum intensity). More...
 
virtual ~BlendCompact ()
 Empty.
 
double R () const
 Returns the radius of the blend.
 
double I () const
 Returns the strength (maximum intensity) of the blend.
 
virtual double K () const
 Returns the Lipschitz constant.
 
virtual int Memory () const
 Compute the size of a falloff node.
 

Protected Attributes

Quadric blend
 Quadric blending function.
 
- Protected Attributes inherited from BlendCompact
double r [2] = { 1.0,1.0 }
 Radius and squared radius.
 
double strength = 1.0
 Strength, i.e., maximum intensity.
 
double k = 1.0
 Lipschitz constant.
 

Detailed Description

Quadric polynomial potential function.

g(r)=(1-r2)2.

Constructor & Destructor Documentation

◆ BlendQuadric()

BlendQuadric::BlendQuadric ( const double &  r,
const double &  s = 1.0 
)
explicit

Creates a quadric polynomial potential function.

Parameters
rRadius.
sStrength.

Member Function Documentation

◆ Alpha()

void BlendQuadric::Alpha ( const double &  t)
virtual

Scales the maximum intensity of the blending function.

This function scales the internal strength parameter of the blending function radius, as well as the Lipschitz constant.

Reimplemented from BlendAnalytic.

◆ Analytic()

void BlendQuadric::Analytic ( const Quadric r,
Polynomial p 
) const
virtual

Compute the closed form expression of the field along the ray.

Simply plug-in the quadric equation of the distance along the ray into the equation of the blending function.

Parameters
rEquation of the squared distance to the skeleton.
pClosed form expression of the field along the ray.

Implements BlendAnalytic.

◆ Eval()

double BlendQuadric::Eval ( const double &  u) const
virtual

Computes the falloff value.

Parameters
uSquared distance.

Implements BlendCompact.

◆ Gradient()

double BlendQuadric::Gradient ( const double &  u) const
virtual

Computes the first derivative of the falloff function.

Parameters
uSquared distance.

Implements BlendCompact.

◆ Radius()

double BlendQuadric::Radius ( const double &  T) const
virtual

Computes the radius of the blend given a threshold value.

This function uses the closed form expression of the quadric, cubic or quartic blending function to compute the root of the equation.

Parameters
TThreshold value

Reimplemented from BlendCompact.

◆ Scale()

void BlendQuadric::Scale ( const double &  t)
virtual

Scales the radius if the blending function.

This function scales the internal radius, as well as the Lipschitz constant.

Reimplemented from BlendAnalytic.