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

Transformation operator. More...

#include <archestree.h>

Inheritance diagram for TerraTransform:
TerraUnary TerraNode

Public Member Functions

 TerraTransform (TerraNode *, const Frame2 &)
 Create a transformation node. More...
 
 TerraTransform (TerraNode *, const Linear &, const Vector2 &=Vector(1.0), const Frame2 &=Frame2::Id)
 Create a transformation node. More...
 
 ~TerraTransform ()
 Recursively destroys the sub-tree.
 
ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute the elevation and weight. More...
 
virtual int Memory () const
 Compute the size of a node. More...
 
- Public Member Functions inherited from TerraUnary
 TerraUnary (TerraNode *)
 Create an unary node. More...
 
 ~TerraUnary ()
 Recusively destroy the sub-tree.
 
virtual int Traversal (const Vector2 &) const
 Compute the number of nodes that are traversed when evaluating the tree. 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...
 
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. 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...
 
virtual void Draw (QGraphicsScene &) const
 Renders the node into a QGraphicsScene. More...
 

Protected Attributes

Vector2 scale
 Horizontal scaling.
 
Frame2 frame
 Frame.
 
Linear zscale
 Linear transformation.
 
- Protected Attributes inherited from TerraUnary
TerraNodenode = nullptr
 Sub-tree.
 
- Protected Attributes inherited from TerraNode
Box2 box = Box2::Infinity
 Bounding box.
 

Additional Inherited Members

- Static Public Member Functions inherited from TerraUnary
static TerraNodePutAt (TerraNode *, const Vector &, const double &, const Vector2 &)
 Place a node at a given location. More...
 
static TerraNodePutAt (TerraNode *, const double &, const Vector2 &)
 Place a node at a given location. More...
 
- Static Protected Attributes inherited from TerraNode
static const double epsilon = 1e-2
 Epsilon value for gradient computations.
 

Detailed Description

Transformation operator.

Constructor & Destructor Documentation

◆ TerraTransform() [1/2]

TerraTransform::TerraTransform ( TerraNode n,
const Frame2 f 
)
explicit

Create a transformation node.

Parameters
nSub-tree.
fFrame.

Referenced by Memory().

◆ TerraTransform() [2/2]

TerraTransform::TerraTransform ( TerraNode n,
const Linear l,
const Vector2 s = Vector(1.0),
const Frame2 f = Frame2::Id 
)
explicit

Create a transformation node.

Parameters
nSub-tree.
sScaling.
fFrame.

References TerraNode::box, frame, TerraNode::GetBox(), TerraUnary::node, scale, Box2::Scaled(), and zscale.

Member Function Documentation

◆ ElevationAlpha()

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

◆ Memory()

int TerraTransform::Memory ( ) const
virtual

Compute the size of a node.

Reimplemented from TerraUnary.

References TerraNode::Memory(), TerraUnary::node, and TerraTransform().