Blob 1.0
Public Member Functions | Protected Attributes | List of all members
BlendCompact Class Referenceabstract

Falloff functions with a compact support. More...

#include <blend.h>

Inheritance diagram for BlendCompact:
BlendAnalytic BlendSchlick BlendCubic BlendQuadric BlendQuartic BlendWyvill

Public Member Functions

 BlendCompact ()
 Empty.
 
 BlendCompact (const double &, const double &)
 Stores the radius of influence and the strength (maximum intensity). More...
 
virtual ~BlendCompact ()
 Empty.
 
virtual double Eval (const double &) const =0
 Evaluate falloff function.
 
virtual double Gradient (const double &) const =0
 Evaluate the first derivative of the falloff function.
 
virtual BlendCompactCopy () const =0
 Creates a deep copy of the falloff function.
 
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 double K (const double &, const double &) const
 Returns the Lipschitz constant of the blend.
 
virtual double Radius (const double &) const
 Computes the radius of the blending function given a threshold value. More...
 
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 int Memory () const
 Compute the size of a falloff node.
 

Protected Attributes

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

Falloff functions with a compact support.

Those potential functions are characterized by a radius of influence and the maximum intensity of the potential function.

Constructor & Destructor Documentation

◆ BlendCompact()

BlendCompact::BlendCompact ( const double &  r,
const double &  s 
)

Stores the radius of influence and the strength (maximum intensity).

Parameters
rRadius.
sStrength.

Member Function Documentation

◆ Alpha()

void BlendCompact::Alpha ( const double &  s)
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.

Parameters
sIntensity scaling factor.

Reimplemented in BlendAnalytic, BlendQuadric, BlendCubic, and BlendQuartic.

◆ Radius()

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

Computes the radius of the blending function given a threshold value.

This function implements a binary search to converge to the root.

Parameters
TThreshold value.

Reimplemented in BlendQuadric, BlendCubic, and BlendQuartic.

◆ Scale()

void BlendCompact::Scale ( const double &  s)
virtual

Scales the radius if the blending function.

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

Parameters
sRadius scaling factor.

Reimplemented in BlendAnalytic, BlendQuadric, BlendCubic, and BlendQuartic.