Terra 1.0
TerraUnary Class Reference

Unary operators. More...

#include <archestree.h>

Inheritance diagram for TerraUnary:
TerraNode TerraAddNoise TerraCircleWarp TerraClampWeight TerraDiscCut TerraFrame TerraPlateau TerraScale TerraSmooth TerraTranslate TerraTwist TerraWarpNoise

Public Member Functions

 TerraUnary (TerraNode *)
 Create an unary node.
 
 ~TerraUnary ()
 Recusively destroy the sub-tree.
 
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.
 
- 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 ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute the elevation and weight.
 
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.
 
virtual void Draw (QGraphicsScene &) const
 Renders the node into a QGraphicsScene.
 

Static Public Member Functions

static TerraNodePutAt (TerraNode *, const Vector &, const double &, const Vector2 &)
 Place a node at a given location.
 
static TerraNodePutAt (TerraNode *, const double &, const Vector2 &)
 Place a node at a given location.
 

Protected Attributes

TerraNodenode = nullptr
 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

Unary operators.

Constructor & Destructor Documentation

◆ TerraUnary()

Member Function Documentation

◆ Memory()

int TerraUnary::Memory ( ) const
virtual

Compute the size of a node.

Reimplemented from TerraNode.

Reimplemented in TerraCircleWarp, TerraClampWeight, TerraDiscCut, TerraFrame, TerraPlateau, TerraScale, TerraTranslate, TerraTwist, and TerraWarpNoise.

References node, and TerraUnary().

◆ PutAt() [1/2]

TerraNode * TerraUnary::PutAt ( TerraNode * node,
const double & a,
const Vector2 & t )
static

Place a node at a given location.

Parameters
nodeSub-tree.
aRotation angle.
tTranslation vector

References node, and TerraNode::TerraNode().

◆ PutAt() [2/2]

TerraNode * TerraUnary::PutAt ( TerraNode * node,
const Vector & s,
const double & a,
const Vector2 & t )
static

Place a node at a given location.

Parameters
nodeSub-tree.
sScale.
aRotation angle.
tTranslation vector

References node, and TerraNode::TerraNode().

◆ Traversal()

int TerraUnary::Traversal ( const Vector2 & p) const
virtual

Compute the number of nodes that are traversed when evaluating the tree.

Parameters
pPoint.

Reimplemented from TerraNode.

Reimplemented in TerraAddNoise.

References TerraNode::box, and node.