From: Matthew Fernandez Date: Sat, 22 May 2021 04:44:24 +0000 (-0700) Subject: pass Rectangles to generateYConstraints as vector of values instead of pointers X-Git-Tag: 2.47.3~25^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8b626e0882540ad73644dd5992d28ed377b1288c;p=graphviz pass Rectangles to generateYConstraints as vector of values instead of pointers This allows a number of simplifications, most importantly removing manual allocations in genYConstraints. --- diff --git a/lib/vpsc/csolve_VPSC.cpp b/lib/vpsc/csolve_VPSC.cpp index 95f4ed2ce..8e44fa63a 100644 --- a/lib/vpsc/csolve_VPSC.cpp +++ b/lib/vpsc/csolve_VPSC.cpp @@ -47,14 +47,11 @@ int genXConstraints(int n, boxf* bb, Variable** vs, Constraint*** cs,int transit return m; } int genYConstraints(int n, boxf* bb, Variable** vs, Constraint*** cs) { - std::vector rs(n); + std::vector rs; for(int i=0;i &rs, Variable** vars, /** * Prepares constraints in order to apply VPSC vertically to remove ALL overlap. */ -int generateYConstraints(const vector &rs, Variable** vars, +int generateYConstraints(const vector &rs, Variable** vars, Constraint** &cs) { vector events; events.reserve(2 * rs.size()); for(size_t i=0;idesiredPosition=rs[i]->getCentreY(); - Node *v = new Node(vars[i],*rs[i],rs[i]->getCentreY()); - events.emplace_back(Open,v,rs[i]->getMinX()); - events.emplace_back(Close,v,rs[i]->getMaxX()); + vars[i]->desiredPosition=rs[i].getCentreY(); + Node *v = new Node(vars[i],rs[i],rs[i].getCentreY()); + events.emplace_back(Open,v,rs[i].getMinX()); + events.emplace_back(Close,v,rs[i].getMaxX()); } std::sort(events.begin(), events.end(), compare_events); NodeSet scanline; diff --git a/lib/vpsc/generate-constraints.h b/lib/vpsc/generate-constraints.h index 591ddec32..2e9580319 100644 --- a/lib/vpsc/generate-constraints.h +++ b/lib/vpsc/generate-constraints.h @@ -79,5 +79,5 @@ struct Constraint; // returns number of constraints generated int generateXConstraints(const std::vector &rs, Variable** vars, Constraint** &cs, const bool useNeighbourLists); -int generateYConstraints(const std::vector &rs, Variable** vars, +int generateYConstraints(const std::vector &rs, Variable** vars, Constraint** &cs);