|
Grail (C++)
1.4.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;
46 bool Contains(
const std::string& paramName)
const;
52 template <
typename ParameterType>
53 void SetParameter(
const std::string& paramName,
const ParameterType& paramValue)
55 parameters[paramName] = &memory->template Emplace<TypedObjectParameter<ParameterType>>(paramValue);
59 template <
typename ParameterType>
62 auto param = GetParameter(paramName);
65 return param->GetValue<ParameterType>();
67 return ParameterType();
71 bool CollectionContains(
const std::string& collectionName,
unsigned int objectIndex)
const;
80 std::set<unsigned int>*
GetCollection(
const std::string& name);
84 const std::set<unsigned int>*
GetCollection(
const std::string& name)
const;
95 std::map<std::string, std::string>& nameValues)>
function);
105 std::map<std::string, ObjectParameter*> parameters{};
106 std::map<std::string, std::set<unsigned int>> indexCollections{};
110 const ObjectParameter* GetParameter(
const std::string& paramName)
const;
111 ObjectParameter* GetParameter(
const std::string& paramName);
112 void SerializeSnapshot(std::map<std::string, std::string>& nameValues)
const;
114 std::function<void(
const ParametrizedObject&
object, std::map<std::string, std::string>&)>serializeSnapshotFunction =
nullptr;
119 #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 the own one, replacing parameter with those of other in ca...
Definition: ParametrizedObject.cpp:60
The MemoryPool class - preallocated memory container for optimization issues.
Definition: MemoryPool.hh:79
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
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:53
The base class for parametrized objects (objects with parameters) used by the planning algorithm for ...
Definition: ParametrizedObject.hh:30
ParameterType GetParameterValue(const std::string ¶mName) const
Definition: ParametrizedObject.hh:60
Definition: PlannerSnapshots.h:45