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

The PowerFunction class - Power function. More...

#include <PowerFunction.hh>

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

Public Member Functions

 PowerFunction (std::shared_ptr< Evaluator< ContextType >> childEvaluator, float slope, float intercept, float exponent)
 PowerFunction - Constructor. More...
 
 PowerFunction (std::shared_ptr< Evaluator< ContextType >> childEvaluator, std::pair< float, float > firstPoint, std::pair< float, float > secondPoint, float exponent)
 PowerFunction - Constructor. More...
 
virtual float Sample (float argument) const override final
 Sample - Transforms argument into output value depending on the type of Curve. More...
 
float GetSlope () const
 GetSlope. More...
 
float GetIntercept () const
 GetIntercept. More...
 
float GetExponent () const
 GetExponent. 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::PowerFunction< ContextType >

The PowerFunction class - Power function.

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

Constructor & Destructor Documentation

◆ PowerFunction() [1/2]

template<typename ContextType >
grail::evaluator::PowerFunction< ContextType >::PowerFunction ( std::shared_ptr< Evaluator< ContextType >>  childEvaluator,
float  slope,
float  intercept,
float  exponent 
)
inline

PowerFunction - Constructor.

Parameters
childEvaluator- Evaluator which output will be transformed by this curve.
slope- "a" parameter of linear function which will be raised to power.
intercept- "b" parameter of linear function which will be raised to power.
exponent- Value to which power linear function will be raised.

◆ PowerFunction() [2/2]

template<typename ContextType >
grail::evaluator::PowerFunction< ContextType >::PowerFunction ( std::shared_ptr< Evaluator< ContextType >>  childEvaluator,
std::pair< float, float >  firstPoint,
std::pair< float, float >  secondPoint,
float  exponent 
)
inline

PowerFunction - Constructor.

Parameters
childEvaluator- Evaluator which output will be transformed by this curve.
firstPoint- Beginning of the segment describing linear function, which will be raised to power.
secondPoint- End of the segment describing linear function, which will be raised to power.
exponent- Value to which power linear function will be raised.

Member Function Documentation

◆ GetExponent()

template<typename ContextType >
float grail::evaluator::PowerFunction< ContextType >::GetExponent ( ) const
inline

GetExponent.

Returns
Value to which power linear function will be raised.

◆ GetIntercept()

template<typename ContextType >
float grail::evaluator::PowerFunction< ContextType >::GetIntercept ( ) const
inline

GetIntercept.

Returns
"b" parameter of linear function which will be raised to power.

◆ GetSlope()

template<typename ContextType >
float grail::evaluator::PowerFunction< ContextType >::GetSlope ( ) const
inline

GetSlope.

Returns
"a" parameter of linear function which will be raised to power.

◆ Sample()

template<typename ContextType >
virtual float grail::evaluator::PowerFunction< 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: