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
{
16
class
LocomotionModule
:
public
Atoms::BehaviourModule
17
{
18
public
:
19
20
LocomotionModule
();
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
}
Atoms::AgentGroup
Agent group.
Definition:
AgentGroup.h:36
Atoms::BehaviourModule
Behaviour module.
Definition:
BehaviourModule.h:32
Atoms::DrawContext
Definition:
DrawContext.h:17
AtomsModules::LocomotionModule
Definition:
LocomotionModule.h:17
AtomsModules::LocomotionModule::draw
void draw(Atoms::DrawContext *context, const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
Draw.
AtomsModules::LocomotionModule::initSimulation
void initSimulation(Atoms::AgentGroup *agentGroup=nullptr)
Init simulation.
AtomsModules::LocomotionModule::endFrame
void endFrame(const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
End frame.
AtomsModules::LocomotionModule::agentsCreated
void agentsCreated(const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
Agents Created.
AtomsModules::LocomotionModule::preFrame
void preFrame(Atoms::AgentGroup *agentGroup=nullptr)
Pre frame.
Atoms
Public
AtomsModules
LocomotionModule.h