30 return new Variable(
id,desiredPos,weight);
40 bool transitiveClosure) {
41 std::vector<Rectangle> rs;
42 for (
size_t i = 0; i < n; i++) {
43 rs.emplace_back(bb[i].LL.x,bb[i].
UR.
x,bb[i].
LL.
y,bb[i].
UR.
y);
50 std::vector<Rectangle> rs;
51 for(
size_t i = 0; i < n; i++) {
52 rs.emplace_back(bb[i].LL.x,bb[i].
UR.
x,bb[i].
LL.
y,bb[i].
UR.
y);
63 for (
size_t i = 0; i < m; i++) {
77 }
catch(
const char *e) {
78 std::cerr << e <<
"\n";
83 assert(vpsc!=
nullptr);
void setVariableDesiredPos(Variable *v, double desiredPos)
int genYConstraints(size_t n, boxf *bb, Variable **vs, Constraint ***cs)
Variable * newVariable(int id, double desiredPos, double weight)
Bridge for C programs to access solve_VPSC (which is in C++)
Constraint ** newConstraints(int m)
void deleteConstraint(Constraint *c)
VPSC * newIncVPSC(int n, Variable *vs[], int m, Constraint *cs[])
void deleteVariable(Variable *v)
Constraint * newConstraint(Variable *left, Variable *right, double gap)
void remapInConstraints(Variable *u, Variable *v, double dgap)
void remapOutConstraints(Variable *u, Variable *v, double dgap)
double getVariablePos(const Variable *v)
void deleteConstraints(size_t m, Constraint **cs)
void satisfyVPSC(VPSC *vpsc)
void deleteVPSC(VPSC *vpsc)
void solveVPSC(VPSC *vpsc)
int genXConstraints(size_t n, boxf *bb, Variable **vs, Constraint ***cs, bool transitiveClosure)
int generateYConstraints(const vector< Rectangle > &rs, Variable **vars, Constraint **&cs)
int generateXConstraints(const vector< Rectangle > &rs, Variable **vars, Constraint **&cs, const bool useNeighbourLists)
A constraint determines a minimum or exact spacing required between two variables.