Terra 1.0
|
The blending node. More...
#include <archestree.h>
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. | |
The blending node.
The blending node computes the weighted average of the children nodes.
|
explicit |
Create a blending operator.
v | Set of nodes. |
n | Subdivison. |
References agrid, TerraNode::box, ArrayIndex2::Insert(), TerraOperator::nodes, and Box2::SetParallelepipedic().
|
virtual |
Compute material at given point.
p | Point. |
Reimplemented from TerraBlend.
References agrid, ScalarAlpha::Alpha(), ArrayIndex2::At(), TerraNode::box, Array2::CellInteger(), Array2::GetSizeX(), Array2::GetSizeY(), Box2::Inside(), TerraOperator::nodes, and ScalarAlpha::Value().