@clarify/edge-router 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/dist/index.d.mts +423 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +5629 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +34 -0
package/README.md
ADDED
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
//#region src/geomtypes.d.ts
|
|
2
|
+
declare class Point {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
vn: number;
|
|
6
|
+
constructor(x?: number, y?: number);
|
|
7
|
+
eq(rhs: Point): boolean;
|
|
8
|
+
at(dimension: number): number;
|
|
9
|
+
setAt(dimension: number, value: number): void;
|
|
10
|
+
}
|
|
11
|
+
declare class Box {
|
|
12
|
+
min: Point;
|
|
13
|
+
max: Point;
|
|
14
|
+
constructor();
|
|
15
|
+
length(dimension: number): number;
|
|
16
|
+
width(): number;
|
|
17
|
+
height(): number;
|
|
18
|
+
}
|
|
19
|
+
declare class Polygon {
|
|
20
|
+
ps: Point[];
|
|
21
|
+
checkpointsOnRoute: Array<[number, Point]>;
|
|
22
|
+
constructor(n?: number);
|
|
23
|
+
clone(): Polygon;
|
|
24
|
+
clear(): void;
|
|
25
|
+
empty(): boolean;
|
|
26
|
+
size(): number;
|
|
27
|
+
at(index: number): Point;
|
|
28
|
+
simplify(): Polygon;
|
|
29
|
+
checkpointsOnSegment(segmentLowerIndex: number, indexModifier?: number): Point[];
|
|
30
|
+
offsetBoundingBox(offset: number): Box;
|
|
31
|
+
}
|
|
32
|
+
declare class Rect extends Polygon {
|
|
33
|
+
private _origin;
|
|
34
|
+
private _size;
|
|
35
|
+
constructor(origin: {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
}, size: {
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
});
|
|
42
|
+
offsetPolygon(bufferSpace: number): Rect;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/obstacle.d.ts
|
|
46
|
+
declare class Obstacle {
|
|
47
|
+
readonly router: Router;
|
|
48
|
+
readonly polygon: Rect;
|
|
49
|
+
_active: boolean;
|
|
50
|
+
_firstVert: VertInf;
|
|
51
|
+
_lastVert: VertInf;
|
|
52
|
+
constructor(router: Router, poly: Rect);
|
|
53
|
+
centreVertex(): VertInf | null;
|
|
54
|
+
isFreeJunction(): boolean;
|
|
55
|
+
firstVert(): VertInf | null;
|
|
56
|
+
lastVert(): VertInf | null;
|
|
57
|
+
routingBox(): Box;
|
|
58
|
+
routingPolygon(bufferSpace: number): Rect;
|
|
59
|
+
/** @internal */
|
|
60
|
+
isActive(): boolean;
|
|
61
|
+
/** @internal */
|
|
62
|
+
makeActive(): void;
|
|
63
|
+
/** @internal */
|
|
64
|
+
makeInactive(): void;
|
|
65
|
+
/** @internal */
|
|
66
|
+
removeFromGraph(): void;
|
|
67
|
+
}
|
|
68
|
+
//#endregion
|
|
69
|
+
//#region src/junction.d.ts
|
|
70
|
+
declare class Junction extends Obstacle {
|
|
71
|
+
followingConns: Set<Endpoint>;
|
|
72
|
+
private _position;
|
|
73
|
+
private _positionFixed;
|
|
74
|
+
readonly _centreVertex: VertInf;
|
|
75
|
+
_centreConnectionCost: number;
|
|
76
|
+
constructor(router: Router, position: Point);
|
|
77
|
+
position(): Point;
|
|
78
|
+
centreVertex(): VertInf;
|
|
79
|
+
/** @internal */
|
|
80
|
+
centreConnectionCost(): number;
|
|
81
|
+
setPositionFixed(fixed: boolean): void;
|
|
82
|
+
positionFixed(): boolean;
|
|
83
|
+
isFreeJunction(): boolean;
|
|
84
|
+
static makeRectangle(router: Router, position: Point): Rect;
|
|
85
|
+
preferOrthogonalDimension(dim: number): void;
|
|
86
|
+
makeInactive(): void;
|
|
87
|
+
addFollowingConnEnd(connEnd: Endpoint): void;
|
|
88
|
+
removeFollowingConnEnd(connEnd: Endpoint): void;
|
|
89
|
+
attachedConnectors(): Edge[];
|
|
90
|
+
}
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/edge.d.ts
|
|
93
|
+
declare class Edge {
|
|
94
|
+
router: Router;
|
|
95
|
+
/** @internal */
|
|
96
|
+
_id: number;
|
|
97
|
+
private _needsRerouteFlag;
|
|
98
|
+
private _active;
|
|
99
|
+
private _hateCrossings;
|
|
100
|
+
_route: Polygon;
|
|
101
|
+
private _displayRoute;
|
|
102
|
+
private _srcVert;
|
|
103
|
+
private _dstVert;
|
|
104
|
+
private _startVert;
|
|
105
|
+
private _srcConnend;
|
|
106
|
+
private _dstConnend;
|
|
107
|
+
private _checkpoints;
|
|
108
|
+
private _checkpointVertices;
|
|
109
|
+
get srcConnEnd(): Endpoint | null;
|
|
110
|
+
get dstConnEnd(): Endpoint | null;
|
|
111
|
+
constructor(router: Router, src: Endpoint, dst: Endpoint);
|
|
112
|
+
route(): Polygon;
|
|
113
|
+
displayRoute(): Polygon;
|
|
114
|
+
endpointConnEnds(): [Endpoint, Endpoint] | null;
|
|
115
|
+
endpointAnchors(): [Junction | null, Junction | null];
|
|
116
|
+
setRoutingCheckpoints(checkpoints: Checkpoint[]): void;
|
|
117
|
+
routingCheckpoints(): Checkpoint[];
|
|
118
|
+
possibleDstPinPoints(): Point[];
|
|
119
|
+
setHateCrossings(val: boolean): void;
|
|
120
|
+
doesHateCrossings(): boolean;
|
|
121
|
+
set_route(route: Polygon): void;
|
|
122
|
+
generatePath(): boolean;
|
|
123
|
+
/** @internal */
|
|
124
|
+
makeActive(): void;
|
|
125
|
+
/** @internal */
|
|
126
|
+
makeInactive(): void;
|
|
127
|
+
/** @internal */
|
|
128
|
+
src(): VertInf | null;
|
|
129
|
+
/** @internal */
|
|
130
|
+
dst(): VertInf | null;
|
|
131
|
+
/** @internal */
|
|
132
|
+
makePathInvalid(): void;
|
|
133
|
+
/** @internal */
|
|
134
|
+
updateEndPoint(type: 'src' | 'tar', connEnd: Endpoint): void;
|
|
135
|
+
/** @internal */
|
|
136
|
+
getConnEndForEndpointVertex(vertex: VertInf | null): Endpoint | null;
|
|
137
|
+
/** @internal */
|
|
138
|
+
assignConnectionPinVisibility(connect: boolean): [boolean, boolean];
|
|
139
|
+
private _wirePinVisibility;
|
|
140
|
+
/** @internal */
|
|
141
|
+
generateStandardPath(path: Point[], vertices: VertInf[]): void;
|
|
142
|
+
/** @internal */
|
|
143
|
+
generateCheckpointsPath(path: Point[], vertices: VertInf[]): void;
|
|
144
|
+
}
|
|
145
|
+
//#endregion
|
|
146
|
+
//#region src/utilities/option-set.d.ts
|
|
147
|
+
declare class OptionSet {
|
|
148
|
+
private rawValue;
|
|
149
|
+
constructor(value: number | OptionSet[]);
|
|
150
|
+
has(value: OptionSet): boolean;
|
|
151
|
+
add(value: typeof this): typeof this;
|
|
152
|
+
equal(other: typeof this): boolean;
|
|
153
|
+
static zero: OptionSet;
|
|
154
|
+
}
|
|
155
|
+
//#endregion
|
|
156
|
+
//#region src/endpoint.d.ts
|
|
157
|
+
declare class Direction extends OptionSet {
|
|
158
|
+
static blockStart: Direction;
|
|
159
|
+
static blockEnd: Direction;
|
|
160
|
+
static block: Direction;
|
|
161
|
+
static inlineStart: Direction;
|
|
162
|
+
static inlineEnd: Direction;
|
|
163
|
+
static inline: Direction;
|
|
164
|
+
static all: Direction;
|
|
165
|
+
}
|
|
166
|
+
declare enum ConnEndType {
|
|
167
|
+
ConnEndPoint = 0,
|
|
168
|
+
ConnEndJunction = 1
|
|
169
|
+
}
|
|
170
|
+
declare class Checkpoint {
|
|
171
|
+
point: Point;
|
|
172
|
+
arrivalDirections: Direction;
|
|
173
|
+
departureDirections: Direction;
|
|
174
|
+
constructor(point: Point, arrivalDirections?: Direction, departureDirections?: Direction);
|
|
175
|
+
}
|
|
176
|
+
declare class Endpoint {
|
|
177
|
+
/** @internal */
|
|
178
|
+
_type: ConnEndType;
|
|
179
|
+
/** @internal */
|
|
180
|
+
_point: Point;
|
|
181
|
+
directions: Direction;
|
|
182
|
+
_anchorObj: Junction | null;
|
|
183
|
+
/** @internal */
|
|
184
|
+
_connRef: Edge | null;
|
|
185
|
+
constructor(point: Point);
|
|
186
|
+
constructor(point: Point, visDirs: Direction);
|
|
187
|
+
constructor(junctionRef: Junction);
|
|
188
|
+
type(): ConnEndType;
|
|
189
|
+
position(): Point;
|
|
190
|
+
junction(): Junction | null;
|
|
191
|
+
/** @internal */
|
|
192
|
+
isPinConnection(): boolean;
|
|
193
|
+
/** @internal */
|
|
194
|
+
endpointType(): 'src' | 'tar';
|
|
195
|
+
/** @internal */
|
|
196
|
+
connect(conn: Edge): void;
|
|
197
|
+
/** @internal */
|
|
198
|
+
disconnect(shapeDeleted?: boolean): void;
|
|
199
|
+
}
|
|
200
|
+
//#endregion
|
|
201
|
+
//#region src/graph.d.ts
|
|
202
|
+
declare class EdgeInf {
|
|
203
|
+
lstPrev: EdgeInf | null;
|
|
204
|
+
lstNext: EdgeInf | null;
|
|
205
|
+
private _router;
|
|
206
|
+
private _added;
|
|
207
|
+
private _isHyperedgeSegment;
|
|
208
|
+
private _disabled;
|
|
209
|
+
private _vert1;
|
|
210
|
+
private _vert2;
|
|
211
|
+
private _dist;
|
|
212
|
+
private _mtstDist;
|
|
213
|
+
constructor(v1: VertInf, v2: VertInf, router: Router);
|
|
214
|
+
getDist(): number;
|
|
215
|
+
isOrthogonal(): boolean;
|
|
216
|
+
isDummyConnection(): boolean;
|
|
217
|
+
isDisabled(): boolean;
|
|
218
|
+
setDisabled(disabled: boolean): void;
|
|
219
|
+
isHyperedgeSegment(): boolean;
|
|
220
|
+
setHyperedgeSegment(hyperedge: boolean): void;
|
|
221
|
+
mtstDist(): number;
|
|
222
|
+
setMtstDist(joinCost: number): void;
|
|
223
|
+
otherVert(vert: VertInf): VertInf;
|
|
224
|
+
vert1(): VertInf;
|
|
225
|
+
vert2(): VertInf;
|
|
226
|
+
setDist(dist: number): void;
|
|
227
|
+
makeActive(): void;
|
|
228
|
+
makeInactive(): void;
|
|
229
|
+
destroy(): void;
|
|
230
|
+
rotationLessThan(lastV: VertInf | null, rhs: EdgeInf): boolean;
|
|
231
|
+
private isBetween;
|
|
232
|
+
static existingEdge(i: VertInf, j: VertInf): EdgeInf | null;
|
|
233
|
+
}
|
|
234
|
+
declare class EdgeList {
|
|
235
|
+
private _firstEdge;
|
|
236
|
+
private _lastEdge;
|
|
237
|
+
private _count;
|
|
238
|
+
constructor();
|
|
239
|
+
size(): number;
|
|
240
|
+
begin(): EdgeInf | null;
|
|
241
|
+
end(): null;
|
|
242
|
+
addEdge(edge: EdgeInf): void;
|
|
243
|
+
removeEdge(edge: EdgeInf): void;
|
|
244
|
+
clear(): void;
|
|
245
|
+
}
|
|
246
|
+
//#endregion
|
|
247
|
+
//#region src/vertex.d.ts
|
|
248
|
+
interface ANode {}
|
|
249
|
+
interface VertInfRoles {
|
|
250
|
+
isConnPoint?: boolean;
|
|
251
|
+
isOrthShapeEdge?: boolean;
|
|
252
|
+
isJunctionCentre?: boolean;
|
|
253
|
+
isConnCheckpoint?: boolean;
|
|
254
|
+
isDummyPinHelper?: boolean;
|
|
255
|
+
isSrcEndpoint?: boolean;
|
|
256
|
+
isTarEndpoint?: boolean;
|
|
257
|
+
isDimensionChangePartner?: boolean;
|
|
258
|
+
}
|
|
259
|
+
declare class VertInf {
|
|
260
|
+
objID: number;
|
|
261
|
+
vn: number;
|
|
262
|
+
readonly _seq: number;
|
|
263
|
+
point: Point;
|
|
264
|
+
isConnPoint: boolean;
|
|
265
|
+
isOrthShapeEdge: boolean;
|
|
266
|
+
isJunctionCentre: boolean;
|
|
267
|
+
isConnCheckpoint: boolean;
|
|
268
|
+
isDummyPinHelper: boolean;
|
|
269
|
+
isSrcEndpoint: boolean;
|
|
270
|
+
isTarEndpoint: boolean;
|
|
271
|
+
isDimensionChangePartner: boolean;
|
|
272
|
+
lstPrev: VertInf | null;
|
|
273
|
+
lstNext: VertInf | null;
|
|
274
|
+
shPrev: VertInf | null;
|
|
275
|
+
shNext: VertInf | null;
|
|
276
|
+
orthogVisList: EdgeInf[];
|
|
277
|
+
orthogVisListSize: number;
|
|
278
|
+
pathNext: VertInf | null;
|
|
279
|
+
aStarDoneNodes: ANode[];
|
|
280
|
+
aStarPendingNodes: ANode[];
|
|
281
|
+
orthogonalPartner: VertInf | null;
|
|
282
|
+
_treeRootBox: {
|
|
283
|
+
value: VertInf | null;
|
|
284
|
+
} | null;
|
|
285
|
+
_sptfRoot: VertInf | null;
|
|
286
|
+
sptfDist: number;
|
|
287
|
+
visDirections: Direction;
|
|
288
|
+
orthogVisPropFlags: number;
|
|
289
|
+
constructor(objID: number, vn: number, point: Point, roles?: VertInfRoles);
|
|
290
|
+
private applyRoles;
|
|
291
|
+
resetIdAndPoint(objID: number, vn: number, point: Point, roles?: VertInfRoles): void;
|
|
292
|
+
resetPoint(point: Point): void;
|
|
293
|
+
removeFromGraph(_isConnVert?: boolean): void;
|
|
294
|
+
directionFrom(other: VertInf): Direction;
|
|
295
|
+
setVisibleDirections(directions: Direction): void;
|
|
296
|
+
pathLeadsBackTo(start: VertInf): number;
|
|
297
|
+
hasNeighbour(target: VertInf): EdgeInf | null;
|
|
298
|
+
makeTreeRootPointer(root: VertInf): {
|
|
299
|
+
value: VertInf | null;
|
|
300
|
+
};
|
|
301
|
+
treeRoot(): VertInf | null;
|
|
302
|
+
treeRootPointer(): {
|
|
303
|
+
value: VertInf | null;
|
|
304
|
+
} | null;
|
|
305
|
+
setTreeRootPointer(pointer: {
|
|
306
|
+
value: VertInf | null;
|
|
307
|
+
} | null): void;
|
|
308
|
+
clearTreeRootPointer(): void;
|
|
309
|
+
setSPTFRoot(root: VertInf): void;
|
|
310
|
+
sptfRoot(): VertInf | null;
|
|
311
|
+
}
|
|
312
|
+
declare class VertInfList {
|
|
313
|
+
private _firstShapeVert;
|
|
314
|
+
private _firstConnVert;
|
|
315
|
+
private _lastShapeVert;
|
|
316
|
+
private _lastConnVert;
|
|
317
|
+
private _shapeVertices;
|
|
318
|
+
private _connVertices;
|
|
319
|
+
constructor();
|
|
320
|
+
addVertex(vert: VertInf): void;
|
|
321
|
+
removeVertex(vert: VertInf | null): VertInf | null;
|
|
322
|
+
getVertexByPos(p: Point): VertInf | null;
|
|
323
|
+
shapesBegin(): VertInf | null;
|
|
324
|
+
connsBegin(): VertInf | null;
|
|
325
|
+
end(): null;
|
|
326
|
+
connsSize(): number;
|
|
327
|
+
shapesSize(): number;
|
|
328
|
+
}
|
|
329
|
+
//#endregion
|
|
330
|
+
//#region src/hyperedge.d.ts
|
|
331
|
+
interface HyperedgeNewAndDeletedObjectLists {
|
|
332
|
+
newJunctionList: Junction[];
|
|
333
|
+
newConnectorList: Edge[];
|
|
334
|
+
deletedJunctionList: Junction[];
|
|
335
|
+
deletedConnectorList: Edge[];
|
|
336
|
+
changedConnectorList: Edge[];
|
|
337
|
+
}
|
|
338
|
+
type Hyperedge = {
|
|
339
|
+
type: 'terminals';
|
|
340
|
+
connEnds: Endpoint[];
|
|
341
|
+
} | {
|
|
342
|
+
type: 'junction';
|
|
343
|
+
junction: Junction;
|
|
344
|
+
} | {
|
|
345
|
+
type: 'invalid';
|
|
346
|
+
};
|
|
347
|
+
declare class HyperedgeRerouter {
|
|
348
|
+
router: Router;
|
|
349
|
+
hyperedges: Hyperedge[];
|
|
350
|
+
private m_new_junctions_vector;
|
|
351
|
+
private m_deleted_junctions_vector;
|
|
352
|
+
private m_new_connectors_vector;
|
|
353
|
+
private m_deleted_connectors_vector;
|
|
354
|
+
private m_terminal_vertices_vector;
|
|
355
|
+
private m_added_vertices;
|
|
356
|
+
/** @internal */
|
|
357
|
+
addedVertexCount(): number;
|
|
358
|
+
constructor(router: Router, hyperedges: Hyperedge[]);
|
|
359
|
+
count(): number;
|
|
360
|
+
newAndDeletedObjectLists(index: number): HyperedgeNewAndDeletedObjectLists;
|
|
361
|
+
/** @internal */
|
|
362
|
+
private findAttachedFromConnector;
|
|
363
|
+
/** @internal */
|
|
364
|
+
private findAttachedFromJunction;
|
|
365
|
+
/** @internal */
|
|
366
|
+
calcHyperedgeConnectors(): Set<Edge>;
|
|
367
|
+
/** @internal */
|
|
368
|
+
private findExistingConnectorsForTerminals;
|
|
369
|
+
/** @internal */
|
|
370
|
+
performRerouting(): void;
|
|
371
|
+
}
|
|
372
|
+
//#endregion
|
|
373
|
+
//#region src/router.d.ts
|
|
374
|
+
type RoutingParams = {
|
|
375
|
+
segmentPenalty: number;
|
|
376
|
+
crossingPenalty: number;
|
|
377
|
+
fixedSharedPathPenalty: number;
|
|
378
|
+
portDirectionPenalty: number;
|
|
379
|
+
shapeBufferDistance: number;
|
|
380
|
+
idealNudgingDistance: number;
|
|
381
|
+
reverseDirectionPenalty: number;
|
|
382
|
+
};
|
|
383
|
+
type RoutingOptions = {
|
|
384
|
+
nudgeOrthogonalSegmentsConnectedToShapes: boolean;
|
|
385
|
+
improveHyperedgeRoutesMovingJunctions: boolean;
|
|
386
|
+
penaliseOrthogonalSharedPathsAtConnEnds: boolean;
|
|
387
|
+
nudgeOrthogonalTouchingColinearSegments: boolean;
|
|
388
|
+
performUnifyingNudgingPreprocessingStep: boolean;
|
|
389
|
+
improveHyperedgeRoutesMovingAddingAndDeletingJunctions: boolean;
|
|
390
|
+
nudgeSharedPathsWithCommonEndPoint: boolean;
|
|
391
|
+
};
|
|
392
|
+
declare class Router {
|
|
393
|
+
m_obstacles: Obstacle[];
|
|
394
|
+
connRefs: Edge[];
|
|
395
|
+
visOrthogGraph: EdgeList;
|
|
396
|
+
vertices: VertInfList;
|
|
397
|
+
params: RoutingParams;
|
|
398
|
+
options: RoutingOptions;
|
|
399
|
+
hyperedgesForRerouting: Hyperedge[];
|
|
400
|
+
private _nextObjectId;
|
|
401
|
+
private m_in_crossing_rerouting_stage;
|
|
402
|
+
constructor(params?: Partial<RoutingParams>, options?: Partial<RoutingOptions>);
|
|
403
|
+
/** @internal */
|
|
404
|
+
_assignObjectId(): number;
|
|
405
|
+
createObstacle(rect: Rect): Obstacle;
|
|
406
|
+
/** @internal */
|
|
407
|
+
addObstacle(obstacle: Obstacle): void;
|
|
408
|
+
/** @internal */
|
|
409
|
+
removeObstacle(obstacle: Obstacle): void;
|
|
410
|
+
addJunction(junction: Junction): void;
|
|
411
|
+
deleteConnector(connector: Edge): void;
|
|
412
|
+
deleteJunction(junction: Junction): void;
|
|
413
|
+
isInCrossingPenaltyReroutingStage(): boolean;
|
|
414
|
+
regenerateStaticBuiltGraph(): void;
|
|
415
|
+
registerHyperedgeForRerouting(hyperedge: Hyperedge): number;
|
|
416
|
+
route(): {
|
|
417
|
+
anyChange: boolean;
|
|
418
|
+
hyperedgeRerouter: HyperedgeRerouter | null;
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
//#endregion
|
|
422
|
+
export { Checkpoint, Direction, Edge, Endpoint, Junction, Point, Rect, Router };
|
|
423
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/geomtypes.ts","../src/obstacle.ts","../src/junction.ts","../src/edge.ts","../src/utilities/option-set.ts","../src/endpoint.ts","../src/graph.ts","../src/vertex.ts","../src/hyperedge.ts","../src/router.ts"],"mappings":"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"}
|