Atoms Crowd  7.0.0
LocomotionModule.h
1 #pragma once
2 // ===========================================================================
3 // Copyright (c) 2015 Toolchefs Ltd. All rights reserved.
4 //
5 // Use of this software is subject to the terms of the Toolchefs license
6 // agreement provided at the time of installation or download, or which
7 // otherwise accompanies this software in either electronic or hard copy form.
8 // ===========================================================================
9 
10 #include <Atoms/BehaviourModule.h>
11 #include <Atoms/AnimationClip.h>
12 #include <Atoms/AgentTypes.h>
13 
14 namespace AtomsModules
15 {
17  {
18  public:
19 
21 
22  virtual ~LocomotionModule();
23 
24  void initSimulation(Atoms::AgentGroup* agentGroup = nullptr);
25 
26  void agentsCreated(const std::vector<Atoms::Agent*>& agents, Atoms::AgentGroup* agentGroup = nullptr);
27 
28  static Atoms::BehaviourModule* creator(const std::string& parameter);
29 
30  void preFrame(Atoms::AgentGroup* agentGroup = nullptr);
31 
32  void endFrame(const std::vector<Atoms::Agent*>& agents, Atoms::AgentGroup* agentGroup = nullptr);
33 
34  void draw(Atoms::DrawContext* context, const std::vector<Atoms::Agent*>& agents, Atoms::AgentGroup* agentGroup = nullptr);
35 
36  private:
37 
38  std::vector<Atoms::AgentTypePtr> clipAgentTypes;
39 
40  std::vector<std::pair<AtomsCore::Vector3, std::string>> m_debugData;
41 
42  bool m_debugMode;
43  bool m_hasAgentSelected;
44  };
45 }
Agent group.
Definition: AgentGroup.h:36
Behaviour module.
Definition: BehaviourModule.h:32
Definition: DrawContext.h:17
Definition: LocomotionModule.h:17
void draw(Atoms::DrawContext *context, const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
Draw.
void initSimulation(Atoms::AgentGroup *agentGroup=nullptr)
Init simulation.
void endFrame(const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
End frame.
void agentsCreated(const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
Agents Created.
void preFrame(Atoms::AgentGroup *agentGroup=nullptr)
Pre frame.