Terra 1.0
|
Add noise to the surface. More...
#include <archestree.h>
Public Member Functions | |
TerraAddMusgrave (TerraNode *node, const Vector2 &, const double &, const SimplexTurbulence2 &) | |
Create a blending node. More... | |
virtual ScalarAlpha | ElevationAlpha (const Vector2 &) const |
Compute the weight and the height of a given point in the plane. More... | |
void | Draw (QGraphicsScene &) const |
Draw the sub-tree. | |
int | Traversal (const Vector2 &) const |
Compute the number of nodes that are traversed when evaluating the tree. More... | |
Public Member Functions inherited from TerraUnary | |
TerraUnary (TerraNode *) | |
Create an unary node. More... | |
~TerraUnary () | |
Recusively destroy the sub-tree. | |
virtual int | Memory () const |
Compute the size of a node. More... | |
Public Member Functions inherited from TerraNode | |
TerraNode (const Box2 &=Box2::Infinity) | |
Create a node. More... | |
virtual Box2 | GetBox () const |
Returns the bouding box of a node. | |
virtual double | Elevation (const Vector2 &) const |
Compute the elevation at a given position. More... | |
virtual double | Alpha (const Vector2 &) const |
Compute the alpha mask at a given position. More... | |
virtual Vector2 | Gradient (const Vector2 &) const |
Compute the gradient at a given position. More... | |
virtual Vector | Normal (const Vector2 &) const |
Compute the normal at a given position. More... | |
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. More... | |
ScalarField2 | Alpha (const Array2 &) const |
Create a discrete scalar field by sampling the elevation over a given domain. More... | |
void | Blend (HeightField &) const |
Blend a given node with an existing terrain over an input heightfield. More... | |
void | Add (HeightField &) const |
Add a given node with an existing heightfield. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from TerraUnary | |
static TerraNode * | PutAt (TerraNode *, const Vector &, const double &, const Vector2 &) |
Place a node at a given location. More... | |
static TerraNode * | PutAt (TerraNode *, const double &, const Vector2 &) |
Place a node at a given location. More... | |
Protected Attributes inherited from TerraUnary | |
TerraNode * | node = nullptr |
Sub-tree. | |
Protected Attributes inherited from TerraNode | |
Box2 | box = Box2::Infinity |
Bounding box. | |
Static Protected Attributes inherited from TerraNode | |
static const double | epsilon = 1e-2 |
Epsilon value for gradient computations. | |
Add noise to the surface.
TerraAddMusgrave::TerraAddMusgrave | ( | TerraNode * | node, |
const Vector2 & | c, | ||
const double & | r, | ||
const SimplexTurbulence2 & | fractal | ||
) |
Create a blending node.
v | Argument children. |
|
virtual |
Compute the weight and the height of a given point in the plane.
p | Point. |
Implements TerraUnary.
References TerraNode::box, TerraNode::ElevationAlpha(), Box2::Inside(), TerraUnary::node, ScalarAlpha::SetValue(), Quadric::SmoothCompact(), ScalarAlpha::Value(), and SimplexTurbulence2::Value().
|
virtual |
Compute the number of nodes that are traversed when evaluating the tree.
p | Point. |
Reimplemented from TerraUnary.
References TerraNode::box, Box2::Inside(), TerraUnary::node, and TerraNode::Traversal().