Terra 1.0
TerraCubicImage Class Reference

Image-based primitive along a curve. More...

#include <archestree.h>

Inheritance diagram for TerraCubicImage:
TerraCubic TerraField TerraPrimitive TerraPrimitive TerraNode TerraNode

Public Member Functions

 TerraCubicImage (const Vector &, const Vector &, const Vector &, const Vector &, const double &, const double &, const QString &, const QString &)
 Create an image-based primitive along a curve.
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 TerraCubic
 TerraCubic (const CubicCurve &, const double &, const double &, const double &, const double &=1.0, bool=true)
 Create a generate cubic curve skeletal element.
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.
Public Member Functions inherited from TerraField
 TerraField (const QString &)
 Create the node.
 TerraField (const QString &, const QString &)
 Create an image primitive.

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.
Public Attributes inherited from TerraCubic
CubicCurve2 cubic
 Cubic curve in the plane.
double rb
 Offset radius.
bool cut
 Boolean for round or straight cut.
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.
Protected Attributes inherited from TerraPrimitive
double alpha = 1.0
 Weight.
Protected Attributes inherited from TerraNode
Box2 box = Box2::Infinity
 Bounding box.
Protected Attributes inherited from TerraField
int alf = -1
 Indexes storing the reference to the field and the alpha mask.
Static Protected Attributes inherited from TerraCubic
static const double epsilon = 1e-6
 Epsilon value for computing the limit of the curvilinear absisca of a point along the curve.
Static Protected Attributes inherited from TerraNode
static const double epsilon = 1e-2
 Epsilon value for gradient computations.
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.

Detailed Description

Image-based primitive along a curve.

Constructor & Destructor Documentation

◆ TerraCubicImage()

TerraCubicImage::TerraCubicImage ( const Vector & a,
const Vector & b,
const Vector & ta,
const Vector & tb,
const double & r,
const double & z,
const QString & image,
const QString & alpha )
explicit

Create an image-based primitive along a curve.

Parameters
a,bControl points.
ta,tbControl tangents.
rRadius.
zElevation.

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

Referenced by Memory().

Member Function Documentation

◆ ElevationAlpha()

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

Compute the elevation and weight.

Parameters
pPoint.

Reimplemented from TerraCubic.

References TerraNode::box, TerraCubic::cubic, and TerraCubic::rb.