Atoms Crowd  7.0.0
Atoms::LayoutGenerator Class Referenceabstract

Layout generator. More...

#include <LayoutGenerator.h>

Inheritance diagram for Atoms::LayoutGenerator:
ATOMSUSD_NS::UsdCacheLayoutGenerator Atoms::CacheLayoutGenerator Atoms::DynamicLayoutGenerator Atoms::PointsLayoutGenerator Atoms::StadiumLayoutGenerator Atoms::SyncLayoutGenerator Atoms::CurveLayoutGenerator Atoms::CurvePairLayoutGenerator Atoms::GridLayoutGenerator Atoms::MeshScatterLayoutGenerator Atoms::SphereLayoutGenerator Atoms::TorusLayoutGenerator

Public Member Functions

 LayoutGenerator (bool isStatic=true)
 Constructor. More...
 
virtual ~LayoutGenerator ()
 Destructor.
 
virtual bool allowMultiLayoutGenerator ()
 Returns whether this layout generator can work in conjunction with other layout generators.
 
virtual bool allowMultiple ()
 Returns whether an Agent Group can have multiple instances of this layout generator.
 
virtual bool mustBeFirst ()
 Returns wheter this layout generator should be the first one in the stack.
 
bool isStaticGenerator () const
 Get the static state for this generator.
 
void setAsStaticGenerator (bool value)
 Set the static state for this generator.
 
virtual std::vector< AgentInitDatagenerate (double time)=0
 Generate a vector of agent init data.
 
virtual AgentTypePtr agentType (const int groupId, const std::string &groupIdStr)
 Get the agent type used by this generator.
 
void setAgentTypeAttributeCache (const BehaviourModuleAttributeCache< std::string > &agentTypeAttributeCache)
 
void setDirectionAttributeCache (const BehaviourModuleAttributeCache< AtomsCore::Vector3 > &directionAttributeCache)
 
void setUpVectorAttributeCache (const BehaviourModuleAttributeCache< AtomsCore::Vector3 > &upVectorAttributeCache)
 
std::atomic< size_t > & nextFreeId ()
 
const std::atomic< size_t > & nextFreeId () const
 
void setName (const std::string &name)
 Set the name of this generator.
 
const std::string & name ()
 Get the name of this generator.
 
virtual const char * typeName ()=0
 Get the type name for this generator.
 
void setGroupIdOffset (const int offset)
 Set the offset for the group ids of this layout generator.
 
const int groupIdOffset ()
 Get the offset for the group ids of this layout generator.
 
void setOffsetPelvisHeight (bool state)
 Sets the flag to offset height according to the distance between pelvis and foot.
 
void setOffsetPelvisHeightOverride (const std::map< int, bool > &value)
 Sets the map per agent to offset height according to the distance between pelvis and foot.
 
void setOffsetPelvisHeightAttributeCache (const BehaviourModuleAttributeCache< bool > &offsetPelvisHeightCache)
 Sets offset pelvis height attribute cache.
 

Static Public Member Functions

static const std::string getDefaultAgentType ()
 Get the default agent type name.
 

Protected Attributes

BehaviourModuleAttributeCache< bool > m_applyPelvisHeightOffsetCache
 
BehaviourModuleAttributeCache< std::string > m_agentTypeAttributeCache
 
BehaviourModuleAttributeCache< AtomsCore::Vector3m_directionAttributeCache
 
BehaviourModuleAttributeCache< AtomsCore::Vector3m_upVectorAttributeCache
 

Detailed Description

Layout generator.

A layout generator is responsible for generating a vector of agent initialization data. The agent group class actually generates the agents with this data. A layout generator can either be static (creates agents only when the simulation is initialized) or non-static (can create agents also during the simulation).

Constructor & Destructor Documentation

◆ LayoutGenerator()

Atoms::LayoutGenerator::LayoutGenerator ( bool  isStatic = true)

Constructor.

Parameters
isStaticThe static state for this generator

The documentation for this class was generated from the following files: