|
Grail (C++)
1.3.0
A multi-platform, modular, universal engine for embedding advanced AI in games.
|
3 #ifndef GRAIL_PARAMETRIZED_OBJECT_H
4 #define GRAIL_PARAMETRIZED_OBJECT_H
6 #include "TypedObjectParameter.hh"
7 #include "../../MemoryPool.hh"
14 #include <unordered_map>
15 #include <unordered_set>
22 struct PlannerActionSnapshot;
43 bool Contains(
const std::string& paramName)
const;
47 template <
typename ParameterType>
48 void SetParameter(
const std::string& paramName,
const ParameterType& paramValue)
50 parameters[paramName] = &memory->template Emplace<TypedObjectParameter<ParameterType>>(paramValue);
54 template <
typename ParameterType>
57 auto param = GetParameter(paramName);
60 return param->GetValue<ParameterType>();
62 return ParameterType();
66 bool CollectionContains(
const std::string& collectionName,
unsigned int objectIndex)
const;
74 std::set<unsigned int>*
GetCollection(
const std::string& name);
78 const std::set<unsigned int>*
GetCollection(
const std::string& name)
const;
89 std::map<std::string, std::string>& nameValues)>
function);
99 std::map<std::string, ObjectParameter*> parameters{};
100 std::map<std::string, std::set<unsigned int>> indexCollections{};
104 const ObjectParameter* GetParameter(
const std::string& paramName)
const;
105 ObjectParameter* GetParameter(
const std::string& paramName);
106 void SerializeSnapshot(std::map<std::string, std::string>& nameValues)
const;
108 std::function<void(
const ParametrizedObject&
object, std::map<std::string, std::string>&)>serializeSnapshotFunction =
nullptr;
113 #endif //GRAIL_PARAMETRIZED_OBJECT_H
bool CollectionContains(const std::string &collectionName, unsigned int objectIndex) const
Definition: ParametrizedObject.cpp:73
std::size_t GetParametersSize() const
Definition: ParametrizedObject.cpp:155
void MergeParameters(const ParametrizedObject &other)
MergeParameters - Adds other parameters to own, replacing parameter with other in case of conflict.
Definition: ParametrizedObject.cpp:60
The MemoryPool class - preallocated memory container for optimization issues.
Definition: MemoryPool.hh:77
bool Contains(const std::string ¶mName) const
Definition: ParametrizedObject.cpp:68
std::set< unsigned int > * GetCollection(const std::string &name)
Definition: ParametrizedObject.cpp:88
void AddCollection(const std::string &collectionName)
Definition: ParametrizedObject.cpp:83
bool HasEqualParams(const ParametrizedObject &other) const
true if the other object contains identical set of parameters (including the contents of collections)
Definition: ParametrizedObject.cpp:108
void SetSerializeSnapshotFunction(std::function< void(const ParametrizedObject &object, std::map< std::string, std::string > &nameValues)> function)
SetSerializeSnapshotFunction - Sets a function serializing a snapshot of parameter values to string.
Definition: ParametrizedObject.cpp:149
void SetParameter(const std::string ¶mName, const ParameterType ¶mValue)
Definition: ParametrizedObject.hh:48
Definition: ParametrizedObject.hh:27
ParameterType GetParameterValue(const std::string ¶mName) const
Definition: ParametrizedObject.hh:55
Definition: PlannerSnapshots.h:45