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

Image function. More...

#include <archestree.h>

Inheritance diagram for TerraCurveThick:
TerraPrimitive TerraNode

Public Member Functions

 TerraCurveThick (const QuadricCurve2Set &curve, const double &radius, const double &radius_external, const double &central_weight, const ScalarField2 &, const ScalarField2 &)
 Create a cubic curve skeleton. More...
 
 TerraCurveThick (const QuadricCurve2Set &curve, const double &radius, const double &radius_external, const CubicSet &curve_z, const ScalarField2 &, const ScalarField2 &)
 Create a cubic curve skeleton. More...
 
ScalarAlpha ElevationAlpha (const Vector2 &) const
 Compute a value with the turbulence. More...
 
bool ComputeUV (const Vector2 &, double &u, double &v) const
 Computes the U and V (parametrized arguments) of a 2D point. More...
 
virtual void Draw (QGraphicsScene &) const
 Draw.
 
- 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.
 
virtual int Memory () const
 Compute the size of a node.
 
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

QuadricCurve2Set m_curve_xy
 2D Curve footprint (at more than distance == not defined)
 
- 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.
 

Detailed Description

Image function.

Constructor & Destructor Documentation

◆ TerraCurveThick() [1/2]

TerraCurveThick::TerraCurveThick ( const QuadricCurve2Set curve,
const double &  radius,
const double &  radius_external,
const double &  central_weight,
const ScalarField2 h,
const ScalarField2 a 
)

Create a cubic curve skeleton.

Parameters
curve_2D Cubic Curve.

References TerraNode::box, Box2::Extended(), QuadricCurve2Set::GetBox(), Cubic::Hermite(), m_curve_xy, and QuadricCurve2Set::Size().

◆ TerraCurveThick() [2/2]

TerraCurveThick::TerraCurveThick ( const QuadricCurve2Set curve,
const double &  radius,
const double &  radius_external,
const CubicSet curve_z,
const ScalarField2 h,
const ScalarField2 a 
)

Create a cubic curve skeleton.

Parameters
curve_2D Cubic Curve.

References TerraNode::box, Box2::Extended(), QuadricCurve2Set::GetBox(), and m_curve_xy.

Member Function Documentation

◆ ComputeUV()

bool TerraCurveThick::ComputeUV ( const Vector2 pt,
double &  u,
double &  v 
) const

Computes the U and V (parametrized arguments) of a 2D point.

Parameters
ptPoint.

References TerraNode::box, Box2::Inside(), m_curve_xy, QuadricCurve2Set::R(), and Vector2::ToVector().

Referenced by ElevationAlpha().

◆ ElevationAlpha()

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

Compute a value with the turbulence.

Parameters
pPoint.

Reimplemented from TerraNode.

References ComputeUV(), ScalarAlpha::Empty, and ScalarField2::Value().