Graphviz
13.0.0~dev.20241222.1117
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
29
class
Block
;
30
struct
Variable
;
31
struct
Constraint
;
37
class
Blocks
:
public
std::set<Block*>
38
{
39
public
:
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
();
48
private
:
49
void
dfsVisit(
Variable
*v, std::list<Variable*> &order);
50
void
removeBlock(
Block
*doomed);
51
Variable
**vs;
52
int
nvs;
53
};
54
55
extern
long
blockTimeCtr
;
blockTimeCtr
long blockTimeCtr
Definition
blocks.cpp:35
Block
Definition
block.h:28
Blocks
Definition
blocks.h:38
Blocks::cleanup
void cleanup()
Definition
blocks.cpp:156
Blocks::cost
double cost()
Definition
blocks.cpp:195
Blocks::totalOrder
std::list< Variable * > totalOrder()
Definition
blocks.cpp:55
Blocks::~Blocks
~Blocks()
Definition
blocks.cpp:43
Blocks::mergeRight
void mergeRight(Block *l)
Definition
blocks.cpp:122
Blocks::mergeLeft
void mergeLeft(Block *r)
Definition
blocks.cpp:86
split
static void split(void)
Definition
ccomps.c:102
Constraint
A constraint determines a minimum or exact spacing required between two variables.
Definition
constraint.h:25
Variable
Definition
variable.h:26
lib
vpsc
blocks.h
Generated by
1.9.8