1 /**
2 * \brief Remove overlaps function
3 *
4 * Authors:
5 * Tim Dwyer <tgdwyer@gmail.com>
6 *
7 * Copyright (C) 2005 Authors
8 *
9 * Released under GNU GPL. Read the file 'COPYING' for more information.
10 */
12 #ifndef SEEN_REMOVEOVERLAP_SOLVE_VPSC_H
13 #define SEEN_REMOVEOVERLAP_SOLVE_VPSC_H
15 class Variable;
16 class Constraint;
17 class Blocks;
19 /**
20 * Variable Placement with Separation Constraints problem instance
21 */
22 class VPSC {
23 public:
24 void satisfy();
25 void solve();
27 void move_and_split();
28 VPSC(Variable *vs[], const int n, Constraint *cs[], const int m);
29 ~VPSC();
30 protected:
31 Blocks *bs;
32 void refine();
33 private:
34 void printBlocks();
35 bool constraintGraphIsCyclic(Variable *vs[], const int n);
36 bool blockGraphIsCyclic();
37 Constraint **cs;
38 int m;
39 };
41 #endif // SEEN_REMOVEOVERLAP_SOLVE_VPSC_H