Terra 1.0
TerraDiscNoise Class Reference

Procedural noise over a disc. More...

#include <archestree.h>

Inheritance diagram for TerraDiscNoise:
TerraDisc TerraPrimitive TerraNode

Public Member Functions

 TerraDiscNoise (const Disc2 &, const double &, const double &, const SimplexTurbulence2 &=SimplexTurbulence2(0.0, 1.0, 1.0, 0.5, 0.5, 4), const double &=1.0)
 Create a noise disc primitive.
virtual ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute material at a given point.
virtual int Memory () const
 Compute the size of the node.
Public Member Functions inherited from TerraDisc
 TerraDisc (const Disc2 &, const double &, const double &, const double &=1.0)
 Create a flat disc primitive.
void Draw (QGraphicsScene &) const
 Renders the node into a QGraphicsScene.
Public Member Functions inherited from TerraPrimitive
 TerraPrimitive (const double &=1.0, const double &=1.0)
 Create a primitive.
 ~TerraPrimitive ()
 Recusively destroy the sub-trees.
int Traversal (const Vector2 &) const
 Compute the number of nodes that are traversed when evaluating the tree.
double Alpha (const double &) const
 Compute the falloff function.
Public Member Functions inherited from TerraNode
 TerraNode (const Box2 &=Box2::Infinity)
 Create a node.
virtual Box2 GetBox () const
 Returns the bouding box of a node.
virtual double Elevation (const Vector2 &) const
 Compute the elevation at a given position.
virtual double Alpha (const Vector2 &) const
 Compute the alpha mask at a given position.
virtual Vector2 Gradient (const Vector2 &) const
 Compute the gradient at a given position.
virtual Vector Normal (const Vector2 &) const
 Compute the normal at a given position.
virtual void writeJson (QJsonObject &)
 Compute the Json Document of the subtree.
ScalarField2 Sample (const Array2 &) const
 Create a discrete scalar field by sampling the elevation over a given domain.
ScalarField2 Alpha (const Array2 &) const
 Create a discrete scalar field by sampling the elevation over a given domain.
void Blend (HeightField &) const
 Blend a given node with an existing terrain over an input heightfield.
void Add (HeightField &) const
 Add a given node with an existing heightfield.

Protected Attributes

SimplexTurbulence2 turbulence
 Turbulence.
Protected Attributes inherited from TerraDisc
Disc2 disc
 Disc.
double z
 Elevation.
Protected Attributes inherited from TerraPrimitive
double alpha = 1.0
 Weight.
Protected Attributes inherited from TerraNode
Box2 box = Box2::Infinity
 Bounding box.

Additional Inherited Members

Static Protected Attributes inherited from TerraNode
static const double epsilon = 1e-2
 Epsilon value for gradient computations.

Detailed Description

Procedural noise over a disc.

Constructor & Destructor Documentation

◆ TerraDiscNoise()

TerraDiscNoise::TerraDiscNoise ( const Disc2 & d,
const double & z,
const double & r,
const SimplexTurbulence2 & tu = SimplexTurbulence2(0.0, 1.0, 1.0, 0.5, 0.5, 4),
const double & al = 1.0 )
explicit

Create a noise disc primitive.

Parameters
dDisc.
zBase elevation.
aAmplitude of the noise.
lambdaFundamental wavelength.
rRadius.
alAlpha.

References TerraNode::box, Circle2::GetBox(), TerraDisc::TerraDisc(), turbulence, and TerraDisc::z.

Referenced by Memory().

Member Function Documentation

◆ ElevationAlpha()

ScalarAlpha TerraDiscNoise::ElevationAlpha ( const Vector2 & p) const
virtual

Compute material at a given point.

Parameters
pPoint.

Reimplemented from TerraDisc.

References TerraPrimitive::Alpha(), TerraNode::box, TerraDisc::disc, turbulence, and TerraDisc::z.