Core 1.0
SimplexNoise Class Reference

Simplex noise. More...

#include <noise.h>

Inheritance diagram for SimplexNoise:
AnalyticScalarField SimplexTurbulence

Public Member Functions

 SimplexNoise ()
 Empty.
 
 ~SimplexNoise ()
 Empty.
 
double Value (const Vector &) const
 Compute the simplex noise at a given point.
 
double K () const
 Return the global Lipschitz constant of the noise.
 
- Public Member Functions inherited from AnalyticScalarField
 AnalyticScalarField (bool=true)
 Constructor.
 
virtual Vector Gradient (const Vector &) const
 Compute the gradient of the field.
 
Matrix Hessian (const Vector &) const
 Compute the Hessian symmetric matrix of the field function.
 
virtual Vector Normal (const Vector &) const
 Compute the normal to the surface.
 
bool Inside (const double &) const
 Check if the value is considered as inside or outside.
 
virtual Color GetMaterial (const Vector &, const Vector &=Vector::Null) const
 Compute the color.
 
virtual Box GetBox () const
 Compute the bounding box of the scalar field.
 
void Curvature (const Vector &, double &, double &) const
 Compute the gaussian and mean curvatures.
 
Vector Cast (const Vector &, const double &, const double &=1e-6, int n=100) const
 Given a starting vertex x, project it onto the implicit surface following the gradient.
 
Vector Dichotomy (Vector, Vector, double, double, double, const double &=1.0e-4) const
 Compute the intersection between a segment and an implicit surface.
 
virtual bool GetSample (Vector &, const Box &, Random &=Random::R239) const
 Find a point sample on the implicit surface.
 
virtual int GetSamples (QVector< Vector > &, const Box &, int, Random &=Random::R239) const
 Find a set of random sample points on the implicit surface.
 
virtual QVector< VectorPoisson (double, int, Random &=Random::R239) const
 Compute a Poisson sphere distribution on an implicit surface.
 
virtual ScalarField2 Sample (const Rectangles &, int, int) const
 Compute the field function at the vertices a lattice.
 
virtual ScalarField2 Sample (const Quadrangle &, int) const
 Sample the scalar field on a quadrangle.
 
virtual ScalarField Sample (const Box &, int) const
 Sample the implicit surface to get a scalar field.
 
int Roots (const Ray &, const double &, const double &, const double &, double *, int=1, const double &=1.0e-4) const
 Find the intersections between a ray and an implicit surface on a given interval.
 
int Roots (const Ray &, const double &, const double &, const double &, const double &, const double &, double *, int=1, const double &=1.0e-4) const
 This functions searches the intersections between a ray and an implicit surface on a given interval.
 
virtual double K (const Box &) const
 Compute the local Lipschitz constant inside a box.
 
virtual double K (const Sphere &) const
 Compute the local Lipschitz constant inside a box.
 
virtual double K (const Segment &) const
 Compute the local Lipschitz constant along a segment.
 
virtual void Polygonize (int, Mesh &, const Box &, const double &=1e-4) const
 Compute the polygonal mesh approximating the implicit surface.
 
virtual void PolygonizeLucie (const Box &, Mesh &, bool, bool) const
 Implementation of the original continuation polygonization method.
 
virtual void PolygonizeLucie (const double &, Mesh &, bool, bool) const
 Wyvill's original marching cubes algorithm.
 
virtual void Dual (int, Mesh &, const Box &) const
 Dual polygonization.
 
virtual bool SphereTrace (const Ray &, const double &, const double &, const double &, double &, int &, const double &=1e-4) const
 Find the first intersection between a ray and an implicit surface on a given interval, using sphere tracing.
 
virtual void Polygonize (const Box &, QVector< Triangle > &, const double &=1e-4, bool=false) const
 Polygonize a cube.
 
virtual void Polygonize (const Tetrahedra &, QVector< Triangle > &, const double &=1e-4) const
 Polygonize a tetrahedral cell.
 
virtual Mesh PolygonizeOctree (const Box &, int, const double &=1e-4) const
 Compute the polygonal mesh approximating the implicit surface using an octree decomposition of space.
 
virtual void Voxelize (const Box &, int, Box &, QVector< Vector > &) const
 Voxelize the scalar field.
 
virtual void Voxelize (int, Voxel &, const Box &) const
 Voxelization.
 
virtual double Volume (int=5) const
 Computes the volume of the BlobTree.
 
virtual double Volume (const Box &, int) const
 Compute the volume of a BlobTree object.
 
virtual double Volume (const Box &, int, double &) const
 Compute the volume of an implicit surface.
 
virtual double StochasticVolume (const Box &, int) const
 Compute the volume of an implicit surface.
 
virtual Sphere Center (int) const
 Computes the gravity center of the BlobTree.
 
virtual Sphere Center (const Box &, int) const
 Compute the center of gravity of the BlobTree.
 
virtual void Colorize (const Mesh &, MeshColor &) const
 Colorize the vertexes of a mesh according to the analytic scalar field.
 

Static Protected Attributes

static const Vector gradient [12]
 Array of gradients for 3D noise.
 
static const int perm [512]
 Permutation table, 256 entries duplicated once to avoid modulo computations.
 
static const double G3 = 1.0 / 6.0
 Unskew factors for 3D case.
 
- Static Protected Attributes inherited from AnalyticScalarField
static int ncubes = 0
 Number of cubes processed by polygonization algorithms.
 
static const double Epsilon = 1e-6
 Epsilon value for partial derivatives.
 

Additional Inherited Members

- Static Public Member Functions inherited from AnalyticScalarField
static int Cubes ()
 Get the number of cubes processed.
 
- Protected Member Functions inherited from AnalyticScalarField
bool Find (Vector &, bool, const Box &, int=10000, Random &=Random::R239) const
 Find a random sample point inside or outside the surface.
 
- Protected Attributes inherited from AnalyticScalarField
bool sign = true
 Sign convention, used for normal computation.
 

Detailed Description

Simplex noise.

Simplex noise returns random values in [-1,+1] interval.

See also
Noise

Member Function Documentation

◆ Value()

double SimplexNoise::Value ( const Vector & p) const
virtual

Compute the simplex noise at a given point.

Parameters
pPoint.

Reimplemented from AnalyticScalarField.

Reimplemented in SimplexTurbulence.