Terra 1.0
TerraAdd Class Reference

A combination node that adds the thicknesses of the different materials. More...

#include <archestree.h>

Inheritance diagram for TerraAdd:
TerraBinary TerraNode

Public Member Functions

 TerraAdd (TerraNode *, TerraNode *, const double &=1.0)
 Create the node.
virtual ScalarAlpha ElevationAlpha (const Vector2 &) const
Public Member Functions inherited from TerraBinary
 TerraBinary (TerraNode *, TerraNode *)
 Create a binary node.
virtual ~TerraBinary ()
 Recusively destroy the sub-trees.
virtual int Traversal (const Vector2 &) const
 Compute the number of nodes that are traversed when evaluating the tree.
virtual int Memory () const
 Compute the size of a node.
virtual void Draw (QGraphicsScene &) const
 Renders the node into a QGraphicsScene.
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

double s
 Scaling coefficient.
Protected Attributes inherited from TerraBinary
TerraNodea = nullptr
 Left sub-tree.
TerraNodeb = nullptr
 Right sub-tree.
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

A combination node that adds the thicknesses of the different materials.

Constructor & Destructor Documentation

◆ TerraAdd()

TerraAdd::TerraAdd ( TerraNode * a,
TerraNode * b,
const double & s = 1.0 )
explicit

Create the node.

Parameters
a,bArgument sub-trees.
sScaling factor applied to the second tree.

References TerraBinary::a, TerraBinary::b, s, and TerraBinary::TerraBinary().

Member Function Documentation

◆ ElevationAlpha()

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