VIPRA Documentation
Loading...
Searching...
No Matches
subcondition_event_starting.hpp
1#pragma once
2
3#include "vipra/vipra_behaviors/conditions/sub_condition.hpp"
4#include "vipra/vipra_behaviors/definitions/behavior_context.hpp"
5#include "vipra/vipra_behaviors/definitions/sim_pack.hpp"
6#include "vipra/vipra_behaviors/events/event.hpp"
7#include "vipra/vipra_behaviors/util/class_types.hpp"
8
9namespace VIPRA::Behaviors {
10class SubConditionEventStarting {
11 NON_DEFAULT_CONSTRUCTIBLE(SubConditionEventStarting)
12 COPYABLE(SubConditionEventStarting)
13 MOVEABLE(SubConditionEventStarting)
14 public:
15 explicit SubConditionEventStarting(VIPRA::idx event) : _event(event) {}
16
17 void operator()(Simpack pack, const VIPRA::idxVec& /*unused*/,
18 std::vector<Target> const& /*unused*/, std::vector<bool>& met,
19 std::vector<bool> const& /*unused*/, BoolOp /*unused*/) const
20 {
21 std::fill(met.begin(), met.end(), pack.context.events[_event].is_starting());
22 }
23
24 private:
25 VIPRA::idx _event;
26};
27} // namespace VIPRA::Behaviors
Holds references to commonly used parameters for simpler passing.
Definition sim_pack.hpp:23