10 #include <Atoms/LayoutGenerators/LayoutGenerator.h>
28 virtual std::vector<AgentInitData>
generate(
double time) = 0;
32 bool checkGeneration(
double time);
38 void applyOffsetToData();
40 inline unsigned int dynamicGroupIdOffset()
const;
42 inline void setDynamicGroupIdOffset(
unsigned int value);
44 inline void addDynamicGroupIdOffset(
unsigned int value);
46 inline unsigned int dynamicMethod()
const;
48 inline void setDynamicMethod(
unsigned int value);
50 inline bool generateOnInitSimulation()
const;
52 inline void setGenerateOnInitSimulation(
bool value);
54 inline double timeToGenerate()
const;
56 inline void setTimeToGenerate(
double value);
58 inline void decreaseTimeToGenerate();
60 inline bool generatorTrigger()
const;
62 inline void setGeneratorTrigger(
bool value);
64 inline bool randomizeAgentTypes()
const;
66 inline void setRandomizeAgentTypes(
bool value);
68 inline bool resetSeed()
const;
70 inline void setResetSeed(
bool value);
72 inline const std::vector<std::string>& randomAgentTypes()
const;
74 inline void setRandomAgentTypes(
const std::vector<std::string>& value);
80 inline const std::vector<Atoms::AgentInitData>& getData()
const;
82 inline void setData(
const std::vector<Atoms::AgentInitData>& data,
bool check =
false);
86 AtomsCore::Rand48 m_randDynamic;
88 std::vector<std::string> m_randomAgentTypes;
92 std::vector<Atoms::AgentInitData> m_data;
96 double m_timeToGenerate;
98 unsigned int m_dynamicGroupIdOffset;
100 unsigned int m_dynamicMethod;
102 bool m_generateOnInit;
104 bool m_generatorTrigger;
106 bool m_randomizeAgentTypes;
113 #include "DynamicLayoutGenerator.impl.h"
Definition: DynamicLayoutGenerator.h:15
virtual const char * typeName()=0
Get the type name for this generator.
AgentTypePtr agentType(const int groupId, const std::string &groupIdStr) override
Get the agent type used by this generator.
virtual std::vector< AgentInitData > generate(double time)=0
Generate a vector of agent init data.
Layout generator.
Definition: LayoutGenerator.h:31
AtomsMath::Vector2 Vector2
Vector2 class.
Definition: AtomsMath.h:54
Atoms namespace.
Definition: Agent.h:29
AtomsPtr< AgentType > AgentTypePtr
Agent type pointer.
Definition: AgentType.h:17