Core 1.0
AnalyticScalarField2 Class Reference

A core analytic two-dimensional scalar field. More...

#include <scalarfield.h>

Inheritance diagram for AnalyticScalarField2:
GaborNoise Noise2 SimplexNoise2 WormNoise NoiseTurbulence2 ExponentialSimplexNoise SimplexTurbulence2 TurbulenceWormNoise

Public Member Functions

 AnalyticScalarField2 (bool=true)
 Constructor.
 
virtual double Value (const Vector2 &) const
 Compute the value of the field.
 
virtual Vector2 Gradient (const Vector2 &) const
 Compute the gradient of the field.
 
virtual Matrix2 Hessian (const Vector2 &) const
 Compute the hessian at a given point.
 
virtual ScalarField2 Sample (const Array2 &) const
 Create a discrete scalar field by sampling a given domain.
 
bool Inside (const double &) const
 Check if the value is considered as inside or outside.
 
void Curvature (const Vector2 &, double &, double &) const
 Compute the gaussian and mean curvatures.
 
virtual Box2 GetBox () const
 Return the bounding box.
 

Protected Member Functions

Matrix Local (const Vector2 &) const
 Compute the local neighborhood in the one-ring aroung a point.
 

Protected Attributes

bool sign = true
 Sign convention, used for normal computation.
 
Box2 box = Box2::Infinity
 Domain, set as infinite for base class.
 

Static Protected Attributes

static const double epsilon = 1e-6
 \epsilon; value for partial derivatives
 

Detailed Description

A core analytic two-dimensional scalar field.

Constructor & Destructor Documentation

◆ AnalyticScalarField2()

AnalyticScalarField2::AnalyticScalarField2 ( bool s = true)
inline

Constructor.

Parameters
sSign, by default set sign convention to true, i.e., negative values inside and positive outside.

Member Function Documentation

◆ Curvature()

void AnalyticScalarField2::Curvature ( const Vector2 & p,
double & gaussian,
double & mean ) const

Compute the gaussian and mean curvatures.

Parameters
pPoint.
gaussianReturned gaussian curvature.
meanReturned mean curvature.

◆ Gradient()

Vector2 AnalyticScalarField2::Gradient ( const Vector2 & p) const
virtual

Compute the gradient of the field.

Parameters
pPoint.

◆ Hessian()

Matrix2 AnalyticScalarField2::Hessian ( const Vector2 & p) const
virtual

Compute the hessian at a given point.

Parameters
pPoint.

◆ Inside()

bool AnalyticScalarField2::Inside ( const double & v) const
inline

Check if the value is considered as inside or outside.

Result depend on the sign definition of the implicit surface.

Parameters
vValue.

◆ Local()

Matrix AnalyticScalarField2::Local ( const Vector2 & p) const
protected

Compute the local neighborhood in the one-ring aroung a point.

Parameters
pPoint.

◆ Sample()

ScalarField2 AnalyticScalarField2::Sample ( const Array2 & a) const
virtual

Create a discrete scalar field by sampling a given domain.

Parameters
aDomain.

Reimplemented in ExponentialSimplexNoise, NoiseTurbulence2, and SimplexTurbulence2.

◆ Value()

double AnalyticScalarField2::Value ( const Vector2 & p) const
virtual

Compute the value of the field.

Parameters
pPoint.

Reimplemented in CellularTurbulence2, ExponentialSimplexNoise, GaborNoise, Noise2, NoiseTurbulence2, SimplexNoise2, SimplexTurbulence2, TurbulenceWormNoise, and WormNoise.