From f3e7b51b1d2497cda7a66e13f4f50da145ece19c Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Fri, 20 Mar 2015 00:14:47 +0100 Subject: Added delete nodes/satellites (bzr r13645.1.45) --- src/2geom/pointwise.cpp | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'src/2geom/pointwise.cpp') diff --git a/src/2geom/pointwise.cpp b/src/2geom/pointwise.cpp index 584e78523..8f7a0b402 100644 --- a/src/2geom/pointwise.cpp +++ b/src/2geom/pointwise.cpp @@ -37,7 +37,7 @@ namespace Geom { Pointwise::Pointwise(Piecewise > pwd2) - : _pwd2(pwd2),_pathInfo(NULL), _satellites(NULL) + : _pwd2(pwd2) { setPathInfo(); }; @@ -273,36 +273,40 @@ Pointwise::new_pwd_sustract(Piecewise > A) sats.push_back(std::make_pair(_satellites[i].first-counter,_satellites[i].second)); } } + set_extremes(sats,false,true,0.0,0.0); setSatellites(sats); } void -Pointwise::set_extremes(bool active, bool hidden, double amount, double angle) +Pointwise::set_extremes(std::vector > sats, bool active, bool hidden, double amount, double angle) { for(unsigned int i = 0; i < _pathInfo.size(); i++){ unsigned int firstNode = getFirst(_pathInfo[i].first); unsigned int lastNode = getLast(_pathInfo[i].first); - std::cout << firstNode << "FIRSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n"; - std::cout << lastNode << "LASTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n"; if(!getIsClosed(lastNode)){ - std::cout << "CLOSSEDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD\n"; bool endOpen = false; - for(unsigned i = 0; i < _satellites.size(); i++){ - _satellites[i].second.setIsEndOpen(false); - if(_satellites[i].first == firstNode || _satellites[i].first == lastNode){ - _satellites[i].second.setActive(active); - _satellites[i].second.setHidden(hidden); - if(_satellites[i].first == lastNode){ + for(unsigned i = 0; i < sats.size(); i++){ + sats[i].second.setIsEndOpen(false); + if(sats[i].first > lastNode){ + break; + } + if(sats[i].first == firstNode || sats[i].first == lastNode){ + sats[i].second.setActive(active); + sats[i].second.setHidden(hidden); + if(sats[i].first == lastNode){ if(!endOpen){ endOpen = true; } else { endOpen = false; - std::cout << "ENNNNNNNNNNNDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDOPEN\n"; - _satellites[i].second.setIsEndOpen(true); - _satellites[i].second.setAmount(amount); - _satellites[i].second.setAngle(angle); + sats[i].second.setIsEndOpen(true); + sats[i].second.setAmount(amount); + sats[i].second.setAngle(angle); } } + if(sats[i].first == firstNode){ + sats[i].second.setAmount(amount); + sats[i].second.setAngle(angle); + } } } } -- cgit v1.2.3