for(int i=0;i<n;i++) {
rs[i]=new Rectangle(bb[i].LL.x,bb[i].UR.x,bb[i].LL.y,bb[i].UR.y);
}
- int m = generateYConstraints(n,rs.data(),vs,*cs);
+ int m = generateYConstraints(rs,vs,*cs);
for(int i=0;i<n;i++) {
delete rs[i];
}
/**
* Prepares constraints in order to apply VPSC vertically to remove ALL overlap.
*/
-int generateYConstraints(const int n, Rectangle** rs, Variable** vars, Constraint** &cs) {
+int generateYConstraints(vector<Rectangle*> &rs, Variable** vars,
+ Constraint** &cs) {
+
vector<Event> events;
- events.reserve(2 * n);
- for(int i=0;i<n;i++) {
+ events.reserve(2 * rs.size());
+ for(size_t i=0;i<rs.size();i++) {
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());
// returns number of constraints generated
int generateXConstraints(std::vector<Rectangle*> &rs, Variable** vars,
Constraint** &cs, const bool useNeighbourLists);
-int generateYConstraints(const int n, Rectangle** rs, Variable** vars, Constraint** &cs);
+int generateYConstraints(std::vector<Rectangle*> &rs, Variable** vars,
+ Constraint** &cs);