|
Atoms Crowd
4.1.0
|
10 #include <Atoms/Globals.h>
11 #include <AtomsCore/Globals.h>
12 #include <Atoms/AgentType.h>
13 #include <Atoms/AgentInitData.h>
18 class LayoutGenerator;
20 typedef AtomsPtr<LayoutGenerator> LayoutGeneratorPtr;
51 inline bool isStaticGenerator()
const;
54 inline void setAsStaticGenerator(
bool value);
57 virtual std::vector<AgentInitData>
generate(
double time) = 0;
65 inline std::atomic<size_t>& nextFreeId();
67 inline const std::atomic<size_t>& nextFreeId()
const;
70 inline void setName(
const std::string &name);
73 inline const std::string &name();
85 inline void setOffsetPelvisHeight(
bool state);
88 inline void setOffsetPelvisHeightOverride(
const std::map<int, bool>& value);
92 std::map<int, bool> m_offsetPelvisHeightOverride;
94 bool m_offsetPelvisHeight;
100 std::atomic<size_t> m_nextFreeId;
102 bool m_staticGenerator;
110 #include "LayoutGenerator.impl.h"
void setGroupIdOffset(const int offset)
Set the offset for the group ids of this layout generator.
AtomsPtr< AgentType > AgentTypePtr
Agent type pointer.
Definition: AgentType.h:17
virtual const char * typeName()=0
Get the type name for this generator.
virtual bool mustBeFirst()
Returns wheter this layout generator should be the first one in the stack.
virtual std::vector< AgentInitData > generate(double time)=0
Generate a vector of agent init data.
Atoms namespace.
Definition: Agent.h:28
virtual bool allowMultiLayoutGenerator()
Returns whether this layout generator can work in conjunction with other layout generators.
Layout generator.
Definition: LayoutGenerator.h:29
LayoutGenerator(bool isStatic=true)
Constructor.
virtual ~LayoutGenerator()
Destructor.
virtual bool allowMultiple()
Returns whether an Agent Group can have multiple instances of this layout generator.
const int groupIdOffset()
Get the offset for the group ids of this layout generator.