2 #include <Engine/Node/SimpleApi.hpp>
11 static const constexpr
auto prettyName =
"Angle mapper";
12 static const constexpr
auto objectKey =
"AngleMapper";
13 static const constexpr
auto category =
"Control/Mappings";
14 static const constexpr
auto author =
"ossia score";
15 static const constexpr
auto kind = Process::ProcessCategory::Mapping;
16 static const constexpr
auto description =
"Map the variation of an angle";
17 static const constexpr
auto tags = std::array<const char*, 0>{};
18 static const uuid_constexpr
auto uuid
19 = make_uuid(
"9b0e21ba-965a-4aa4-beeb-60cc5128c418");
21 static const constexpr value_in value_ins[]{value_in{
"in",
false}};
22 static const constexpr value_out value_outs[]{
"out"};
27 ossia::value prev_value{};
30 using control_policy = ossia::safe_nodes::default_tick;
32 run(
const ossia::value_port& p1, ossia::value_port& p2, ossia::token_request,
33 ossia::exec_state_facade,
State&
self)
38 for(
const auto& val : p1.get_data())
40 if(!
self.prev_value.valid())
42 self.prev_value = val.value;
49 if(
self.prev_value < val.value)
52 self.prev_value = val.value;
54 else if(
self.prev_value > val.value)
57 self.prev_value = val.value;
64 p2.write_value(std::move(output), val.timestamp);
Utilities for OSSIA data structures.
Definition: DeviceInterface.hpp:33
Definition: AngleNode.hpp:8