Terra 1.0
TerraBoxImage Class Reference

Height field node. More...

#include <archestree.h>

Inheritance diagram for TerraBoxImage:
TerraField TerraPrimitive TerraNode

Public Member Functions

 TerraBoxImage (const Box2 &, const QString &, const QString &)
 Create the node.
 
virtual ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute the elevation and weight.
 
virtual int Memory () const
 Compute the size of a node.
 
- Public Member Functions inherited from TerraField
 TerraField (const QString &)
 Create the node.
 
 TerraField (const QString &, const QString &)
 Create an image primitive.
 
- Public Member Functions inherited from TerraPrimitive
 TerraPrimitive (const double &=1.0, const double &=1.0)
 Create a primitive.
 
 ~TerraPrimitive ()
 Recusively destroy the sub-trees.
 
int Traversal (const Vector2 &) const
 Compute the number of nodes that are traversed when evaluating the tree.
 
double Alpha (const double &) const
 Compute the falloff function.
 
- 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.
 
virtual void Draw (QGraphicsScene &) const
 Renders the node into a QGraphicsScene.
 

Protected Attributes

Box2 box
 Location of the primitive.
 
- Protected Attributes inherited from TerraField
int alf = -1
 Indexes storing the reference to the field and the alpha mask.
 
- Protected Attributes inherited from TerraPrimitive
double alpha = 1.0
 Weight.
 
- Protected Attributes inherited from TerraNode
Box2 box = Box2::Infinity
 Bounding box.
 

Additional Inherited Members

- Static Public Member Functions inherited from TerraField
static void Store (const ScalarField2 &, const QString &)
 Store an image in the set of image instances.
 
static void Store (const QImage &, const QString &)
 Store an image in the set of image instances.
 
static void Store (const QString &, const QString &)
 Store an image in the set of image instances.
 
- Protected Member Functions inherited from TerraField
const ScalarField2GetImage (int) const
 Get the reference to the k-th image in the atlas.
 
- Static Protected Member Functions inherited from TerraField
static bool ExistsInStorage (const QString &)
 Checks if an image exists in the atlas.
 
static int IndexInStorage (const QString &)
 Checks if an image exists in the atlas, and returns its index.
 
- Static Protected Attributes inherited from TerraField
static QVector< ScalarField2images
 Set of images that will be shared by the instances of TerraField.
 
static QVector< QString > aliases
 Identifier as names of the images.
 
- Static Protected Attributes inherited from TerraNode
static const double epsilon = 1e-2
 Epsilon value for gradient computations.
 

Detailed Description

Height field node.

Constructor & Destructor Documentation

◆ TerraBoxImage()

TerraBoxImage::TerraBoxImage ( const Box2 & box,
const QString & h,
const QString & alpha )

Create the node.

Parameters
h,aThe name of the scalarfield and the alpha mask.
boxBox of the heightfield.

References TerraPrimitive::alpha, box, TerraNode::box, and TerraField::TerraField().

Referenced by Memory().

Member Function Documentation

◆ ElevationAlpha()

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

Compute the elevation and weight.

Parameters
pPoint.

Reimplemented from TerraNode.

References TerraField::alf, box, TerraField::GetImage(), and ScalarField2::Value().

◆ Memory()

int TerraBoxImage::Memory ( ) const
virtual

Compute the size of a node.

Reimplemented from TerraNode.

References TerraBoxImage().