From: Matthew Fernandez Date: Sat, 22 May 2021 04:39:30 +0000 (-0700) Subject: pass Rectangles to generateXConstraints as vector of values instead of pointers X-Git-Tag: 2.47.3~25^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fe3229e977d1fc6a8429f6e5aa69f0aa91234248;p=graphviz pass Rectangles to generateXConstraints as vector of values instead of pointers This allows a number of simplifications, most importantly removing manual allocations in genXConstraints. --- diff --git a/lib/vpsc/csolve_VPSC.cpp b/lib/vpsc/csolve_VPSC.cpp index e74d07d45..95f4ed2ce 100644 --- a/lib/vpsc/csolve_VPSC.cpp +++ b/lib/vpsc/csolve_VPSC.cpp @@ -39,14 +39,11 @@ VPSC* newIncVPSC(int n, Variable* vs[], int m, Constraint* cs[]) { } int genXConstraints(int n, boxf* bb, Variable** vs, Constraint*** cs,int transitiveClosure) { - std::vector rs(n); + std::vector rs; for(int i=0;i &rs, Variable** vars, +int generateXConstraints(const vector &rs, Variable** vars, Constraint** &cs, const bool useNeighbourLists) { vector events; events.reserve(2 * rs.size()); for(size_t i=0;idesiredPosition=rs[i]->getCentreX(); - Node *v = new Node(vars[i],*rs[i],rs[i]->getCentreX()); - events.emplace_back(Open,v,rs[i]->getMinY()); - events.emplace_back(Close,v,rs[i]->getMaxY()); + vars[i]->desiredPosition=rs[i].getCentreX(); + Node *v = new Node(vars[i],rs[i],rs[i].getCentreX()); + events.emplace_back(Open,v,rs[i].getMinY()); + events.emplace_back(Close,v,rs[i].getMaxY()); } std::sort(events.begin(), events.end(), compare_events); diff --git a/lib/vpsc/generate-constraints.h b/lib/vpsc/generate-constraints.h index 14047d477..591ddec32 100644 --- a/lib/vpsc/generate-constraints.h +++ b/lib/vpsc/generate-constraints.h @@ -77,7 +77,7 @@ struct Variable; struct Constraint; // returns number of constraints generated -int generateXConstraints(const std::vector &rs, Variable** vars, +int generateXConstraints(const std::vector &rs, Variable** vars, Constraint** &cs, const bool useNeighbourLists); int generateYConstraints(const std::vector &rs, Variable** vars, Constraint** &cs);