 |
Grail (C++)
1.1.1
A multi-platform, modular, universal engine for embedding advanced AI in games.
|
1 #ifndef GRAIL_AGGREGATOR_H
2 #define GRAIL_AGGREGATOR_H
4 #include "../Evaluator.hh"
15 template <
typename ContextType>
28 : childEvaluators{childEvaluators}
32 Aggregator(
const Aggregator<ContextType>&) =
default;
33 Aggregator(Aggregator<ContextType>&&) =
default;
37 Aggregator& operator =(
const Aggregator<ContextType>&) =
default;
38 Aggregator& operator =(Aggregator<ContextType>&&) =
default;
41 virtual void DebugDump(
const std::map<const void*, std::size_t>& nodeMapping,
44 for(
const auto& childEvaluator : childEvaluators)
46 debugData.
AddChildNode(nodeMapping.at(childEvaluator.get()));
50 std::vector<std::shared_ptr<Evaluator<ContextType>>> childEvaluators{};
54 #endif //GRAIL_EVALUATOR_H
virtual void DebugDump(const std::map< const void *, std::size_t > &nodeMapping, EvaluationDebugData &debugData) const override
DebugDump - Called from EvaluateContext, which generates additional debug data for each evaluator....
Definition: Aggregator.hh:41
The Aggregator class - Base class for an Evaluator aggregating multiple other Evaluators' scores into...
Definition: Aggregator.hh:20
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
void AddChildNode(std::size_t childNodeIndex)
AddChildNode - add node as leaf/child to this data node.
Definition: EvaluationDebugData.cpp:10
Aggregator(const std::vector< std::shared_ptr< Evaluator< ContextType >>> &childEvaluators)
Aggregator - Constructor.
Definition: Aggregator.hh:27