copy/paste partially. z-index experiments, but not working yet.

This commit is contained in:
Sebastian
2024-11-21 02:03:32 +01:00
parent df91a1b107
commit bfc14d5f6e
10 changed files with 172 additions and 139 deletions
+27 -1
View File
@@ -3,11 +3,11 @@
#include "datatypes.h"
#include "graph-manager.h"
#include "midi-node.h"
#include "node.h"
#include "signal.h"
#include "midi.h"
#include <chrono>
#include <locale>
#include <memory>
#include <thread>
@@ -75,6 +75,32 @@ namespace VISEQ::SIGNAL {
signals.back()->start = node;
}
void rerouteSignal(VEC_SPTR_Node nodes, VEC_SPTR_Node adjacent_nodes){
auto reroute_signals = signals | RANGE_FILTER([nodes](SIGNAL::SPTR_Signal s){return std::ranges::contains(nodes, s->next);});
for(auto s : reroute_signals){
float dist = 10000000;
SPTR_Node next_node;
for(auto n : adjacent_nodes){
if(n->position.dist(s->position) < dist) {
dist = n->position.dist(s->position);
next_node = n;
}
}
s->next = next_node;
s->last = next_node;
}
}
void rebaseSignal(VEC_SPTR_Node nodes){
auto rebase_signals = signals | RANGE_FILTER([nodes](SIGNAL::SPTR_Signal s){return std::ranges::contains(nodes, s->start);});
for(auto s : rebase_signals){
s->start = s->next;
}
}
void removeSignal(std::shared_ptr<Signal> s){
erase_signals.push_back(s);
}