Class OPTIMIZER.
More...
#include <pns_optimizer.h>
|
enum | OptimizationEffort { MERGE_SEGMENTS = 0x01
, SMART_PADS = 0x02
, MERGE_OBTUSE = 0x04
, FANOUT_CLEANUP = 0x08
} |
|
|
| OPTIMIZER (NODE *aWorld) |
| Optimizer.
|
|
bool | Optimize (LINE *aLine, LINE *aResult=NULL) |
|
bool | Optimize (DIFF_PAIR *aPair) |
|
void | SetWorld (NODE *aNode) |
|
void | CacheStaticItem (ITEM *aItem) |
|
void | CacheRemove (ITEM *aItem) |
|
void | ClearCache (bool aStaticOnly=false) |
|
void | SetCollisionMask (int aMask) |
|
void | SetEffortLevel (int aEffort) |
|
void | SetRestrictArea (const BOX2I &aArea) |
|
|
static bool | Optimize (LINE *aLine, int aEffortLevel, NODE *aWorld) |
|
a quick shortcut to optmize a line without creating and setting up an optimizer
|
|
Class OPTIMIZER.
Performs various optimizations of the lines being routed, attempting to make the lines shorter and less cornery. There are 3 kinds of optimizations so far:
- Merging obtuse segments (MERGE_OBTUSE): tries to join together as many obtuse segments as possible without causing collisions
- Rerouting path between pair of line corners with a 2-segment "\__" line and iteratively repeating the procedure as long as the total cost of the line keeps decreasing
- "Smart Pads" - that is, rerouting pad/via exits to make them look nice (SMART_PADS).
The documentation for this class was generated from the following files:
- 3rd_party/router/router/pns_optimizer.h
- 3rd_party/router/router/pns_optimizer.cpp