Grail (C++)  1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
grail::evaluator::BezierSpline< ContextType > Class Template Referencefinal

The BezierSpline class -Composite Cubic Bezier Curve. More...

#include <BezierSpline.hh>

Inheritance diagram for grail::evaluator::BezierSpline< ContextType >:
Collaboration diagram for grail::evaluator::BezierSpline< ContextType >:

Public Member Functions

 BezierSpline (std::shared_ptr< Evaluator< ContextType >> childEvaluator, const std::vector< Vector2 > &points, const std::vector< Vector2 > &tangents, float epsilon=0.001f)
 BezierSpline - Constructor. More...
 
 BezierSpline (std::shared_ptr< Evaluator< ContextType >> childEvaluator, std::vector< Vector2 > &&points, std::vector< Vector2 > &&tangents, float epsilon=0.001f)
 BezierSpline - Constructor. More...
 
virtual float Sample (float argument) const override final
 Sample - Transforms argument into output value depending on the type of Curve. More...
 
std::vector< Vector2 > & GetPoints ()
 GetPoints. More...
 
const std::vector< Vector2 > & GetPoints () const
 GetPoints. More...
 
std::vector< Vector2 > & GetTangents ()
 GetTangents. More...
 
const std::vector< Vector2 > & GetTangents () const
 GetTangents. More...
 
virtual data::EvaluatorType GetEvaluatorType () const override final
 
- Public Member Functions inherited from grail::evaluator::Curve< ContextType >
 Curve (std::shared_ptr< Evaluator< ContextType >> childEvaluator)
 Curve - Constructor. More...
 
 Curve (const Curve< ContextType > &other)=default
 
 Curve (Curve< ContextType > &&other)=default
 
virtual float Evaluate (const ContextType &context, data::UtilityEvaluatorSnapshot *const snapshot) const override final
 Evaluate - Called from EvaluateContext which also evaluates context, but without automatically filling snapshot with debug data. Should be overriden for each derived Evaluator. More...
 
- Public Member Functions inherited from grail::evaluator::Evaluator< ContextType >
float EvaluateContext (const ContextType &context, data::UtilityEvaluatorSnapshot *const snapshot) const
 EvaluateContext - evaluates provided context and if provided snapshot is not empty, fills it with debug data describing this node. More...
 

Additional Inherited Members

- Protected Member Functions inherited from grail::evaluator::Curve< ContextType >
virtual void DebugDump (const std::map< const void *, unsigned int > &nodeMapping, data::EvaluationDebugData &debugData) const override final
 DebugDump - Called from EvaluateContext, which generates additional debug data for each evaluator. Should be overriden in each derived evaluator to better reflect debug tree topology. More...
 

Detailed Description

template<typename ContextType>
class grail::evaluator::BezierSpline< ContextType >

The BezierSpline class -Composite Cubic Bezier Curve.

Template Parameters
ContextType- Type of evaluated object. By default - ValueTuple(AIEntity, Blackboard).

Constructor & Destructor Documentation

◆ BezierSpline() [1/2]

template<typename ContextType >
grail::evaluator::BezierSpline< ContextType >::BezierSpline ( std::shared_ptr< Evaluator< ContextType >>  childEvaluator,
const std::vector< Vector2 > &  points,
const std::vector< Vector2 > &  tangents,
float  epsilon = 0.001f 
)
inline

BezierSpline - Constructor.

Parameters
childEvaluator- Evaluator which output will be transformed by this curve.
points- Collection of points. Each two sequenced pair of points describe P0 and P3 of partial spline.
tangents- Collection of tangent vectors. Each two sequenced pair of vector, added to corresponding points describe P1 and P2 of partial spline.
epsilon- number representing precision of comparison of two floats

◆ BezierSpline() [2/2]

template<typename ContextType >
grail::evaluator::BezierSpline< ContextType >::BezierSpline ( std::shared_ptr< Evaluator< ContextType >>  childEvaluator,
std::vector< Vector2 > &&  points,
std::vector< Vector2 > &&  tangents,
float  epsilon = 0.001f 
)
inline

BezierSpline - Constructor.

Parameters
childEvaluator- Evaluator which output will be transformed by this curve.
points- Collection of points. Each two sequenced pair of points describe P0 and P3 of partial spline.
tangents- Collection of tangent vectors. Each two sequenced pair of vector, added to corresponding points describe P1 and P2 of partial spline.
epsilon- number representing precision of comparison of two floats

Member Function Documentation

◆ GetPoints() [1/2]

template<typename ContextType >
std::vector<Vector2>& grail::evaluator::BezierSpline< ContextType >::GetPoints ( )
inline

GetPoints.

Returns
Points passed to this object in its constructor.

◆ GetPoints() [2/2]

template<typename ContextType >
const std::vector<Vector2>& grail::evaluator::BezierSpline< ContextType >::GetPoints ( ) const
inline

GetPoints.

Returns
Points passed to this object in its constructor.

◆ GetTangents() [1/2]

template<typename ContextType >
std::vector<Vector2>& grail::evaluator::BezierSpline< ContextType >::GetTangents ( )
inline

GetTangents.

Returns
Tangents passed to this object in its constructor

◆ GetTangents() [2/2]

template<typename ContextType >
const std::vector<Vector2>& grail::evaluator::BezierSpline< ContextType >::GetTangents ( ) const
inline

GetTangents.

Returns
Tangents passed to this object in its constructor

◆ Sample()

template<typename ContextType >
virtual float grail::evaluator::BezierSpline< ContextType >::Sample ( float  argument) const
inlinefinaloverridevirtual

Sample - Transforms argument into output value depending on the type of Curve.

Parameters
argument- Value of a curve argument belonging to its domain.
Returns
Transformed argument.

Implements grail::evaluator::Curve< ContextType >.


The documentation for this class was generated from the following file: