Terra 1.0
Public Member Functions | List of all members
TerraCubicImage Class Reference

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

#include <archestree.h>

Inheritance diagram for TerraCubicImage:
TerraCubic TerraImages TerraPrimitive TerraPrimitive TerraNode TerraNode

Public Member Functions

 TerraCubicImage (const Vector &, const Vector &, const Vector &, const Vector &, const double &, const double &, const QString &, const QString &, const double &=0.5)
 Create an image-based primitive along a curve. More...
 
virtual ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute the elevation and weight. More...
 
virtual int Memory () const
 Compute the size of a node.
 
- Public Member Functions inherited from TerraCubic
 TerraCubic (const Vector &, const Vector &, const Vector &, const Vector &, const double &, const double &)
 Create a generate cubic curve skeletal element. More...
 
- Public Member Functions inherited from TerraPrimitive
 TerraPrimitive ()
 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. 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...
 
- Public Member Functions inherited from TerraImages
 TerraImages (const QString &)
 Create the node. More...
 
 TerraImages (const QString &, const QString &)
 Create an image primitive. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from TerraImages
static void Store (const ScalarField2 &, const QString &)
 Store an image in the set of image instances. More...
 
static void Store (const QImage &, const QString &)
 Store an image in the set of image instances. More...
 
static void Store (const QString &, const QString &)
 Store an image in the set of image instances. More...
 
- Public Attributes inherited from TerraCubic
Vector b
 End vertices of the curve.
 
CubicCurve2 c
 Cubic curve in the plane.
 
Cubic z
 Cubic elevation along curve.
 
double rb
 Offset radius.
 
- Protected Member Functions inherited from TerraImages
const ScalarField2GetImage (int) const
 Get the reference to the k-th image in the atlas. More...
 
- Static Protected Member Functions inherited from TerraImages
static bool ExistsInStorage (const QString &)
 Checks if an image exists in the atlas. More...
 
static int IndexInStorage (const QString &)
 Checks if an image exists in the atlas, and returns its index. More...
 
- Protected Attributes inherited from TerraNode
Box2 box = Box2::Infinity
 Bounding box.
 
- Protected Attributes inherited from TerraImages
int ref
 Index storing the reference to the field.
 
int alf
 Index storing the reference to the field.
 
- Static Protected Attributes inherited from TerraNode
static const double epsilon = 1e-2
 Epsilon value for gradient computations.
 
- Static Protected Attributes inherited from TerraImages
static QVector< ScalarField2images
 Set of images that will be shared by the instances of TerraImages.
 
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,
const double &  beta = 0.5 
)
explicit

Create an image-based primitive along a curve.

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

References TerraNode::box, Box2::Extend(), and TerraCubic::z.

Referenced by Memory().

Member Function Documentation

◆ ElevationAlpha()

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

Compute the elevation and weight.

Parameters
pPoint.

Implements TerraImages.

References TerraNode::box, TerraCubic::c, Box2::Inside(), CubicCurve2::Normal(), TerraCubic::rb, CubicCurve2::UV(), and TerraCubic::z.