Drag selection and snap to grid ok. Deselect not working though...
This commit is contained in:
+18
-3
@@ -46,7 +46,7 @@ namespace VISEQ::GRAPH {
|
||||
EDGES::VEC_SPTR_Edge remove_edges;
|
||||
EDGES::VEC_SPTR_Edge split_edges;
|
||||
|
||||
//VEC_SPTR_Node selected_nodes;
|
||||
VEC_SPTR_Node selected_nodes;
|
||||
|
||||
std::map<NODES::SPTR_Node, int> counter;
|
||||
|
||||
@@ -63,9 +63,24 @@ namespace VISEQ::GRAPH {
|
||||
std::ranges::sample(edges, std::back_inserter(o), 1, std::mt19937{std::random_device{}()});
|
||||
return std::dynamic_pointer_cast<VISEQ::GRAPH::EDGES::Edge>(o.front());
|
||||
}
|
||||
|
||||
|
||||
void select(){
|
||||
auto temp_nodes = nodes | RANGE_FILTER([](SPTR_Node n){return n->select();}) | std::ranges::to<VEC_SPTR_Node>();
|
||||
if(!KEYS_DOWN.shift) selected_nodes.clear();
|
||||
selected_nodes.insert(selected_nodes.end(), temp_nodes.begin(), temp_nodes.end());
|
||||
std::for_each(selected_nodes.begin(), selected_nodes.end(), [](SPTR_Node n){n->selected = true;});
|
||||
}
|
||||
|
||||
void deselect(){
|
||||
for(auto s : selected_nodes){
|
||||
s->selected = false;
|
||||
}
|
||||
selected_nodes.clear();
|
||||
}
|
||||
|
||||
VEC_SPTR_Node getSelection(){
|
||||
return nodes | RANGE_FILTER([](SPTR_Node n){return n->selected;}) | std::ranges::to<VEC_SPTR_Node>();
|
||||
return selected_nodes;
|
||||
//return nodes | RANGE_FILTER([](SPTR_Node n){return n->selected;}) | std::ranges::to<VEC_SPTR_Node>();
|
||||
}
|
||||
|
||||
void addNode(SPTR_Node node){
|
||||
|
||||
Reference in New Issue
Block a user