24 VIPRA_MODULE_NAME(
"main");
25 VIPRA_MODULE_TYPE(Behavior_model);
28 VIPRA_REGISTER_PARAMS(VIPRA_PARAM(
"behaviors_dir", _behaviorsDir),
29 VIPRA_PARAM(
"behaviors", _behaviorNames))
37 Behaviors::AttributeHandling::cleanup();
39 build_behaviors(map, seed);
40 for (
auto& behavior : _behaviors ) {
41 behavior.initialize(pedset, map, goals);
44 behaviorTimings.start_new();
45 behaviorTimings.pause();
51 behaviorTimings.resume();
52 for (
auto& behavior : _behaviors ) {
53 behavior.timestep(pedset, map, goals, state, deltaT);
55 behaviorTimings.pause();
59 std::string _behaviorsDir;
60 std::vector<std::string> _behaviorNames;
61 std::vector<Behaviors::HumanBehavior> _behaviors;
65 void build_behaviors(
Modules::Map const& map, VIPRA::seed seed)
68 std::transform(_behaviorNames.begin(), _behaviorNames.end(),
69 std::back_inserter(_behaviors), [&](
auto const& name) {
70 auto const filePath = _behaviorsDir +
'/' + (name +
".bhvr");
71 return builder.build(name, filePath, map, seed);
76 BehaviorModel() =
default;
77 BehaviorModel(BehaviorModel
const&) =
default;
78 auto operator=(BehaviorModel
const&) -> BehaviorModel& =
default;
79 BehaviorModel(BehaviorModel&&)
noexcept =
default;
80 auto operator=(BehaviorModel&&)
noexcept -> BehaviorModel& =
default;
83 Behaviors::AttributeHandling::cleanup();
84 behaviorTimings.stop();
85 behaviorTimings.output_timings();