Graphviz 12.1.0~dev.20240716.0947
Loading...
Searching...
No Matches
blocks.h
Go to the documentation of this file.
1
22#pragma once
23
24#define LOGFILE "cRectangleOverlap.log"
25
26#include <set>
27#include <list>
28
29class Block;
30struct Variable;
31struct Constraint;
37class Blocks : public std::set<Block*>
38{
39public:
40 Blocks(const int n, Variable *vs[]);
41 ~Blocks();
42 void mergeLeft(Block *r);
43 void mergeRight(Block *l);
44 void split(Block *b, Block *&l, Block *&r, Constraint *c);
45 std::list<Variable*> totalOrder();
46 void cleanup();
47 double cost();
48private:
49 void dfsVisit(Variable *v, std::list<Variable*> &order);
50 void removeBlock(Block *doomed);
51 Variable **vs;
52 int nvs;
53};
54
55extern long blockTimeCtr;
long blockTimeCtr
Definition blocks.cpp:35
Definition block.h:30
void cleanup()
Definition blocks.cpp:156
double cost()
Definition blocks.cpp:195
std::list< Variable * > totalOrder()
Definition blocks.cpp:55
~Blocks()
Definition blocks.cpp:43
void mergeRight(Block *l)
Definition blocks.cpp:122
void mergeLeft(Block *r)
Definition blocks.cpp:86
static void split(void)
Definition ccomps.c:108
A constraint determines a minimum or exact spacing required between two variables.
Definition constraint.h:25