 |
Grail (C++)
1.1.1
A multi-platform, modular, universal engine for embedding advanced AI in games.
|
1 #ifndef GRAIL_CONSIDERATION_H
2 #define GRAIL_CONSIDERATION_H
4 #include "Evaluator.hh"
5 #include "../GrailCore/AIEntity.hh"
6 #include "../GrailCore/Blackboard.hh"
12 template <
typename ContextType>
30 virtual EvaluatorType GetEvaluatorType()
const override final {
return EvaluatorType::CONSIDERATION; }
32 virtual std::string GetDisplayName()
const {
return "unnamed_consideration"; }
40 virtual float Evaluate(
const ContextType& context)
const = 0;
42 virtual void DebugDump(
const std::map<const void*, std::size_t>&,
45 debugData.SetMetadata(GetDisplayName());
61 using DefaultConsideration = Consideration<const AIEntity*>;
62 using EntityBlackboardPair = std::pair<const AIEntity*, Blackboard>;
63 using UtilityConsideration = Consideration<EntityBlackboardPair>;
66 #endif //GRAIL_CONSIDERATION_H
virtual void DebugDump(const std::map< const void *, std::size_t > &, EvaluationDebugData &debugData) const override final
DebugDump - Called from EvaluateContext, which generates additional debug data for each evaluator....
Definition: Consideration.hh:42
virtual float Evaluate(const ContextType &context, UtilityEvaluatorSnapshot *const snapshot) const override final
Evaluate - Called from EvaluateContext which also evaluates context, but without automatically fillin...
Definition: Consideration.hh:55
The UtilityEvaluatorSnapshot class - debug snapshot of whole evaluator tree assigned to evaluated obj...
Definition: UtilityEvaluatorSnapshot.h:21
virtual float Evaluate(const ContextType &context) const =0
Evaluate - Abstract method, which should be overriden by the user to return proper value representing...
The Consideration class - Abstract type of Evaluator representing a subset of game state.
Definition: Consideration.hh:17
The EvaluationDebugData class - debug data describing singular evaluator.
Definition: EvaluationDebugData.h:19
The Evaluator class - base class being able to evaluate given context and output the result.
Definition: Evaluator.hh:20