Terra 1.0
Public Member Functions | Protected Attributes | List of all members
TerraBlendGrid Class Reference

The blending node. More...

#include <archestree.h>

Inheritance diagram for TerraBlendGrid:
TerraBlend TerraOperator TerraNode

Public Member Functions

 TerraBlendGrid (QVector< TerraNode * >, int)
 Create a blending operator. More...
 
 ~TerraBlendGrid ()
 Destroy the node.
 
virtual ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute material at given point. More...
 
- Public Member Functions inherited from TerraBlend
 TerraBlend (QVector< TerraNode * >)
 Create a blending node. More...
 
 TerraBlend (TerraNode *, TerraNode *, TerraNode *=nullptr, TerraNode *=nullptr)
 Create a blending node. More...
 
 ~TerraBlend ()
 Empty.
 
virtual void Draw (QGraphicsScene &) const
 Draw the sub-tree.
 
virtual int Traversal (const Vector2 &) const
 Compute the number of nodes that are traversed when evaluating the tree. More...
 
virtual void writeJson (QJsonObject &)
 Compute the Json Document of the subtree.
 
- Public Member Functions inherited from TerraOperator
 TerraOperator (const QVector< TerraNode * > &)
 Create a generic operator. More...
 
 TerraOperator (TerraNode *, TerraNode *=nullptr, TerraNode *=nullptr, TerraNode *=nullptr)
 Create a node with several children nodes. More...
 
 ~TerraOperator ()
 Recursively destroys the complete 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...
 
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...
 

Protected Attributes

ArrayIndex2 agrid
 Array of nodes.
 
- Protected Attributes inherited from TerraOperator
QVector< TerraNode * > nodes
 Array of nodes that will be combined.
 
- 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

The blending node.

The blending node computes the weighted average of the children nodes.

Constructor & Destructor Documentation

◆ TerraBlendGrid()

TerraBlendGrid::TerraBlendGrid ( QVector< TerraNode * >  v,
int  n 
)
explicit

Create a blending operator.

Parameters
vSet of nodes.
nSubdivison.

References agrid, TerraNode::box, ArrayIndex2::Insert(), TerraOperator::nodes, and Box2::SetParallelepipedic().

Member Function Documentation

◆ ElevationAlpha()

ScalarAlpha TerraBlendGrid::ElevationAlpha ( const Vector2 p) const
virtual