@knowvah/dot-engine 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/LICENSE +277 -0
- package/README.md +292 -0
- package/dist/api/builder.d.ts +78 -0
- package/dist/api/builder.d.ts.map +1 -0
- package/dist/api/edge-ops.d.ts +45 -0
- package/dist/api/edge-ops.d.ts.map +1 -0
- package/dist/api/geometry.d.ts +159 -0
- package/dist/api/geometry.d.ts.map +1 -0
- package/dist/api/index.d.ts +24 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api.js +719 -0
- package/dist/api.js.map +7 -0
- package/dist/bundle.js +101 -0
- package/dist/cdt/bag.d.ts +58 -0
- package/dist/cdt/bag.d.ts.map +1 -0
- package/dist/cdt/hash-core.d.ts +40 -0
- package/dist/cdt/hash-core.d.ts.map +1 -0
- package/dist/cdt/hash.d.ts +74 -0
- package/dist/cdt/hash.d.ts.map +1 -0
- package/dist/cdt/index.d.ts +16 -0
- package/dist/cdt/index.d.ts.map +1 -0
- package/dist/cdt/splay-core.d.ts +78 -0
- package/dist/cdt/splay-core.d.ts.map +1 -0
- package/dist/cdt/splay.d.ts +63 -0
- package/dist/cdt/splay.d.ts.map +1 -0
- package/dist/cdt/strhash.d.ts +26 -0
- package/dist/cdt/strhash.d.ts.map +1 -0
- package/dist/cdt/types.d.ts +11 -0
- package/dist/cdt/types.d.ts.map +1 -0
- package/dist/common/arith.d.ts +35 -0
- package/dist/common/arith.d.ts.map +1 -0
- package/dist/common/arm-pow-data.d.ts +17 -0
- package/dist/common/arm-pow-data.d.ts.map +1 -0
- package/dist/common/arm-pow.d.ts +12 -0
- package/dist/common/arm-pow.d.ts.map +1 -0
- package/dist/common/arrows-constants.d.ts +97 -0
- package/dist/common/arrows-constants.d.ts.map +1 -0
- package/dist/common/arrows-geometry.d.ts +24 -0
- package/dist/common/arrows-geometry.d.ts.map +1 -0
- package/dist/common/arrows-miter.d.ts +24 -0
- package/dist/common/arrows-miter.d.ts.map +1 -0
- package/dist/common/arrows-shapes-poly.d.ts +24 -0
- package/dist/common/arrows-shapes-poly.d.ts.map +1 -0
- package/dist/common/arrows-shapes-util.d.ts +77 -0
- package/dist/common/arrows-shapes-util.d.ts.map +1 -0
- package/dist/common/arrows-shapes.d.ts +48 -0
- package/dist/common/arrows-shapes.d.ts.map +1 -0
- package/dist/common/arrows-types.d.ts +59 -0
- package/dist/common/arrows-types.d.ts.map +1 -0
- package/dist/common/arrows.d.ts +69 -0
- package/dist/common/arrows.d.ts.map +1 -0
- package/dist/common/color.d.ts +66 -0
- package/dist/common/color.d.ts.map +1 -0
- package/dist/common/colorData.d.ts +10 -0
- package/dist/common/colorData.d.ts.map +1 -0
- package/dist/common/compass-port.d.ts +39 -0
- package/dist/common/compass-port.d.ts.map +1 -0
- package/dist/common/crand.d.ts +42 -0
- package/dist/common/crand.d.ts.map +1 -0
- package/dist/common/edge-label-init.d.ts +51 -0
- package/dist/common/edge-label-init.d.ts.map +1 -0
- package/dist/common/edge-offset.d.ts +66 -0
- package/dist/common/edge-offset.d.ts.map +1 -0
- package/dist/common/ellipse-wedge.d.ts +10 -0
- package/dist/common/ellipse-wedge.d.ts.map +1 -0
- package/dist/common/emit-types.d.ts +255 -0
- package/dist/common/emit-types.d.ts.map +1 -0
- package/dist/common/fma.d.ts +10 -0
- package/dist/common/fma.d.ts.map +1 -0
- package/dist/common/graph-init.d.ts +61 -0
- package/dist/common/graph-init.d.ts.map +1 -0
- package/dist/common/html-entities.d.ts +17 -0
- package/dist/common/html-entities.d.ts.map +1 -0
- package/dist/common/html-string.d.ts +14 -0
- package/dist/common/html-string.d.ts.map +1 -0
- package/dist/common/htmltable-emit-fill.d.ts +84 -0
- package/dist/common/htmltable-emit-fill.d.ts.map +1 -0
- package/dist/common/htmltable-emit-rules.d.ts +79 -0
- package/dist/common/htmltable-emit-rules.d.ts.map +1 -0
- package/dist/common/htmltable-emit.d.ts +63 -0
- package/dist/common/htmltable-emit.d.ts.map +1 -0
- package/dist/common/htmltable-lex.d.ts +16 -0
- package/dist/common/htmltable-lex.d.ts.map +1 -0
- package/dist/common/htmltable-parse.d.ts +37 -0
- package/dist/common/htmltable-parse.d.ts.map +1 -0
- package/dist/common/htmltable-port.d.ts +15 -0
- package/dist/common/htmltable-port.d.ts.map +1 -0
- package/dist/common/htmltable-pos-runs.d.ts +88 -0
- package/dist/common/htmltable-pos-runs.d.ts.map +1 -0
- package/dist/common/htmltable-pos.d.ts +192 -0
- package/dist/common/htmltable-pos.d.ts.map +1 -0
- package/dist/common/htmltable-types.d.ts +237 -0
- package/dist/common/htmltable-types.d.ts.map +1 -0
- package/dist/common/htmltable.d.ts +74 -0
- package/dist/common/htmltable.d.ts.map +1 -0
- package/dist/common/layers.d.ts +20 -0
- package/dist/common/layers.d.ts.map +1 -0
- package/dist/common/make-label.d.ts +60 -0
- package/dist/common/make-label.d.ts.map +1 -0
- package/dist/common/multicolor.d.ts +46 -0
- package/dist/common/multicolor.d.ts.map +1 -0
- package/dist/common/nodeinit.d.ts +45 -0
- package/dist/common/nodeinit.d.ts.map +1 -0
- package/dist/common/poly-gencode.d.ts +40 -0
- package/dist/common/poly-gencode.d.ts.map +1 -0
- package/dist/common/poly-init.d.ts +51 -0
- package/dist/common/poly-init.d.ts.map +1 -0
- package/dist/common/poly-inside.d.ts +37 -0
- package/dist/common/poly-inside.d.ts.map +1 -0
- package/dist/common/poly-shapes-cases.d.ts +31 -0
- package/dist/common/poly-shapes-cases.d.ts.map +1 -0
- package/dist/common/poly-shapes-cases2.d.ts +25 -0
- package/dist/common/poly-shapes-cases2.d.ts.map +1 -0
- package/dist/common/poly-shapes-util.d.ts +42 -0
- package/dist/common/poly-shapes-util.d.ts.map +1 -0
- package/dist/common/poly-shapes.d.ts +39 -0
- package/dist/common/poly-shapes.d.ts.map +1 -0
- package/dist/common/poly-sizing.d.ts +189 -0
- package/dist/common/poly-sizing.d.ts.map +1 -0
- package/dist/common/poly-vertices.d.ts +42 -0
- package/dist/common/poly-vertices.d.ts.map +1 -0
- package/dist/common/postproc.d.ts +49 -0
- package/dist/common/postproc.d.ts.map +1 -0
- package/dist/common/ps-fontalias.d.ts +36 -0
- package/dist/common/ps-fontalias.d.ts.map +1 -0
- package/dist/common/random.d.ts +8 -0
- package/dist/common/random.d.ts.map +1 -0
- package/dist/common/record-port.d.ts +34 -0
- package/dist/common/record-port.d.ts.map +1 -0
- package/dist/common/record.d.ts +105 -0
- package/dist/common/record.d.ts.map +1 -0
- package/dist/common/shapeData.d.ts +186 -0
- package/dist/common/shapeData.d.ts.map +1 -0
- package/dist/common/shapes.d.ts +36 -0
- package/dist/common/shapes.d.ts.map +1 -0
- package/dist/common/spline-midpoint.d.ts +31 -0
- package/dist/common/spline-midpoint.d.ts.map +1 -0
- package/dist/common/splines-clip.d.ts +21 -0
- package/dist/common/splines-clip.d.ts.map +1 -0
- package/dist/common/splines-constants.d.ts +42 -0
- package/dist/common/splines-constants.d.ts.map +1 -0
- package/dist/common/splines-geom.d.ts +51 -0
- package/dist/common/splines-geom.d.ts.map +1 -0
- package/dist/common/splines-path-begin.d.ts +17 -0
- package/dist/common/splines-path-begin.d.ts.map +1 -0
- package/dist/common/splines-path-end.d.ts +17 -0
- package/dist/common/splines-path-end.d.ts.map +1 -0
- package/dist/common/splines-path-shared.d.ts +53 -0
- package/dist/common/splines-path-shared.d.ts.map +1 -0
- package/dist/common/splines-routespl.d.ts +40 -0
- package/dist/common/splines-routespl.d.ts.map +1 -0
- package/dist/common/splines-selfedge.d.ts +21 -0
- package/dist/common/splines-selfedge.d.ts.map +1 -0
- package/dist/common/splines.d.ts +18 -0
- package/dist/common/splines.d.ts.map +1 -0
- package/dist/common/style-resolve.d.ts +197 -0
- package/dist/common/style-resolve.d.ts.map +1 -0
- package/dist/common/subst.d.ts +31 -0
- package/dist/common/subst.d.ts.map +1 -0
- package/dist/common/taper.d.ts +23 -0
- package/dist/common/taper.d.ts.map +1 -0
- package/dist/common/textmeasure-factory.d.ts +33 -0
- package/dist/common/textmeasure-factory.d.ts.map +1 -0
- package/dist/common/textmeasure-lookup.d.ts +17 -0
- package/dist/common/textmeasure-lookup.d.ts.map +1 -0
- package/dist/common/textmeasure-lut-data-a.d.ts +13 -0
- package/dist/common/textmeasure-lut-data-a.d.ts.map +1 -0
- package/dist/common/textmeasure-lut-data-b.d.ts +12 -0
- package/dist/common/textmeasure-lut-data-b.d.ts.map +1 -0
- package/dist/common/textmeasure-lut-data-c.d.ts +13 -0
- package/dist/common/textmeasure-lut-data-c.d.ts.map +1 -0
- package/dist/common/textmeasure-lut-data.d.ts +27 -0
- package/dist/common/textmeasure-lut-data.d.ts.map +1 -0
- package/dist/common/textmeasure.d.ts +120 -0
- package/dist/common/textmeasure.d.ts.map +1 -0
- package/dist/common/types.d.ts +316 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/xlabels-place.d.ts +125 -0
- package/dist/common/xlabels-place.d.ts.map +1 -0
- package/dist/debug.d.ts +58 -0
- package/dist/debug.d.ts.map +1 -0
- package/dist/errors.d.ts +63 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/gvc/anchor.d.ts +86 -0
- package/dist/gvc/anchor.d.ts.map +1 -0
- package/dist/gvc/context.d.ts +177 -0
- package/dist/gvc/context.d.ts.map +1 -0
- package/dist/gvc/default-context.d.ts +20 -0
- package/dist/gvc/default-context.d.ts.map +1 -0
- package/dist/gvc/device-cluster.d.ts +25 -0
- package/dist/gvc/device-cluster.d.ts.map +1 -0
- package/dist/gvc/device.d.ts +99 -0
- package/dist/gvc/device.d.ts.map +1 -0
- package/dist/gvc/edge-labels.d.ts +10 -0
- package/dist/gvc/edge-labels.d.ts.map +1 -0
- package/dist/gvc/emit-walk.d.ts +22 -0
- package/dist/gvc/emit-walk.d.ts.map +1 -0
- package/dist/gvc/image-resolver.d.ts +44 -0
- package/dist/gvc/image-resolver.d.ts.map +1 -0
- package/dist/gvc/job.d.ts +234 -0
- package/dist/gvc/job.d.ts.map +1 -0
- package/dist/gvc/textlayout.d.ts +33 -0
- package/dist/gvc/textlayout.d.ts.map +1 -0
- package/dist/gvc/textspan-emit.d.ts +41 -0
- package/dist/gvc/textspan-emit.d.ts.map +1 -0
- package/dist/gvc/usershape.d.ts +25 -0
- package/dist/gvc/usershape.d.ts.map +1 -0
- package/dist/gvc/viewport.d.ts +71 -0
- package/dist/gvc/viewport.d.ts.map +1 -0
- package/dist/index.d.ts +54 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52862 -0
- package/dist/index.js.map +7 -0
- package/dist/label/index.d.ts +74 -0
- package/dist/label/index.d.ts.map +1 -0
- package/dist/label/node.d.ts +108 -0
- package/dist/label/node.d.ts.map +1 -0
- package/dist/label/rectangle.d.ts +60 -0
- package/dist/label/rectangle.d.ts.map +1 -0
- package/dist/label/split-q.d.ts +13 -0
- package/dist/label/split-q.d.ts.map +1 -0
- package/dist/label/xlabels-geom.d.ts +46 -0
- package/dist/label/xlabels-geom.d.ts.map +1 -0
- package/dist/label/xlabels-intersect.d.ts +79 -0
- package/dist/label/xlabels-intersect.d.ts.map +1 -0
- package/dist/label/xlabels.d.ts +67 -0
- package/dist/label/xlabels.d.ts.map +1 -0
- package/dist/layout/circo/blockpath.d.ts +120 -0
- package/dist/layout/circo/blockpath.d.ts.map +1 -0
- package/dist/layout/circo/blocks.d.ts +135 -0
- package/dist/layout/circo/blocks.d.ts.map +1 -0
- package/dist/layout/circo/blocktree.d.ts +51 -0
- package/dist/layout/circo/blocktree.d.ts.map +1 -0
- package/dist/layout/circo/circular.d.ts +59 -0
- package/dist/layout/circo/circular.d.ts.map +1 -0
- package/dist/layout/circo/index.d.ts +35 -0
- package/dist/layout/circo/index.d.ts.map +1 -0
- package/dist/layout/circo/init.d.ts +50 -0
- package/dist/layout/circo/init.d.ts.map +1 -0
- package/dist/layout/circo/position-helpers.d.ts +33 -0
- package/dist/layout/circo/position-helpers.d.ts.map +1 -0
- package/dist/layout/circo/position.d.ts +66 -0
- package/dist/layout/circo/position.d.ts.map +1 -0
- package/dist/layout/dot/acyclic.d.ts +8 -0
- package/dist/layout/dot/acyclic.d.ts.map +1 -0
- package/dist/layout/dot/aspect.d.ts +17 -0
- package/dist/layout/dot/aspect.d.ts.map +1 -0
- package/dist/layout/dot/classify.d.ts +52 -0
- package/dist/layout/dot/classify.d.ts.map +1 -0
- package/dist/layout/dot/cluster-path.d.ts +38 -0
- package/dist/layout/dot/cluster-path.d.ts.map +1 -0
- package/dist/layout/dot/cluster.d.ts +102 -0
- package/dist/layout/dot/cluster.d.ts.map +1 -0
- package/dist/layout/dot/compound-clip.d.ts +69 -0
- package/dist/layout/dot/compound-clip.d.ts.map +1 -0
- package/dist/layout/dot/compound-geom.d.ts +115 -0
- package/dist/layout/dot/compound-geom.d.ts.map +1 -0
- package/dist/layout/dot/compound.d.ts +56 -0
- package/dist/layout/dot/compound.d.ts.map +1 -0
- package/dist/layout/dot/conc.d.ts +88 -0
- package/dist/layout/dot/conc.d.ts.map +1 -0
- package/dist/layout/dot/decomp.d.ts +66 -0
- package/dist/layout/dot/decomp.d.ts.map +1 -0
- package/dist/layout/dot/edge-order.d.ts +27 -0
- package/dist/layout/dot/edge-order.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-arrow.d.ts +46 -0
- package/dist/layout/dot/edge-route-arrow.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-boxes.d.ts +75 -0
- package/dist/layout/dot/edge-route-boxes.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-chain.d.ts +67 -0
- package/dist/layout/dot/edge-route-chain.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-clip.d.ts +88 -0
- package/dist/layout/dot/edge-route-clip.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-faithful.d.ts +94 -0
- package/dist/layout/dot/edge-route-faithful.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-geom.d.ts +43 -0
- package/dist/layout/dot/edge-route-geom.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-helpers.d.ts +50 -0
- package/dist/layout/dot/edge-route-helpers.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-poly.d.ts +48 -0
- package/dist/layout/dot/edge-route-poly.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-rank.d.ts +57 -0
- package/dist/layout/dot/edge-route-rank.d.ts.map +1 -0
- package/dist/layout/dot/edge-route-routing.d.ts +99 -0
- package/dist/layout/dot/edge-route-routing.d.ts.map +1 -0
- package/dist/layout/dot/edge-route.d.ts +57 -0
- package/dist/layout/dot/edge-route.d.ts.map +1 -0
- package/dist/layout/dot/fastgr.d.ts +147 -0
- package/dist/layout/dot/fastgr.d.ts.map +1 -0
- package/dist/layout/dot/flat-utils.d.ts +21 -0
- package/dist/layout/dot/flat-utils.d.ts.map +1 -0
- package/dist/layout/dot/flat.d.ts +152 -0
- package/dist/layout/dot/flat.d.ts.map +1 -0
- package/dist/layout/dot/graph-label.d.ts +18 -0
- package/dist/layout/dot/graph-label.d.ts.map +1 -0
- package/dist/layout/dot/index.d.ts +128 -0
- package/dist/layout/dot/index.d.ts.map +1 -0
- package/dist/layout/dot/init.d.ts +93 -0
- package/dist/layout/dot/init.d.ts.map +1 -0
- package/dist/layout/dot/label-order.d.ts +45 -0
- package/dist/layout/dot/label-order.d.ts.map +1 -0
- package/dist/layout/dot/mincross-build.d.ts +52 -0
- package/dist/layout/dot/mincross-build.d.ts.map +1 -0
- package/dist/layout/dot/mincross-cross.d.ts +80 -0
- package/dist/layout/dot/mincross-cross.d.ts.map +1 -0
- package/dist/layout/dot/mincross-flat.d.ts +27 -0
- package/dist/layout/dot/mincross-flat.d.ts.map +1 -0
- package/dist/layout/dot/mincross-order.d.ts +89 -0
- package/dist/layout/dot/mincross-order.d.ts.map +1 -0
- package/dist/layout/dot/mincross-utils.d.ts +60 -0
- package/dist/layout/dot/mincross-utils.d.ts.map +1 -0
- package/dist/layout/dot/mincross.d.ts +75 -0
- package/dist/layout/dot/mincross.d.ts.map +1 -0
- package/dist/layout/dot/ns-core.d.ts +37 -0
- package/dist/layout/dot/ns-core.d.ts.map +1 -0
- package/dist/layout/dot/ns-range.d.ts +17 -0
- package/dist/layout/dot/ns-range.d.ts.map +1 -0
- package/dist/layout/dot/ns-subtree.d.ts +78 -0
- package/dist/layout/dot/ns-subtree.d.ts.map +1 -0
- package/dist/layout/dot/ns.d.ts +86 -0
- package/dist/layout/dot/ns.d.ts.map +1 -0
- package/dist/layout/dot/ortho-adapter.d.ts +19 -0
- package/dist/layout/dot/ortho-adapter.d.ts.map +1 -0
- package/dist/layout/dot/pack-components.d.ts +100 -0
- package/dist/layout/dot/pack-components.d.ts.map +1 -0
- package/dist/layout/dot/position-aux.d.ts +110 -0
- package/dist/layout/dot/position-aux.d.ts.map +1 -0
- package/dist/layout/dot/position-bbox.d.ts +57 -0
- package/dist/layout/dot/position-bbox.d.ts.map +1 -0
- package/dist/layout/dot/position-cluster.d.ts +48 -0
- package/dist/layout/dot/position-cluster.d.ts.map +1 -0
- package/dist/layout/dot/position-ycoords.d.ts +42 -0
- package/dist/layout/dot/position-ycoords.d.ts.map +1 -0
- package/dist/layout/dot/position.d.ts +47 -0
- package/dist/layout/dot/position.d.ts.map +1 -0
- package/dist/layout/dot/rank-dot2.d.ts +114 -0
- package/dist/layout/dot/rank-dot2.d.ts.map +1 -0
- package/dist/layout/dot/rank.d.ts +119 -0
- package/dist/layout/dot/rank.d.ts.map +1 -0
- package/dist/layout/dot/sameport.d.ts +70 -0
- package/dist/layout/dot/sameport.d.ts.map +1 -0
- package/dist/layout/dot/self-loop.d.ts +54 -0
- package/dist/layout/dot/self-loop.d.ts.map +1 -0
- package/dist/layout/dot/splines-clone.d.ts +33 -0
- package/dist/layout/dot/splines-clone.d.ts.map +1 -0
- package/dist/layout/dot/splines-flat-labeled.d.ts +101 -0
- package/dist/layout/dot/splines-flat-labeled.d.ts.map +1 -0
- package/dist/layout/dot/splines-flat-multi.d.ts +35 -0
- package/dist/layout/dot/splines-flat-multi.d.ts.map +1 -0
- package/dist/layout/dot/splines-flat.d.ts +116 -0
- package/dist/layout/dot/splines-flat.d.ts.map +1 -0
- package/dist/layout/dot/splines-groups.d.ts +38 -0
- package/dist/layout/dot/splines-groups.d.ts.map +1 -0
- package/dist/layout/dot/splines-label.d.ts +105 -0
- package/dist/layout/dot/splines-label.d.ts.map +1 -0
- package/dist/layout/dot/splines-route-type.d.ts +28 -0
- package/dist/layout/dot/splines-route-type.d.ts.map +1 -0
- package/dist/layout/dot/splines-route.d.ts +99 -0
- package/dist/layout/dot/splines-route.d.ts.map +1 -0
- package/dist/layout/dot/splines.d.ts +157 -0
- package/dist/layout/dot/splines.d.ts.map +1 -0
- package/dist/layout/dot/straight-edges.d.ts +39 -0
- package/dist/layout/dot/straight-edges.d.ts.map +1 -0
- package/dist/layout/fdp/cluster-edges.d.ts +31 -0
- package/dist/layout/fdp/cluster-edges.d.ts.map +1 -0
- package/dist/layout/fdp/comp.d.ts +29 -0
- package/dist/layout/fdp/comp.d.ts.map +1 -0
- package/dist/layout/fdp/derive.d.ts +39 -0
- package/dist/layout/fdp/derive.d.ts.map +1 -0
- package/dist/layout/fdp/fdp-model.d.ts +101 -0
- package/dist/layout/fdp/fdp-model.d.ts.map +1 -0
- package/dist/layout/fdp/grid.d.ts +49 -0
- package/dist/layout/fdp/grid.d.ts.map +1 -0
- package/dist/layout/fdp/index.d.ts +36 -0
- package/dist/layout/fdp/index.d.ts.map +1 -0
- package/dist/layout/fdp/init.d.ts +26 -0
- package/dist/layout/fdp/init.d.ts.map +1 -0
- package/dist/layout/fdp/layout.d.ts +57 -0
- package/dist/layout/fdp/layout.d.ts.map +1 -0
- package/dist/layout/fdp/normalize.d.ts +18 -0
- package/dist/layout/fdp/normalize.d.ts.map +1 -0
- package/dist/layout/fdp/ports.d.ts +41 -0
- package/dist/layout/fdp/ports.d.ts.map +1 -0
- package/dist/layout/fdp/tlayout-init.d.ts +21 -0
- package/dist/layout/fdp/tlayout-init.d.ts.map +1 -0
- package/dist/layout/fdp/tlayout-parms.d.ts +98 -0
- package/dist/layout/fdp/tlayout-parms.d.ts.map +1 -0
- package/dist/layout/fdp/tlayout.d.ts +43 -0
- package/dist/layout/fdp/tlayout.d.ts.map +1 -0
- package/dist/layout/fdp/xlayout.d.ts +26 -0
- package/dist/layout/fdp/xlayout.d.ts.map +1 -0
- package/dist/layout/neato/bfs.d.ts +43 -0
- package/dist/layout/neato/bfs.d.ts.map +1 -0
- package/dist/layout/neato/cdt-surface.d.ts +16 -0
- package/dist/layout/neato/cdt-surface.d.ts.map +1 -0
- package/dist/layout/neato/conjgrad.d.ts +61 -0
- package/dist/layout/neato/conjgrad.d.ts.map +1 -0
- package/dist/layout/neato/delaunay.d.ts +28 -0
- package/dist/layout/neato/delaunay.d.ts.map +1 -0
- package/dist/layout/neato/dijkstra.d.ts +80 -0
- package/dist/layout/neato/dijkstra.d.ts.map +1 -0
- package/dist/layout/neato/fdp-adjust.d.ts +31 -0
- package/dist/layout/neato/fdp-adjust.d.ts.map +1 -0
- package/dist/layout/neato/index.d.ts +58 -0
- package/dist/layout/neato/index.d.ts.map +1 -0
- package/dist/layout/neato/init.d.ts +207 -0
- package/dist/layout/neato/init.d.ts.map +1 -0
- package/dist/layout/neato/legal.d.ts +7 -0
- package/dist/layout/neato/legal.d.ts.map +1 -0
- package/dist/layout/neato/matrix-ops.d.ts +28 -0
- package/dist/layout/neato/matrix-ops.d.ts.map +1 -0
- package/dist/layout/neato/multispline-router.d.ts +80 -0
- package/dist/layout/neato/multispline-router.d.ts.map +1 -0
- package/dist/layout/neato/multispline.d.ts +24 -0
- package/dist/layout/neato/multispline.d.ts.map +1 -0
- package/dist/layout/neato/overlap-prism.d.ts +26 -0
- package/dist/layout/neato/overlap-prism.d.ts.map +1 -0
- package/dist/layout/neato/overlap.d.ts +85 -0
- package/dist/layout/neato/overlap.d.ts.map +1 -0
- package/dist/layout/neato/sc-adjust.d.ts +33 -0
- package/dist/layout/neato/sc-adjust.d.ts.map +1 -0
- package/dist/layout/neato/sep-factor.d.ts +41 -0
- package/dist/layout/neato/sep-factor.d.ts.map +1 -0
- package/dist/layout/neato/set-aspect.d.ts +33 -0
- package/dist/layout/neato/set-aspect.d.ts.map +1 -0
- package/dist/layout/neato/sgd.d.ts +166 -0
- package/dist/layout/neato/sgd.d.ts.map +1 -0
- package/dist/layout/neato/splines.d.ts +153 -0
- package/dist/layout/neato/splines.d.ts.map +1 -0
- package/dist/layout/neato/stress-kernel.d.ts +53 -0
- package/dist/layout/neato/stress-kernel.d.ts.map +1 -0
- package/dist/layout/neato/stress.d.ts +158 -0
- package/dist/layout/neato/stress.d.ts.map +1 -0
- package/dist/layout/osage/index.d.ts +158 -0
- package/dist/layout/osage/index.d.ts.map +1 -0
- package/dist/layout/osage/layout.d.ts +49 -0
- package/dist/layout/osage/layout.d.ts.map +1 -0
- package/dist/layout/osage/types.d.ts +28 -0
- package/dist/layout/osage/types.d.ts.map +1 -0
- package/dist/layout/pack/array-pack.d.ts +114 -0
- package/dist/layout/pack/array-pack.d.ts.map +1 -0
- package/dist/layout/pack/index.d.ts +157 -0
- package/dist/layout/pack/index.d.ts.map +1 -0
- package/dist/layout/pack/poly-pack.d.ts +126 -0
- package/dist/layout/pack/poly-pack.d.ts.map +1 -0
- package/dist/layout/pack/poly-place.d.ts +27 -0
- package/dist/layout/pack/poly-place.d.ts.map +1 -0
- package/dist/layout/pack/spiral-search.d.ts +18 -0
- package/dist/layout/pack/spiral-search.d.ts.map +1 -0
- package/dist/layout/pack/test-helpers.d.ts +7 -0
- package/dist/layout/pack/test-helpers.d.ts.map +1 -0
- package/dist/layout/pack/types.d.ts +74 -0
- package/dist/layout/pack/types.d.ts.map +1 -0
- package/dist/layout/patchwork/index.d.ts +136 -0
- package/dist/layout/patchwork/index.d.ts.map +1 -0
- package/dist/layout/patchwork/tree-map.d.ts +32 -0
- package/dist/layout/patchwork/tree-map.d.ts.map +1 -0
- package/dist/layout/patchwork/tree-node.d.ts +46 -0
- package/dist/layout/patchwork/tree-node.d.ts.map +1 -0
- package/dist/layout/sfdp/index.d.ts +39 -0
- package/dist/layout/sfdp/index.d.ts.map +1 -0
- package/dist/layout/sfdp/init.d.ts +61 -0
- package/dist/layout/sfdp/init.d.ts.map +1 -0
- package/dist/layout/sfdp/multilevel.d.ts +23 -0
- package/dist/layout/sfdp/multilevel.d.ts.map +1 -0
- package/dist/layout/sfdp/quadtree.d.ts +45 -0
- package/dist/layout/sfdp/quadtree.d.ts.map +1 -0
- package/dist/layout/sfdp/sparse-matrix-multiply.d.ts +34 -0
- package/dist/layout/sfdp/sparse-matrix-multiply.d.ts.map +1 -0
- package/dist/layout/sfdp/sparse-matrix.d.ts +101 -0
- package/dist/layout/sfdp/sparse-matrix.d.ts.map +1 -0
- package/dist/layout/sfdp/sparse-solve.d.ts +14 -0
- package/dist/layout/sfdp/sparse-solve.d.ts.map +1 -0
- package/dist/layout/sfdp/spring-driver.d.ts +18 -0
- package/dist/layout/sfdp/spring-driver.d.ts.map +1 -0
- package/dist/layout/sfdp/spring-electrical.d.ts +61 -0
- package/dist/layout/sfdp/spring-electrical.d.ts.map +1 -0
- package/dist/layout/twopi/circle.d.ts +83 -0
- package/dist/layout/twopi/circle.d.ts.map +1 -0
- package/dist/layout/twopi/index.d.ts +24 -0
- package/dist/layout/twopi/index.d.ts.map +1 -0
- package/dist/layout/twopi/init.d.ts +85 -0
- package/dist/layout/twopi/init.d.ts.map +1 -0
- package/dist/layout/twopi/pipeline.d.ts +37 -0
- package/dist/layout/twopi/pipeline.d.ts.map +1 -0
- package/dist/layout/twopi/twopi-test-helpers.d.ts +12 -0
- package/dist/layout/twopi/twopi-test-helpers.d.ts.map +1 -0
- package/dist/model/algData.d.ts +175 -0
- package/dist/model/algData.d.ts.map +1 -0
- package/dist/model/cgraph-ops.d.ts +86 -0
- package/dist/model/cgraph-ops.d.ts.map +1 -0
- package/dist/model/edge.d.ts +80 -0
- package/dist/model/edge.d.ts.map +1 -0
- package/dist/model/edgeInfo.d.ts +299 -0
- package/dist/model/edgeInfo.d.ts.map +1 -0
- package/dist/model/geom.d.ts +149 -0
- package/dist/model/geom.d.ts.map +1 -0
- package/dist/model/graph.d.ts +135 -0
- package/dist/model/graph.d.ts.map +1 -0
- package/dist/model/graphInfo.d.ts +418 -0
- package/dist/model/graphInfo.d.ts.map +1 -0
- package/dist/model/index.d.ts +10 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/layoutParams.d.ts +85 -0
- package/dist/model/layoutParams.d.ts.map +1 -0
- package/dist/model/node.d.ts +101 -0
- package/dist/model/node.d.ts.map +1 -0
- package/dist/model/nodeInfo.d.ts +278 -0
- package/dist/model/nodeInfo.d.ts.map +1 -0
- package/dist/model/rankEntry.d.ts +80 -0
- package/dist/model/rankEntry.d.ts.map +1 -0
- package/dist/ortho/chan-dict.d.ts +82 -0
- package/dist/ortho/chan-dict.d.ts.map +1 -0
- package/dist/ortho/fpq.d.ts +54 -0
- package/dist/ortho/fpq.d.ts.map +1 -0
- package/dist/ortho/index.d.ts +35 -0
- package/dist/ortho/index.d.ts.map +1 -0
- package/dist/ortho/maze-channels.d.ts +47 -0
- package/dist/ortho/maze-channels.d.ts.map +1 -0
- package/dist/ortho/maze.d.ts +27 -0
- package/dist/ortho/maze.d.ts.map +1 -0
- package/dist/ortho/ortho-parallel.d.ts +26 -0
- package/dist/ortho/ortho-parallel.d.ts.map +1 -0
- package/dist/ortho/ortho-route.d.ts +31 -0
- package/dist/ortho/ortho-route.d.ts.map +1 -0
- package/dist/ortho/partition.d.ts +34 -0
- package/dist/ortho/partition.d.ts.map +1 -0
- package/dist/ortho/rawgraph.d.ts +41 -0
- package/dist/ortho/rawgraph.d.ts.map +1 -0
- package/dist/ortho/sgraph.d.ts +74 -0
- package/dist/ortho/sgraph.d.ts.map +1 -0
- package/dist/ortho/trap-query.d.ts +32 -0
- package/dist/ortho/trap-query.d.ts.map +1 -0
- package/dist/ortho/trap-segment.d.ts +23 -0
- package/dist/ortho/trap-segment.d.ts.map +1 -0
- package/dist/ortho/trap-types.d.ts +91 -0
- package/dist/ortho/trap-types.d.ts.map +1 -0
- package/dist/ortho/trap-update.d.ts +12 -0
- package/dist/ortho/trap-update.d.ts.map +1 -0
- package/dist/ortho/trapezoid.d.ts +18 -0
- package/dist/ortho/trapezoid.d.ts.map +1 -0
- package/dist/ortho/types.d.ts +241 -0
- package/dist/ortho/types.d.ts.map +1 -0
- package/dist/parser/ast.d.ts +49 -0
- package/dist/parser/ast.d.ts.map +1 -0
- package/dist/parser/builder.d.ts +75 -0
- package/dist/parser/builder.d.ts.map +1 -0
- package/dist/parser/index.d.ts +97 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/pathplan/index.d.ts +8 -0
- package/dist/pathplan/index.d.ts.map +1 -0
- package/dist/pathplan/route.d.ts +9 -0
- package/dist/pathplan/route.d.ts.map +1 -0
- package/dist/pathplan/shortest.d.ts +5 -0
- package/dist/pathplan/shortest.d.ts.map +1 -0
- package/dist/pathplan/solvers.d.ts +5 -0
- package/dist/pathplan/solvers.d.ts.map +1 -0
- package/dist/pathplan/triang.d.ts +25 -0
- package/dist/pathplan/triang.d.ts.map +1 -0
- package/dist/pathplan/types.d.ts +22 -0
- package/dist/pathplan/types.d.ts.map +1 -0
- package/dist/pathplan/visibility.d.ts +13 -0
- package/dist/pathplan/visibility.d.ts.map +1 -0
- package/dist/pathplan/vispath.d.ts +9 -0
- package/dist/pathplan/vispath.d.ts.map +1 -0
- package/dist/rbtree/index.d.ts +127 -0
- package/dist/rbtree/index.d.ts.map +1 -0
- package/dist/render/color-resolve.d.ts +38 -0
- package/dist/render/color-resolve.d.ts.map +1 -0
- package/dist/render/dot.d.ts +379 -0
- package/dist/render/dot.d.ts.map +1 -0
- package/dist/render/index.d.ts +24 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/json.d.ts +89 -0
- package/dist/render/json.d.ts.map +1 -0
- package/dist/render/map-test-helpers.d.ts +13 -0
- package/dist/render/map-test-helpers.d.ts.map +1 -0
- package/dist/render/map.d.ts +197 -0
- package/dist/render/map.d.ts.map +1 -0
- package/dist/render/public.d.ts +64 -0
- package/dist/render/public.d.ts.map +1 -0
- package/dist/render/svg-arrow-ops.d.ts +10 -0
- package/dist/render/svg-arrow-ops.d.ts.map +1 -0
- package/dist/render/svg-cluster.d.ts +9 -0
- package/dist/render/svg-cluster.d.ts.map +1 -0
- package/dist/render/svg-edge-ortho-radius.d.ts +31 -0
- package/dist/render/svg-edge-ortho-radius.d.ts.map +1 -0
- package/dist/render/svg-edge-split.d.ts +48 -0
- package/dist/render/svg-edge-split.d.ts.map +1 -0
- package/dist/render/svg-gradient.d.ts +46 -0
- package/dist/render/svg-gradient.d.ts.map +1 -0
- package/dist/render/svg-graph.d.ts +97 -0
- package/dist/render/svg-graph.d.ts.map +1 -0
- package/dist/render/svg-helpers.d.ts +122 -0
- package/dist/render/svg-helpers.d.ts.map +1 -0
- package/dist/render/svg-id.d.ts +28 -0
- package/dist/render/svg-id.d.ts.map +1 -0
- package/dist/render/svg-multicolor.d.ts +60 -0
- package/dist/render/svg-multicolor.d.ts.map +1 -0
- package/dist/render/svg-parallel-edge.d.ts +28 -0
- package/dist/render/svg-parallel-edge.d.ts.map +1 -0
- package/dist/render/svg-tapered-edge.d.ts +18 -0
- package/dist/render/svg-tapered-edge.d.ts.map +1 -0
- package/dist/render/svg.d.ts +104 -0
- package/dist/render/svg.d.ts.map +1 -0
- package/dist/render/xdot-public.d.ts +95 -0
- package/dist/render/xdot-public.d.ts.map +1 -0
- package/dist/render/xml-escape.d.ts +21 -0
- package/dist/render/xml-escape.d.ts.map +1 -0
- package/dist/render.js +52556 -0
- package/dist/render.js.map +7 -0
- package/dist/util/agxbuf.d.ts +72 -0
- package/dist/util/agxbuf.d.ts.map +1 -0
- package/dist/util/bsd-qsort.d.ts +22 -0
- package/dist/util/bsd-qsort.d.ts.map +1 -0
- package/dist/util/index.d.ts +11 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/list.d.ts +47 -0
- package/dist/util/list.d.ts.map +1 -0
- package/dist/util/math.d.ts +54 -0
- package/dist/util/math.d.ts.map +1 -0
- package/dist/util/mt19937.d.ts +40 -0
- package/dist/util/mt19937.d.ts.map +1 -0
- package/dist/util/printf-round.d.ts +45 -0
- package/dist/util/printf-round.d.ts.map +1 -0
- package/dist/util/xml.d.ts +24 -0
- package/dist/util/xml.d.ts.map +1 -0
- package/dist/vpsc/Block.d.ts +116 -0
- package/dist/vpsc/Block.d.ts.map +1 -0
- package/dist/vpsc/Blocks.d.ts +66 -0
- package/dist/vpsc/Blocks.d.ts.map +1 -0
- package/dist/vpsc/Constraint.d.ts +51 -0
- package/dist/vpsc/Constraint.d.ts.map +1 -0
- package/dist/vpsc/HeapUtils.d.ts +37 -0
- package/dist/vpsc/HeapUtils.d.ts.map +1 -0
- package/dist/vpsc/Solver.d.ts +107 -0
- package/dist/vpsc/Solver.d.ts.map +1 -0
- package/dist/vpsc/SweepLine.d.ts +38 -0
- package/dist/vpsc/SweepLine.d.ts.map +1 -0
- package/dist/vpsc/Variable.d.ts +38 -0
- package/dist/vpsc/Variable.d.ts.map +1 -0
- package/dist/vpsc/index.d.ts +54 -0
- package/dist/vpsc/index.d.ts.map +1 -0
- package/dist/vpsc/sweepTypes.d.ts +29 -0
- package/dist/vpsc/sweepTypes.d.ts.map +1 -0
- package/dist/xdot/index.d.ts +6 -0
- package/dist/xdot/index.d.ts.map +1 -0
- package/dist/xdot/lex.d.ts +22 -0
- package/dist/xdot/lex.d.ts.map +1 -0
- package/dist/xdot/misc.d.ts +13 -0
- package/dist/xdot/misc.d.ts.map +1 -0
- package/dist/xdot/parse.d.ts +21 -0
- package/dist/xdot/parse.d.ts.map +1 -0
- package/dist/xdot/types.d.ts +152 -0
- package/dist/xdot/types.d.ts.map +1 -0
- package/package.json +113 -0
- package/src/api/builder.ts +277 -0
- package/src/api/edge-ops.ts +113 -0
- package/src/api/geometry.ts +307 -0
- package/src/api/index.ts +46 -0
- package/src/cdt/bag.ts +196 -0
- package/src/cdt/hash-core.ts +84 -0
- package/src/cdt/hash.ts +207 -0
- package/src/cdt/index.ts +17 -0
- package/src/cdt/splay-core.ts +301 -0
- package/src/cdt/splay.ts +191 -0
- package/src/cdt/strhash.ts +52 -0
- package/src/cdt/types.ts +13 -0
- package/src/common/arith.ts +39 -0
- package/src/common/arm-pow-data.ts +201 -0
- package/src/common/arm-pow.ts +296 -0
- package/src/common/arrows-constants.ts +175 -0
- package/src/common/arrows-geometry.ts +62 -0
- package/src/common/arrows-miter.ts +84 -0
- package/src/common/arrows-shapes-poly.ts +241 -0
- package/src/common/arrows-shapes-util.ts +162 -0
- package/src/common/arrows-shapes.ts +360 -0
- package/src/common/arrows-types.ts +59 -0
- package/src/common/arrows.ts +209 -0
- package/src/common/color.ts +340 -0
- package/src/common/colorData.ts +264 -0
- package/src/common/compass-port.ts +384 -0
- package/src/common/crand.ts +79 -0
- package/src/common/edge-label-init.ts +310 -0
- package/src/common/edge-offset.ts +140 -0
- package/src/common/ellipse-wedge.ts +189 -0
- package/src/common/emit-types.ts +332 -0
- package/src/common/fma.ts +52 -0
- package/src/common/graph-init.ts +359 -0
- package/src/common/html-entities.ts +299 -0
- package/src/common/html-string.ts +22 -0
- package/src/common/htmltable-emit-fill.ts +367 -0
- package/src/common/htmltable-emit-rules.ts +293 -0
- package/src/common/htmltable-emit.ts +345 -0
- package/src/common/htmltable-lex.ts +138 -0
- package/src/common/htmltable-parse.ts +539 -0
- package/src/common/htmltable-port.ts +32 -0
- package/src/common/htmltable-pos-runs.ts +313 -0
- package/src/common/htmltable-pos.ts +601 -0
- package/src/common/htmltable-types.ts +262 -0
- package/src/common/htmltable.ts +477 -0
- package/src/common/layers.ts +113 -0
- package/src/common/make-label.ts +192 -0
- package/src/common/multicolor.ts +167 -0
- package/src/common/nodeinit.ts +339 -0
- package/src/common/poly-gencode.ts +475 -0
- package/src/common/poly-init.ts +133 -0
- package/src/common/poly-inside.ts +202 -0
- package/src/common/poly-shapes-cases.ts +253 -0
- package/src/common/poly-shapes-cases2.ts +170 -0
- package/src/common/poly-shapes-util.ts +124 -0
- package/src/common/poly-shapes.ts +181 -0
- package/src/common/poly-sizing.ts +639 -0
- package/src/common/poly-vertices.ts +237 -0
- package/src/common/postproc.ts +436 -0
- package/src/common/ps-fontalias.ts +112 -0
- package/src/common/random.ts +37 -0
- package/src/common/record-port.ts +89 -0
- package/src/common/record.ts +523 -0
- package/src/common/shapeData.ts +502 -0
- package/src/common/shapes.ts +187 -0
- package/src/common/spline-midpoint.ts +105 -0
- package/src/common/splines-clip.ts +449 -0
- package/src/common/splines-constants.ts +53 -0
- package/src/common/splines-geom.ts +194 -0
- package/src/common/splines-path-begin.ts +243 -0
- package/src/common/splines-path-end.ts +231 -0
- package/src/common/splines-path-shared.ts +258 -0
- package/src/common/splines-routespl.ts +444 -0
- package/src/common/splines-selfedge.ts +403 -0
- package/src/common/splines.ts +33 -0
- package/src/common/style-resolve.ts +481 -0
- package/src/common/subst.ts +126 -0
- package/src/common/taper.ts +219 -0
- package/src/common/textmeasure-factory.ts +86 -0
- package/src/common/textmeasure-lookup.ts +50 -0
- package/src/common/textmeasure-lut-data-a.ts +182 -0
- package/src/common/textmeasure-lut-data-b.ts +140 -0
- package/src/common/textmeasure-lut-data-c.ts +221 -0
- package/src/common/textmeasure-lut-data.ts +78 -0
- package/src/common/textmeasure.ts +321 -0
- package/src/common/types.ts +425 -0
- package/src/common/xlabels-place.ts +475 -0
- package/src/debug.ts +38 -0
- package/src/errors.ts +95 -0
- package/src/gvc/anchor.ts +530 -0
- package/src/gvc/context.ts +260 -0
- package/src/gvc/default-context.ts +70 -0
- package/src/gvc/device-cluster.ts +114 -0
- package/src/gvc/device.ts +598 -0
- package/src/gvc/edge-labels.ts +116 -0
- package/src/gvc/emit-walk.ts +98 -0
- package/src/gvc/image-resolver.ts +137 -0
- package/src/gvc/job.ts +401 -0
- package/src/gvc/textlayout.ts +44 -0
- package/src/gvc/textspan-emit.ts +100 -0
- package/src/gvc/usershape.ts +33 -0
- package/src/gvc/viewport.ts +203 -0
- package/src/index.ts +165 -0
- package/src/label/index.ts +302 -0
- package/src/label/node.ts +278 -0
- package/src/label/rectangle.ts +123 -0
- package/src/label/split-q.ts +237 -0
- package/src/label/xlabels-geom.ts +132 -0
- package/src/label/xlabels-intersect.ts +421 -0
- package/src/label/xlabels.ts +212 -0
- package/src/layout/circo/blockpath.ts +560 -0
- package/src/layout/circo/blocks.ts +234 -0
- package/src/layout/circo/blocktree.ts +246 -0
- package/src/layout/circo/circular.ts +227 -0
- package/src/layout/circo/index.ts +90 -0
- package/src/layout/circo/init.ts +84 -0
- package/src/layout/circo/position-helpers.ts +104 -0
- package/src/layout/circo/position.ts +196 -0
- package/src/layout/dot/__fixtures__/xcoord-pivot-divergence.gv +79 -0
- package/src/layout/dot/acyclic.ts +60 -0
- package/src/layout/dot/aspect.ts +22 -0
- package/src/layout/dot/classify.ts +462 -0
- package/src/layout/dot/cluster-path.ts +200 -0
- package/src/layout/dot/cluster.ts +480 -0
- package/src/layout/dot/compound-clip.ts +224 -0
- package/src/layout/dot/compound-geom.ts +282 -0
- package/src/layout/dot/compound.ts +294 -0
- package/src/layout/dot/conc.ts +433 -0
- package/src/layout/dot/decomp.ts +165 -0
- package/src/layout/dot/edge-order.ts +62 -0
- package/src/layout/dot/edge-route-arrow.ts +87 -0
- package/src/layout/dot/edge-route-boxes.ts +99 -0
- package/src/layout/dot/edge-route-chain.ts +420 -0
- package/src/layout/dot/edge-route-clip.ts +253 -0
- package/src/layout/dot/edge-route-faithful.ts +404 -0
- package/src/layout/dot/edge-route-geom.ts +90 -0
- package/src/layout/dot/edge-route-helpers.ts +170 -0
- package/src/layout/dot/edge-route-poly.ts +174 -0
- package/src/layout/dot/edge-route-rank.ts +136 -0
- package/src/layout/dot/edge-route-routing.ts +219 -0
- package/src/layout/dot/edge-route.ts +490 -0
- package/src/layout/dot/fastgr.ts +377 -0
- package/src/layout/dot/flat-utils.ts +52 -0
- package/src/layout/dot/flat.ts +518 -0
- package/src/layout/dot/graph-label.ts +114 -0
- package/src/layout/dot/index.ts +302 -0
- package/src/layout/dot/init.ts +300 -0
- package/src/layout/dot/label-order.ts +161 -0
- package/src/layout/dot/mincross-build.ts +373 -0
- package/src/layout/dot/mincross-cross.ts +409 -0
- package/src/layout/dot/mincross-flat.ts +213 -0
- package/src/layout/dot/mincross-order.ts +401 -0
- package/src/layout/dot/mincross-utils.ts +170 -0
- package/src/layout/dot/mincross.ts +386 -0
- package/src/layout/dot/ns-core.ts +122 -0
- package/src/layout/dot/ns-range.ts +228 -0
- package/src/layout/dot/ns-subtree.ts +347 -0
- package/src/layout/dot/ns.ts +506 -0
- package/src/layout/dot/ortho-adapter.ts +133 -0
- package/src/layout/dot/pack-components.ts +433 -0
- package/src/layout/dot/position-aux.ts +382 -0
- package/src/layout/dot/position-bbox.ts +221 -0
- package/src/layout/dot/position-cluster.ts +286 -0
- package/src/layout/dot/position-ycoords.ts +287 -0
- package/src/layout/dot/position.ts +194 -0
- package/src/layout/dot/rank-dot2.ts +528 -0
- package/src/layout/dot/rank.ts +547 -0
- package/src/layout/dot/sameport.ts +278 -0
- package/src/layout/dot/self-loop.ts +147 -0
- package/src/layout/dot/splines-clone.ts +121 -0
- package/src/layout/dot/splines-flat-labeled.ts +408 -0
- package/src/layout/dot/splines-flat-multi.ts +188 -0
- package/src/layout/dot/splines-flat.ts +598 -0
- package/src/layout/dot/splines-groups.ts +190 -0
- package/src/layout/dot/splines-label.ts +432 -0
- package/src/layout/dot/splines-route-type.ts +44 -0
- package/src/layout/dot/splines-route.ts +478 -0
- package/src/layout/dot/splines.ts +538 -0
- package/src/layout/dot/straight-edges.ts +332 -0
- package/src/layout/fdp/cluster-edges.ts +0 -0
- package/src/layout/fdp/comp.ts +160 -0
- package/src/layout/fdp/derive.ts +272 -0
- package/src/layout/fdp/fdp-model.ts +238 -0
- package/src/layout/fdp/grid.ts +77 -0
- package/src/layout/fdp/index.ts +113 -0
- package/src/layout/fdp/init.ts +116 -0
- package/src/layout/fdp/layout.ts +485 -0
- package/src/layout/fdp/normalize.ts +100 -0
- package/src/layout/fdp/ports.ts +161 -0
- package/src/layout/fdp/tlayout-init.ts +230 -0
- package/src/layout/fdp/tlayout-parms.ts +234 -0
- package/src/layout/fdp/tlayout.ts +317 -0
- package/src/layout/fdp/xlayout.ts +350 -0
- package/src/layout/neato/bfs.ts +131 -0
- package/src/layout/neato/cdt-surface.ts +693 -0
- package/src/layout/neato/conjgrad.ts +159 -0
- package/src/layout/neato/delaunay.ts +259 -0
- package/src/layout/neato/dijkstra.ts +296 -0
- package/src/layout/neato/fdp-adjust.ts +124 -0
- package/src/layout/neato/index.ts +310 -0
- package/src/layout/neato/init.ts +505 -0
- package/src/layout/neato/legal.ts +316 -0
- package/src/layout/neato/matrix-ops.ts +112 -0
- package/src/layout/neato/multispline-router.ts +417 -0
- package/src/layout/neato/multispline.ts +427 -0
- package/src/layout/neato/overlap-prism.ts +503 -0
- package/src/layout/neato/overlap.ts +158 -0
- package/src/layout/neato/sc-adjust.ts +206 -0
- package/src/layout/neato/sep-factor.ts +118 -0
- package/src/layout/neato/set-aspect.ts +178 -0
- package/src/layout/neato/sgd.ts +461 -0
- package/src/layout/neato/splines.ts +1014 -0
- package/src/layout/neato/stress-kernel.ts +362 -0
- package/src/layout/neato/stress.ts +420 -0
- package/src/layout/osage/index.ts +548 -0
- package/src/layout/osage/layout.ts +254 -0
- package/src/layout/osage/types.ts +31 -0
- package/src/layout/pack/array-pack.ts +254 -0
- package/src/layout/pack/index.ts +570 -0
- package/src/layout/pack/poly-pack.ts +266 -0
- package/src/layout/pack/poly-place.ts +426 -0
- package/src/layout/pack/spiral-search.ts +106 -0
- package/src/layout/pack/test-helpers.ts +46 -0
- package/src/layout/pack/types.ts +85 -0
- package/src/layout/patchwork/index.ts +441 -0
- package/src/layout/patchwork/tree-map.ts +183 -0
- package/src/layout/patchwork/tree-node.ts +120 -0
- package/src/layout/sfdp/index.ts +231 -0
- package/src/layout/sfdp/init.ts +224 -0
- package/src/layout/sfdp/multilevel.ts +262 -0
- package/src/layout/sfdp/quadtree.ts +267 -0
- package/src/layout/sfdp/sparse-matrix-multiply.ts +160 -0
- package/src/layout/sfdp/sparse-matrix.ts +367 -0
- package/src/layout/sfdp/sparse-solve.ts +122 -0
- package/src/layout/sfdp/spring-driver.ts +209 -0
- package/src/layout/sfdp/spring-electrical.ts +431 -0
- package/src/layout/twopi/circle.ts +339 -0
- package/src/layout/twopi/index.ts +78 -0
- package/src/layout/twopi/init.ts +174 -0
- package/src/layout/twopi/pipeline.ts +98 -0
- package/src/layout/twopi/twopi-test-helpers.ts +44 -0
- package/src/model/algData.ts +194 -0
- package/src/model/cgraph-ops.ts +175 -0
- package/src/model/edge.ts +104 -0
- package/src/model/edgeInfo.ts +431 -0
- package/src/model/geom.ts +204 -0
- package/src/model/graph.ts +172 -0
- package/src/model/graphInfo.ts +528 -0
- package/src/model/index.ts +10 -0
- package/src/model/layoutParams.ts +127 -0
- package/src/model/node.ts +138 -0
- package/src/model/nodeInfo.ts +424 -0
- package/src/model/rankEntry.ts +95 -0
- package/src/ortho/chan-dict.ts +236 -0
- package/src/ortho/fpq.ts +149 -0
- package/src/ortho/index.ts +206 -0
- package/src/ortho/maze-channels.ts +196 -0
- package/src/ortho/maze.ts +311 -0
- package/src/ortho/ortho-parallel.ts +254 -0
- package/src/ortho/ortho-route.ts +349 -0
- package/src/ortho/partition.ts +303 -0
- package/src/ortho/rawgraph.ts +119 -0
- package/src/ortho/sgraph.ts +283 -0
- package/src/ortho/trap-query.ts +174 -0
- package/src/ortho/trap-segment.ts +303 -0
- package/src/ortho/trap-types.ts +171 -0
- package/src/ortho/trap-update.ts +89 -0
- package/src/ortho/trapezoid.ts +120 -0
- package/src/ortho/types.ts +286 -0
- package/src/parser/__fixtures__/directed.dot +10 -0
- package/src/parser/__fixtures__/simple.dot +7 -0
- package/src/parser/__fixtures__/subgraph.dot +17 -0
- package/src/parser/ast.ts +64 -0
- package/src/parser/builder.ts +401 -0
- package/src/parser/dot.d.ts +208 -0
- package/src/parser/dot.js +3321 -0
- package/src/parser/dot.pegjs +263 -0
- package/src/parser/index.ts +353 -0
- package/src/pathplan/index.ts +9 -0
- package/src/pathplan/route.ts +284 -0
- package/src/pathplan/shortest.ts +268 -0
- package/src/pathplan/solvers.ts +65 -0
- package/src/pathplan/triang.ts +221 -0
- package/src/pathplan/types.ts +16 -0
- package/src/pathplan/visibility.ts +170 -0
- package/src/pathplan/vispath.ts +118 -0
- package/src/rbtree/index.ts +418 -0
- package/src/render/color-resolve.ts +171 -0
- package/src/render/dot.ts +1514 -0
- package/src/render/index.ts +29 -0
- package/src/render/json.ts +734 -0
- package/src/render/map-test-helpers.ts +61 -0
- package/src/render/map.ts +528 -0
- package/src/render/public.ts +131 -0
- package/src/render/svg-arrow-ops.ts +113 -0
- package/src/render/svg-cluster.ts +24 -0
- package/src/render/svg-edge-ortho-radius.ts +228 -0
- package/src/render/svg-edge-split.ts +180 -0
- package/src/render/svg-gradient.ts +185 -0
- package/src/render/svg-graph.ts +415 -0
- package/src/render/svg-helpers.ts +623 -0
- package/src/render/svg-id.ts +76 -0
- package/src/render/svg-multicolor.ts +313 -0
- package/src/render/svg-parallel-edge.ts +123 -0
- package/src/render/svg-tapered-edge.ts +56 -0
- package/src/render/svg.ts +307 -0
- package/src/render/xdot-public.ts +164 -0
- package/src/render/xml-escape.ts +56 -0
- package/src/util/agxbuf.ts +138 -0
- package/src/util/bsd-qsort.ts +251 -0
- package/src/util/index.ts +25 -0
- package/src/util/list.ts +122 -0
- package/src/util/math.ts +104 -0
- package/src/util/mt19937.ts +143 -0
- package/src/util/printf-round.ts +163 -0
- package/src/util/xml.ts +184 -0
- package/src/vpsc/Block.ts +375 -0
- package/src/vpsc/Blocks.ts +164 -0
- package/src/vpsc/Constraint.ts +94 -0
- package/src/vpsc/HeapUtils.ts +88 -0
- package/src/vpsc/Solver.ts +274 -0
- package/src/vpsc/SweepLine.ts +214 -0
- package/src/vpsc/Variable.ts +54 -0
- package/src/vpsc/index.ts +122 -0
- package/src/vpsc/sweepTypes.ts +31 -0
- package/src/xdot/index.ts +7 -0
- package/src/xdot/lex.ts +151 -0
- package/src/xdot/misc.ts +226 -0
- package/src/xdot/parse.ts +349 -0
- package/src/xdot/types.ts +158 -0
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dot layout engine entry point.
|
|
3
|
+
*
|
|
4
|
+
* Wires together the full dot layout pipeline:
|
|
5
|
+
* setAspect → dotInitSubg → dotInitNodeEdge →
|
|
6
|
+
* dotRank → dotMincross → dotPosition →
|
|
7
|
+
* removeFill → dotSameports → dotSplines → dotCompoundEdges
|
|
8
|
+
*
|
|
9
|
+
* Also exports DOT_LAYOUT_ENGINE, the LayoutEngine registration object
|
|
10
|
+
* used by GvcContext.
|
|
11
|
+
*
|
|
12
|
+
* @see lib/dotgen/dotinit.c:dot_layout
|
|
13
|
+
* @see lib/dotgen/dotinit.c:dotLayout (static)
|
|
14
|
+
*/
|
|
15
|
+
import type { Graph } from '../../model/graph.js';
|
|
16
|
+
import type { LayoutEngine } from '../../gvc/context.js';
|
|
17
|
+
export { CL_CROSS, dotInitNode, dotInitEdge, dotInitSubg, dotInitNodeEdge, removeFill, dotCleanup, dotGraphInit, RANKDIR_TB, RANKDIR_LR, RANKDIR_BT, RANKDIR_RL, } from './init.js';
|
|
18
|
+
/**
|
|
19
|
+
* Stores the edge-type flag in the low 4 bits of g.info.flags.
|
|
20
|
+
* Mirrors the C macro setEdgeType(g, t).
|
|
21
|
+
*
|
|
22
|
+
* @see lib/common/const.h:setEdgeType
|
|
23
|
+
*/
|
|
24
|
+
export declare function setEdgeType(g: Graph, t: number): void;
|
|
25
|
+
/**
|
|
26
|
+
* Set the edge type from the graph's `splines` attribute: unset → defaultValue,
|
|
27
|
+
* empty string → NONE, otherwise the parsed value. Mirrors C's setEdgeType
|
|
28
|
+
* (which reads `agget(g, "splines")`). @see lib/common/utils.c:setEdgeType
|
|
29
|
+
*
|
|
30
|
+
* C's `agget` resolves a graph attribute up the ancestor chain, so a component
|
|
31
|
+
* subgraph sees the root's `splines`. The port's `attrs` map holds only the
|
|
32
|
+
* attributes written on that graph, so walk to the root ourselves — otherwise
|
|
33
|
+
* the per-component call sites (neato's `gc`, sfdp's `sg`) read `undefined` and
|
|
34
|
+
* silently fall back to the default.
|
|
35
|
+
*/
|
|
36
|
+
export declare function setEdgeTypeFromAttr(g: Graph, defaultValue: number): void;
|
|
37
|
+
/**
|
|
38
|
+
* Reads an integer graph attribute, returning defaultVal if not set.
|
|
39
|
+
* Mirrors late_int() from lib/common/utils.c for graph-level reads.
|
|
40
|
+
*
|
|
41
|
+
* @see lib/common/utils.c:late_int
|
|
42
|
+
*/
|
|
43
|
+
export declare function getAttrInt(g: Graph, key: string, defaultVal: number): number;
|
|
44
|
+
/**
|
|
45
|
+
* Phase 0: parse rankdir, set edge type, and run aspect + init passes.
|
|
46
|
+
* dotGraphInit must run first so g.info.flip is set before nodeinit uses it.
|
|
47
|
+
* @see lib/common/input.c:600-663 graph_init
|
|
48
|
+
* @see lib/dotgen/dotinit.c:dotLayout (static)
|
|
49
|
+
*/
|
|
50
|
+
export declare function dotPhaseInit(g: Graph): void;
|
|
51
|
+
/**
|
|
52
|
+
* Phase 4a: post-position passes WITHOUT the final gvPostprocess —
|
|
53
|
+
* removeFill, sameports, splines, compound. This is C's static `dotLayout`
|
|
54
|
+
* tail; the per-component pack branch runs exactly this (gvPostprocess is run
|
|
55
|
+
* once on the root afterwards, not per component).
|
|
56
|
+
* @see lib/dotgen/dotinit.c:dotLayout (static)
|
|
57
|
+
*/
|
|
58
|
+
export declare function dotPhasePostNoFinish(g: Graph): void;
|
|
59
|
+
/**
|
|
60
|
+
* Phase 4: post-position passes — the no-finish tail plus gvPostprocess to
|
|
61
|
+
* rotate/translate coordinates per rankdir.
|
|
62
|
+
* @see lib/dotgen/dotinit.c:dotLayout (static)
|
|
63
|
+
* @see lib/common/postproc.c:dotneato_postprocess
|
|
64
|
+
*/
|
|
65
|
+
export declare function dotPhasePost(g: Graph): void;
|
|
66
|
+
/**
|
|
67
|
+
* Runs the full dot layout pipeline on graph g.
|
|
68
|
+
*
|
|
69
|
+
* The optional `maxphase` attribute (read from g.attrs) controls how many
|
|
70
|
+
* phases run (1=rank only, 2=+mincross, 3=+position, ≥4 or absent=all).
|
|
71
|
+
*
|
|
72
|
+
* C's `dotLayout` checks `dot_mincross`'s return code and returns immediately
|
|
73
|
+
* on failure, skipping `dot_position` (phase 3) and `dotneato_postprocess`
|
|
74
|
+
* entirely — `dot_position` is never reached with a rank/cluster-window state
|
|
75
|
+
* that `dot_mincross` has already given up on (e.g. a cluster's rank window
|
|
76
|
+
* outliving root's rank-array allocation after malformed-input rankset
|
|
77
|
+
* recovery deletes cluster members but leaves the window unshrunk). The port
|
|
78
|
+
* previously discarded `dotMincross`'s return value and always ran
|
|
79
|
+
* `dotPosition` regardless, so `dotPosition` could observe exactly that
|
|
80
|
+
* unreachable-in-C state and crash (e.g. `position-ycoords.ts:clustHt`
|
|
81
|
+
* indexing the root rank array one past its allocated length).
|
|
82
|
+
* @see lib/dotgen/dotinit.c:dotLayout (static) — `if (rc != 0) return rc;`
|
|
83
|
+
* after `dot_mincross`, propagated through `doDot`/`dot_layout` to also
|
|
84
|
+
* skip `dotneato_postprocess`.
|
|
85
|
+
*
|
|
86
|
+
* C applies the identical `if (r != 0) return r;` check after `dot_position`
|
|
87
|
+
* (dotinit.c:322-325), also skipping `dotPhasePost` (removeFill/sameports/
|
|
88
|
+
* splines/compound) and `gvPostprocess`. `dot_position` fails when
|
|
89
|
+
* `dot_concentrate` fails (`rebuild_vlists: lead is null for rank N`, e.g.
|
|
90
|
+
* corpus 2825 — a cross-cluster rank=same plus rankset-conflict deletions
|
|
91
|
+
* leaves a cluster rank with no rankleader); C's renderer then walks the
|
|
92
|
+
* still-fully-connected `Agraph_t` but every node fails `node_in_box`
|
|
93
|
+
* against the never-computed (all-zero) `GD_bb`, so only cluster frames
|
|
94
|
+
* (also zero-sized, since `set_aspect`/cluster geometry never ran) reach
|
|
95
|
+
* the page. The port previously discarded `dotPosition`'s return value and
|
|
96
|
+
* always ran `dotPhasePost`, producing a full (non-degenerate) rendering
|
|
97
|
+
* where C produces near-empty output.
|
|
98
|
+
*/
|
|
99
|
+
export declare function dotLayoutPipeline(g: Graph): void;
|
|
100
|
+
/**
|
|
101
|
+
* Port of C's `doDot`: when `pack`/`packmode` is set, decompose the graph into
|
|
102
|
+
* connected components, lay out each one, and polyomino-pack them; otherwise
|
|
103
|
+
* (and for a single component, or a non-R_NONE ratio) fall back to whole-graph
|
|
104
|
+
* `dotLayoutPipeline`. The thin component loop + cluster carry live in
|
|
105
|
+
* pack-components.ts (ADR-1). `dotLayoutPipeline` already includes the root
|
|
106
|
+
* `gvPostprocess`, so the simple arms map exactly to C's `dotLayout(g)` +
|
|
107
|
+
* `dotneato_postprocess(g)`; the pack arm runs `gvPostprocess` once inside
|
|
108
|
+
* `layoutAndPack`.
|
|
109
|
+
*
|
|
110
|
+
* @see lib/dotgen/dotinit.c:doDot
|
|
111
|
+
*/
|
|
112
|
+
export declare function doDot(g: Graph): void;
|
|
113
|
+
/**
|
|
114
|
+
* LayoutEngine.layout implementation for the dot engine.
|
|
115
|
+
* Skips empty graphs (matching C's agnnodes(g) guard).
|
|
116
|
+
*
|
|
117
|
+
* @see lib/dotgen/dotinit.c:dot_layout
|
|
118
|
+
*/
|
|
119
|
+
export declare function dotLayoutEntry(g: Graph): void;
|
|
120
|
+
/**
|
|
121
|
+
* The dot layout engine registration object.
|
|
122
|
+
* Register with GvcContext.register(DOT_LAYOUT_ENGINE).
|
|
123
|
+
*
|
|
124
|
+
* @see lib/gvc/gvplugin.h:gvlayout_engine_s
|
|
125
|
+
* @see lib/dotgen/dotinit.c:dot_layout
|
|
126
|
+
*/
|
|
127
|
+
export declare const DOT_LAYOUT_ENGINE: LayoutEngine;
|
|
128
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAyBzD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,WAAW,CAAC;AAOnB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAErD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAUxE;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK5E;AAOD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAM3C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAUnD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAG3C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAYhD;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA4BpC;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAG7C;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAI/B,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript port of lib/dotgen/dotinit.c — initialisation helpers for
|
|
3
|
+
* the dot layout pipeline (dot_init_node, dot_init_edge, dot_init_subg,
|
|
4
|
+
* dot_init_node_edge, removeFill, dot_cleanup).
|
|
5
|
+
*
|
|
6
|
+
* @see lib/dotgen/dotinit.c
|
|
7
|
+
*/
|
|
8
|
+
import type { Graph } from '../../model/graph.js';
|
|
9
|
+
import type { Node } from '../../model/node.js';
|
|
10
|
+
import type { Edge } from '../../model/edge.js';
|
|
11
|
+
export { RANKDIR_TB, RANKDIR_LR, RANKDIR_BT, RANKDIR_RL } from '../../common/graph-init.js';
|
|
12
|
+
/**
|
|
13
|
+
* dot's call into the engine-agnostic `graph_init`, plus the one piece of
|
|
14
|
+
* rankdir handling that is genuinely dot's: propagating GD_rankdir2 down to the
|
|
15
|
+
* clusters (C does this in dot's own `initSubg`, dotinit.c:352 — NOT in
|
|
16
|
+
* graph_init).
|
|
17
|
+
*
|
|
18
|
+
* dot is the only engine with `LAYOUT_USES_RANKDIR`
|
|
19
|
+
* (plugin/dot_layout/gvlayout_dot_layout.c:27), hence `useRankdir = true`: the
|
|
20
|
+
* effective rankdir (bits 0-1) tracks the attr instead of being pinned to TB.
|
|
21
|
+
*
|
|
22
|
+
* @see lib/common/input.c:600 graph_init
|
|
23
|
+
* @see lib/gvc/gvlayout.c:81 (graph_init(g, LAYOUT_USES_RANKDIR))
|
|
24
|
+
* @see lib/dotgen/dotinit.c:352 initSubg
|
|
25
|
+
*/
|
|
26
|
+
export declare function dotGraphInit(g: Graph): void;
|
|
27
|
+
/**
|
|
28
|
+
* Crossing penalty for cluster-skeleton / same-group edges.
|
|
29
|
+
* C uses 1000 except under _WIN32, where 100 avoids a 16-bit overflow.
|
|
30
|
+
* The oracle platform (and every modern build) takes the 1000 branch;
|
|
31
|
+
* mincross best-order selection on penalty plateaus depends on it.
|
|
32
|
+
* @see lib/common/const.h:CL_CROSS
|
|
33
|
+
*/
|
|
34
|
+
export declare const CL_CROSS = 1000;
|
|
35
|
+
/**
|
|
36
|
+
* Initialises per-node layout data for the dot engine.
|
|
37
|
+
* Mirrors dot_init_node: binds Agnodeinfo_t and allocates edge lists.
|
|
38
|
+
*
|
|
39
|
+
* @see lib/dotgen/dotinit.c:dot_init_node
|
|
40
|
+
*/
|
|
41
|
+
export declare function dotInitNode(n: Node): void;
|
|
42
|
+
/**
|
|
43
|
+
* True when tail and head carry the same non-empty `group` attribute.
|
|
44
|
+
* C compares interned refstr pointers (`tailgroup == headgroup`); cgraph's
|
|
45
|
+
* per-graph string pool makes that exactly content equality, and the
|
|
46
|
+
* `tailgroup[0]` guard excludes the shared "" default.
|
|
47
|
+
* @see lib/dotgen/dotinit.c:dot_init_edge (tailgroup/headgroup check)
|
|
48
|
+
*/
|
|
49
|
+
export declare function sameNonemptyGroup(e: Edge): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Initialises per-edge layout data for the dot engine.
|
|
52
|
+
* Mirrors dot_init_edge: sets weight, count, xpenalty, minlen.
|
|
53
|
+
*
|
|
54
|
+
* @see lib/dotgen/dotinit.c:dot_init_edge
|
|
55
|
+
*/
|
|
56
|
+
export declare function dotInitEdge(e: Edge): void;
|
|
57
|
+
/**
|
|
58
|
+
* Recursively initialises subgraph-level attributes with defaults.
|
|
59
|
+
* Mirrors dot_init_subg: binds Agraphinfo_t and propagates params.
|
|
60
|
+
*
|
|
61
|
+
* nodesep defaults: 0.25 in × 72 = 18 pts; ranksep: 0.5 in × 72 = 36 pts.
|
|
62
|
+
*
|
|
63
|
+
* @see lib/dotgen/dotinit.c:dot_init_subg
|
|
64
|
+
*/
|
|
65
|
+
export declare function dotInitSubg(g: Graph): void;
|
|
66
|
+
/**
|
|
67
|
+
* Calls commonInitNode (shape-aware, label-driven sizing) then
|
|
68
|
+
* dotInitNode for every node, then dotInitEdge for every edge.
|
|
69
|
+
*
|
|
70
|
+
* @see lib/dotgen/dotinit.c:dot_init_node_edge
|
|
71
|
+
* @see lib/dotgen/dotinit.c:dot_init_node (common_init_node + gv_nodesize)
|
|
72
|
+
*/
|
|
73
|
+
export declare function dotInitNodeEdge(g: Graph): void;
|
|
74
|
+
/**
|
|
75
|
+
* Deletes the placeholder fill-nodes inserted by fillRanks (NEW_RANK mode)
|
|
76
|
+
* once positioning is done, so they never render. Looks up the `_new_rank`
|
|
77
|
+
* subgraph under the root graph; if absent (the common no-newrank case) this
|
|
78
|
+
* is a no-op. Operates on `g.root` throughout because fillRanks created the
|
|
79
|
+
* fill nodes and their ranks under the root.
|
|
80
|
+
*
|
|
81
|
+
* @see lib/dotgen/dotinit.c:removeFill
|
|
82
|
+
*/
|
|
83
|
+
export declare function removeFill(g: Graph): void;
|
|
84
|
+
/**
|
|
85
|
+
* Clears all edge lists and linked-list pointers from nodes in the fast-graph,
|
|
86
|
+
* releasing layout state without destroying the underlying graph structure.
|
|
87
|
+
*
|
|
88
|
+
* Mirrors dot_cleanup: frees virtual node list then per-node edge lists.
|
|
89
|
+
*
|
|
90
|
+
* @see lib/dotgen/dotinit.c:dot_cleanup
|
|
91
|
+
*/
|
|
92
|
+
export declare function dotCleanup(g: Graph): void;
|
|
93
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/init.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAkBhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAQ5F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAG3C;AAwBD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,OAAO,CAAC;AAM7B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAgBzC;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAIlD;AAiCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CA2BzC;AAMD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAQ1C;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAU9C;AAMD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAczC;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAczC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* checkLabelOrder / fixLabelOrder — correct the rank order of flat-edge label
|
|
3
|
+
* virtual nodes when it conflicts with their endpoint intervals, which would
|
|
4
|
+
* otherwise make dot_position's "label between its vertices" constraint
|
|
5
|
+
* infeasible. Ported from lib/dotgen/mincross.c:178-326.
|
|
6
|
+
*
|
|
7
|
+
* The per-rank auxiliary graph (C's Agstrictdirected `lg`/`sg`) is modelled as
|
|
8
|
+
* a small array of LabelNode with in/out adjacency (AD-2) — it is tiny and
|
|
9
|
+
* rebuilt per rank.
|
|
10
|
+
*
|
|
11
|
+
* @see lib/dotgen/mincross.c:fixLabelOrder, checkLabelOrder
|
|
12
|
+
*/
|
|
13
|
+
import type { Node } from '../../model/node.js';
|
|
14
|
+
import type { Graph } from '../../model/graph.js';
|
|
15
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
16
|
+
/** Auxiliary node, one per flat-edge label vnode on a rank (mirrors info_t). */
|
|
17
|
+
export interface LabelNode {
|
|
18
|
+
/** Lower endpoint order. @see ND_lo */
|
|
19
|
+
lo: number;
|
|
20
|
+
/** Upper endpoint order. @see ND_hi */
|
|
21
|
+
hi: number;
|
|
22
|
+
/** The dot label virtual node. @see ND_np */
|
|
23
|
+
np: Node;
|
|
24
|
+
/** Original rank order of np. @see ND_idx = ND_order(ND_np) */
|
|
25
|
+
idx: number;
|
|
26
|
+
/** DFS visited flag. @see ND_x */
|
|
27
|
+
x: number;
|
|
28
|
+
out: LabelNode[];
|
|
29
|
+
in: LabelNode[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Reorder a rank's flat-label vnodes so their order is consistent with their
|
|
33
|
+
* endpoint intervals. Builds conflict edges, and for each connected component
|
|
34
|
+
* containing a backedge, reassigns np.order / rank.v[] to the topological order
|
|
35
|
+
* over the component's original positions.
|
|
36
|
+
* @see lib/dotgen/mincross.c:fixLabelOrder
|
|
37
|
+
*/
|
|
38
|
+
export declare function fixLabelOrder(nodes: LabelNode[], rank: RankEntry): void;
|
|
39
|
+
/**
|
|
40
|
+
* For each rank, collect flat-edge label vnodes and, when a rank has more than
|
|
41
|
+
* one, run fixLabelOrder to repair an infeasible order.
|
|
42
|
+
* @see lib/dotgen/mincross.c:checkLabelOrder
|
|
43
|
+
*/
|
|
44
|
+
export declare function checkLabelOrder(g: Graph): void;
|
|
45
|
+
//# sourceMappingURL=label-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"label-order.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/label-order.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,EAAE,EAAE,IAAI,CAAC;IACT,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,EAAE,EAAE,SAAS,EAAE,CAAC;CACjB;AAoED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAevE;AAqBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAW9C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build-phase helpers for the mincross algorithm: rank allocation and filling,
|
|
3
|
+
* BFS rank installation, and edge-ordering setup. Flat-edge cycle breaking and
|
|
4
|
+
* flat reorder live in ./mincross-flat.js and are re-exported here.
|
|
5
|
+
* @see lib/dotgen/mincross.c
|
|
6
|
+
*/
|
|
7
|
+
import type { Graph } from '../../model/graph.js';
|
|
8
|
+
import type { Node } from '../../model/node.js';
|
|
9
|
+
import type { Edge } from '../../model/edge.js';
|
|
10
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
11
|
+
import { MincrossContext } from './mincross-utils.js';
|
|
12
|
+
import { installCluster, expandCluster, markLowclusters } from './cluster.js';
|
|
13
|
+
export declare function betweenclust(e: Edge): boolean;
|
|
14
|
+
export { flatRevFindRev, flatRev, flatSearchOstack, flatSearchNormal, flatSearchEdge, flatSearch, flatBreakcyclesRank, flatBreakcycles, constrainingFlatEdge, countConstraining, postorder, flatReorderBuildTemprank, flatReorderFixEdges, flatReorderRank, flatReorder, } from './mincross-flat.js';
|
|
15
|
+
export declare function makeEmptyRank(): RankEntry;
|
|
16
|
+
export declare function allocateRanksCount(g: Graph, cn: number[]): void;
|
|
17
|
+
export declare function allocateRanks(g: Graph): void;
|
|
18
|
+
/**
|
|
19
|
+
* Recursive cluster walk: fill empty ranks in `g` and its sub-clusters with
|
|
20
|
+
* placeholder nodes; returns the `_new_rank` subgraph (lazily created).
|
|
21
|
+
*
|
|
22
|
+
* DEVIATION (clust indexing): the C loop is `c=1..n_cluster` over the 1-based
|
|
23
|
+
* `GD_clust(g)[c]`. This port's `g.info.clust` is 0-indexed (populated at
|
|
24
|
+
* `clust[nc-1]` in rank.ts), so we read `clust[c-1]` for the same cluster.
|
|
25
|
+
*
|
|
26
|
+
* @see lib/dotgen/mincross.c:976
|
|
27
|
+
*/
|
|
28
|
+
export declare function realFillRanks(g: Graph, ranks: boolean[], sg: Graph | null): Graph | null;
|
|
29
|
+
/** @see lib/dotgen/mincross.c:fillRanks (1013) */
|
|
30
|
+
export declare function fillRanks(g: Graph): void;
|
|
31
|
+
/** Check that rank r is within the graph's rank range. */
|
|
32
|
+
export declare function rankInRange(g: Graph, r: number): boolean;
|
|
33
|
+
/** Check that node's order doesn't exceed root rank allocation. */
|
|
34
|
+
export declare function orderWithinAlloc(ctx: MincrossContext, r: number, order: number): boolean;
|
|
35
|
+
/** Place node n into its rank slot, honouring vStart for multi-component graphs. */
|
|
36
|
+
export declare function placeInRankSlot(g: Graph, n: Node, r: number): number;
|
|
37
|
+
export declare function installInRank(ctx: MincrossContext, g: Graph, n: Node): number;
|
|
38
|
+
export declare function enqueueNeighbors(q: Node[], n0: Node, pass: number): void;
|
|
39
|
+
export { installCluster };
|
|
40
|
+
export declare function buildRanksFlip(ctx: MincrossContext, g: Graph, mn: number, mx: number): void;
|
|
41
|
+
export declare function buildRanksBfs(ctx: MincrossContext, g: Graph, pass: number, startNode: Node): number;
|
|
42
|
+
export declare function buildRanksFindStart(g: Graph): Node | undefined;
|
|
43
|
+
export declare function buildRanksSources(ctx: MincrossContext, g: Graph, pass: number, ns: Node | undefined): number;
|
|
44
|
+
export declare function buildRanks(ctx: MincrossContext, g: Graph, pass: number): number;
|
|
45
|
+
export declare function doOrderingAddFlatEdges(g: Graph, sortlist: Edge[], outflag: boolean): void;
|
|
46
|
+
export declare function doOrderingNode(ctx: MincrossContext, g: Graph, n: Node, outflag: boolean): void;
|
|
47
|
+
export declare function doOrderingForNodes(ctx: MincrossContext, g: Graph): void;
|
|
48
|
+
export declare function doOrdering(ctx: MincrossContext, g: Graph, outflag: boolean): void;
|
|
49
|
+
export declare function orderedEdges(ctx: MincrossContext, g: Graph): void;
|
|
50
|
+
export { class2 } from './classify.js';
|
|
51
|
+
export { expandCluster, markLowclusters };
|
|
52
|
+
//# sourceMappingURL=mincross-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mincross-build.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-build.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crossing computation for the mincross algorithm: left2right constraint
|
|
3
|
+
* checks, in/out crossing counts, exchange, transpose, local_cross, rcross,
|
|
4
|
+
* and ncross.
|
|
5
|
+
*
|
|
6
|
+
* @see lib/dotgen/mincross.c
|
|
7
|
+
*/
|
|
8
|
+
import type { Graph } from '../../model/graph.js';
|
|
9
|
+
import type { Node } from '../../model/node.js';
|
|
10
|
+
import type { Edge } from '../../model/edge.js';
|
|
11
|
+
import type { EdgeList } from '../../model/nodeInfo.js';
|
|
12
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
13
|
+
import { MincrossContext } from './mincross-utils.js';
|
|
14
|
+
export declare function setReMincross(b: boolean): void;
|
|
15
|
+
/** @see lib/dotgen/mincross.c:VAL */
|
|
16
|
+
export declare function val(node: Node, portOrder: number): number;
|
|
17
|
+
/** Edge xpenalty with default 1. @see lib/dotgen/mincross.c */
|
|
18
|
+
export declare function xpen(e: Edge): number;
|
|
19
|
+
/** Signed crossing contribution. @see lib/dotgen/mincross.c:in_cross/out_cross */
|
|
20
|
+
export declare function crossContrib(aVal: number, aPen: number, bVal: number, bPen: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Cluster ordering constraint, the guard portion of C's left2right.
|
|
23
|
+
* Non-remincross: only pairs whose nodes are BOTH in (different) clusters are
|
|
24
|
+
* forced; a cluster skeleton vnode on either side releases the pair. Remincross:
|
|
25
|
+
* any cross-cluster pair is forced. Returns 1 = forced (block swap), 0 = defer
|
|
26
|
+
* to the flat-adjacency matrix. @see lib/dotgen/mincross.c:left2right
|
|
27
|
+
*/
|
|
28
|
+
export declare function left2rightCluster(v: Node, w: Node): number;
|
|
29
|
+
/** @see lib/dotgen/mincross.c:left2right */
|
|
30
|
+
export declare function left2right(g: Graph, v: Node, w: Node): number;
|
|
31
|
+
/**
|
|
32
|
+
* Crossing counts for the pair (v, w): [c0 = crossings with v before w (the
|
|
33
|
+
* current order), c1 = crossings with w before v (swapped)]. Mirrors
|
|
34
|
+
* in_cross(v,w)+out_cross(v,w) and in_cross(w,v)+out_cross(w,v) in one pass.
|
|
35
|
+
*
|
|
36
|
+
* `useIn`/`useOut` mirror C transpose_step's gates (mincross.c:646-652):
|
|
37
|
+
* in-crossings are added only when r > 0, out-crossings only when the next
|
|
38
|
+
* rank has n > 0. For clusters, allocate_ranks callocs maxrank+2 rank slots
|
|
39
|
+
* (mincross.c:1163), so the slot past a cluster's maxrank has n == 0 and C
|
|
40
|
+
* reads that calloc'd n as a gate — it ignores out-crossings at the
|
|
41
|
+
* cluster's bottom rank. Callers must reproduce both gates; this function no
|
|
42
|
+
* longer accumulates unconditionally.
|
|
43
|
+
* @see lib/dotgen/mincross.c:in_cross, out_cross, transpose_step:646-652
|
|
44
|
+
*/
|
|
45
|
+
export declare function transposeCounts(v: Node, w: Node, useIn: boolean, useOut: boolean): [number, number];
|
|
46
|
+
/** @see lib/dotgen/mincross.c:exchange */
|
|
47
|
+
export declare function exchange(ctx: MincrossContext, v: Node, w: Node): void;
|
|
48
|
+
/** C transpose_step swap test: strict improvement, or a reverse tie when there
|
|
49
|
+
* are crossings to redistribute. @see lib/dotgen/mincross.c:transpose_step */
|
|
50
|
+
export declare function shouldSwap(c0: number, c1: number, reverse: boolean): boolean;
|
|
51
|
+
/** Returns the total crossing reduction over rank r and marks r and its
|
|
52
|
+
* neighbours as candidates. @see lib/dotgen/mincross.c:transpose_step */
|
|
53
|
+
export declare function transposeStep(ctx: MincrossContext, g: Graph, r: number, reverse: boolean): number;
|
|
54
|
+
/**
|
|
55
|
+
* Repeatedly transpose adjacent nodes within each rank to remove crossings,
|
|
56
|
+
* re-examining only candidate ranks until no rank improves (delta < 1).
|
|
57
|
+
* @see lib/dotgen/mincross.c:transpose
|
|
58
|
+
*/
|
|
59
|
+
export declare function transpose(ctx: MincrossContext, g: Graph, reverse: boolean): void;
|
|
60
|
+
/** Crossing contribution for one out/in edge pair. @see lib/dotgen/mincross.c:local_cross */
|
|
61
|
+
export declare function localCrossEdgePair(e: Edge, f: Edge, isOut: boolean): number;
|
|
62
|
+
/** Port-level crossings for one node's edge list. @see lib/dotgen/mincross.c:local_cross */
|
|
63
|
+
export declare function localCrossEdges(edges: EdgeList, dir: number): number;
|
|
64
|
+
/** Count crossings for one node's out-edges vs Count array. `vs` is the head
|
|
65
|
+
* rank's window offset. ND_order is stored ABSOLUTE (vStart + index) in this
|
|
66
|
+
* port, but C indexes Count by the window-RELATIVE order, and Count is sized to
|
|
67
|
+
* the component's rank count. Subtract vs so a component c>0 indexes within the
|
|
68
|
+
* Count array; without it, Count[inv] is undefined → NaN → ncross breaks.
|
|
69
|
+
* @see lib/dotgen/mincross.c:rcross */
|
|
70
|
+
export declare function rcrossCount(out: EdgeList, Count: number[], max: number, vs: number): number;
|
|
71
|
+
/** Register one node's out-edges in Count; return updated max. `vs`: head rank
|
|
72
|
+
* window offset (see rcrossCount). @see lib/dotgen/mincross.c:rcross */
|
|
73
|
+
export declare function rcrossRegister(out: EdgeList, Count: number[], max: number, vs: number): number;
|
|
74
|
+
/** Port crossings for nodes with ports in a single rank. @see lib/dotgen/mincross.c:rcross */
|
|
75
|
+
export declare function rcrossLocal(rk: RankEntry, dir: number): number;
|
|
76
|
+
/** @see lib/dotgen/mincross.c:rcross */
|
|
77
|
+
export declare function rcross(ctx: MincrossContext, g: Graph, r: number): number;
|
|
78
|
+
/** @see lib/dotgen/mincross.c:ncross */
|
|
79
|
+
export declare function ncross(ctx: MincrossContext): number;
|
|
80
|
+
//# sourceMappingURL=mincross-cross.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mincross-cross.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-cross.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat-edge handling for the mincross algorithm: flat-edge cycle breaking
|
|
3
|
+
* (flat_rev / flat_search / flat_breakcycles) and flat reorder
|
|
4
|
+
* (constraining-edge counting, postorder, flat_reorder).
|
|
5
|
+
* @see lib/dotgen/mincross.c flat-edge handling
|
|
6
|
+
*/
|
|
7
|
+
import type { Graph } from '../../model/graph.js';
|
|
8
|
+
import type { Node } from '../../model/node.js';
|
|
9
|
+
import type { Edge } from '../../model/edge.js';
|
|
10
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
11
|
+
import { MincrossContext } from './mincross-utils.js';
|
|
12
|
+
export declare function flatRevFindRev(head: Node, tail: Node): Edge | undefined;
|
|
13
|
+
export declare function flatRev(g: Graph, e: Edge): void;
|
|
14
|
+
export declare function flatSearchOstack(g: Graph, v: Node, e: Edge, M: RankEntry['flat']): boolean;
|
|
15
|
+
export declare function flatSearchNormal(g: Graph, v: Node, e: Edge, M: RankEntry['flat'], hascl: boolean): void;
|
|
16
|
+
export declare function flatSearchEdge(g: Graph, v: Node, e: Edge, M: RankEntry['flat'], hascl: boolean): boolean;
|
|
17
|
+
export declare function flatSearch(g: Graph, v: Node, M: RankEntry['flat'], hascl: boolean): void;
|
|
18
|
+
export declare function flatBreakcyclesRank(g: Graph, rk: RankEntry, hascl: boolean): void;
|
|
19
|
+
export declare function flatBreakcycles(_ctx: MincrossContext, g: Graph): void;
|
|
20
|
+
export declare function constrainingFlatEdge(g: Graph, e: Edge): boolean;
|
|
21
|
+
export declare function countConstraining(g: Graph, edges: import('../../model/nodeInfo.js').EdgeList): number;
|
|
22
|
+
export declare function postorder(g: Graph, v: Node, list: Node[], r: number): void;
|
|
23
|
+
export declare function flatReorderBuildTemprank(g: Graph, rk: RankEntry, temprank: Node[], flip: boolean): void;
|
|
24
|
+
export declare function flatReorderFixEdges(g: Graph, rk: RankEntry, flip: boolean): void;
|
|
25
|
+
export declare function flatReorderRank(g: Graph, rk: RankEntry, rootRank: RankEntry[], r: number, flip: boolean): void;
|
|
26
|
+
export declare function flatReorder(_ctx: MincrossContext, g: Graph): void;
|
|
27
|
+
//# sourceMappingURL=mincross-flat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mincross-flat.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-flat.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAM1D,OAAO,EACL,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAG7B,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAOvE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAa/C;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAO1F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAKvG;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAOxG;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAYxF;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAoBjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CASrE;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAK/D;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,yBAAyB,EAAE,QAAQ,GAAG,MAAM,CAMrG;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAW1E;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAQvG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAiBhF;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAkB9G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAUjE"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ordering/median pass and mincross main loop for the mincross algorithm.
|
|
3
|
+
* Build-phase helpers live in mincross-build.ts.
|
|
4
|
+
*
|
|
5
|
+
* @see lib/dotgen/mincross.c
|
|
6
|
+
*/
|
|
7
|
+
import type { Graph } from '../../model/graph.js';
|
|
8
|
+
import type { Node } from '../../model/node.js';
|
|
9
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
10
|
+
import type { EdgeList } from '../../model/nodeInfo.js';
|
|
11
|
+
import { MincrossContext } from './mincross-utils.js';
|
|
12
|
+
type StepBounds = {
|
|
13
|
+
first: number;
|
|
14
|
+
last: number;
|
|
15
|
+
dir: number;
|
|
16
|
+
};
|
|
17
|
+
type CrossState = {
|
|
18
|
+
cur: number;
|
|
19
|
+
best: number;
|
|
20
|
+
};
|
|
21
|
+
type ReorderResult = {
|
|
22
|
+
rp: number;
|
|
23
|
+
muststay: boolean;
|
|
24
|
+
};
|
|
25
|
+
export declare function setMincrossTrace(fn: ((line: string) => void) | null): void;
|
|
26
|
+
export declare function flatMvalIn(n: Node, fi: EdgeList): boolean;
|
|
27
|
+
export declare function flatMvalOut(n: Node, fo: EdgeList): boolean;
|
|
28
|
+
/** @see lib/dotgen/mincross.c:flat_mval */
|
|
29
|
+
export declare function flatMval(n: Node): boolean;
|
|
30
|
+
/** Collect val() samples for one node's adjacent edges. @see lib/dotgen/mincross.c:mval */
|
|
31
|
+
export declare function mediansCollectDir(v: Node, d: number, list: number[]): void;
|
|
32
|
+
/**
|
|
33
|
+
* C operates on an int[] (VAL = MC_SCALE*ND_order + port.order), so the n==2
|
|
34
|
+
* average and the equal-span case use INTEGER division (truncation toward
|
|
35
|
+
* zero), not float. Using float here yields x.5 mvals that perturb the reorder
|
|
36
|
+
* sort and diverge from C on tie-heavy ranks (e.g. 2371's flat mid network).
|
|
37
|
+
* The unequal-span weighted median stays a true double, matching C.
|
|
38
|
+
* @see lib/dotgen/mincross.c:median
|
|
39
|
+
*/
|
|
40
|
+
export declare function computeMedian(list: number[]): number;
|
|
41
|
+
/**
|
|
42
|
+
* Loop 1 body of C `medians` (mincross.c:1627-1667) — computes a fresh mval
|
|
43
|
+
* for a SINGLE node from its directional fast-edge list. An empty list
|
|
44
|
+
* (including nodes with no fast edges in this direction at all — case 0 at
|
|
45
|
+
* mincross.c:1643) resets mval to -1 via computeMedian. This must run for
|
|
46
|
+
* EVERY node in the rank, unconditionally, before flat_mval (loop 2 in
|
|
47
|
+
* `medians` below) reads any node's mval.
|
|
48
|
+
* @see lib/dotgen/mincross.c:1621-1667
|
|
49
|
+
*/
|
|
50
|
+
export declare function mediansProcessNode(v: Node, d: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* @see lib/dotgen/mincross.c:1621
|
|
53
|
+
*
|
|
54
|
+
* Mirrors C's exact two-loop shape. Loop 1 resets/sets mval for EVERY node
|
|
55
|
+
* in the rank (mincross.c:1627-1667). Loop 2 runs flat_mval only for nodes
|
|
56
|
+
* with NO fast edges in either direction (mincross.c:1669-1673), strictly
|
|
57
|
+
* after loop 1 has completed for the whole rank — so flat_mval always
|
|
58
|
+
* observes a freshly-reset mval, never a stale value left over from the
|
|
59
|
+
* opposite pass direction. A fused single-loop version that early-returns
|
|
60
|
+
* into flat_mval for edge-less nodes skips the loop-1 reset for exactly
|
|
61
|
+
* those nodes, leaking stale cross-pass mval into the reorder comparator.
|
|
62
|
+
* @see plans/residual-cleanup/analysis/1453-medians-reset.md
|
|
63
|
+
*/
|
|
64
|
+
export declare function medians(_ctx: MincrossContext, g: Graph, r: number, d: number): boolean;
|
|
65
|
+
/** @see lib/dotgen/mincross.c:save_best */
|
|
66
|
+
export declare function saveBest(g: Graph): void;
|
|
67
|
+
export declare function restoreRank(rk: RankEntry, rootRk: RankEntry): void;
|
|
68
|
+
/** @see lib/dotgen/mincross.c:restore_best */
|
|
69
|
+
export declare function restoreBest(ctx: MincrossContext, g: Graph): void;
|
|
70
|
+
export declare function reorderFindLp(vlist: Node[], lp: number, ep: number): number;
|
|
71
|
+
export declare function reorderFindRp(g: Graph, vlist: Node[], lp: number, ep: number): ReorderResult;
|
|
72
|
+
export declare function reorderInner(ctx: MincrossContext, g: Graph, vlist: Node[], win: {
|
|
73
|
+
start: number;
|
|
74
|
+
ep: number;
|
|
75
|
+
}, reverse: boolean): boolean;
|
|
76
|
+
/** @see lib/dotgen/mincross.c:reorder */
|
|
77
|
+
export declare function reorder(ctx: MincrossContext, g: Graph, r: number, reverse: boolean, hasfixed: boolean): void;
|
|
78
|
+
/** @see lib/dotgen/mincross.c:mincross_step (bounds computation) */
|
|
79
|
+
export declare function mincrossStepBounds(ctx: MincrossContext, g: Graph, pass: number): StepBounds;
|
|
80
|
+
/** @see lib/dotgen/mincross.c:mincross_step */
|
|
81
|
+
export declare function mincrossStep(ctx: MincrossContext, g: Graph, pass: number): void;
|
|
82
|
+
/** @see lib/dotgen/mincross.c:mincross (iteration loop) */
|
|
83
|
+
export declare function mincrossIter(ctx: MincrossContext, g: Graph, maxthispass: number, state: CrossState, pass: number): void;
|
|
84
|
+
/** @see lib/dotgen/mincross.c:mincross (pass setup) */
|
|
85
|
+
export declare function mincrossPassSetup(ctx: MincrossContext, g: Graph, pass: number, state: CrossState): number;
|
|
86
|
+
/** @see lib/dotgen/mincross.c:mincross */
|
|
87
|
+
export declare function mincrossMain(ctx: MincrossContext, g: Graph, startpass: number): number;
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=mincross-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mincross-order.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared utilities for the mincross family: context type, AdjMatrix helpers,
|
|
3
|
+
* graph helpers, and node cluster helpers.
|
|
4
|
+
* Imported by mincross.ts, mincross-build.ts, mincross-cross.ts, and
|
|
5
|
+
* mincross-order.ts to avoid circular dependencies.
|
|
6
|
+
*
|
|
7
|
+
* @see lib/dotgen/mincross.c
|
|
8
|
+
*/
|
|
9
|
+
import type { Graph } from '../../model/graph.js';
|
|
10
|
+
import type { Node } from '../../model/node.js';
|
|
11
|
+
import type { Edge } from '../../model/edge.js';
|
|
12
|
+
import type { AdjMatrix, RankEntry } from '../../model/rankEntry.js';
|
|
13
|
+
/** @see lib/dotgen/mincross.c:Convergence */
|
|
14
|
+
export declare const CONVERGENCE = 0.995;
|
|
15
|
+
/**
|
|
16
|
+
* Replaces C module-level statics (Root, GlobalMinRank/MaxRank, TE_list,
|
|
17
|
+
* TI_list, ReMincross, MinQuit, MaxIter) for reentrancy.
|
|
18
|
+
* @see lib/dotgen/mincross.c (module statics)
|
|
19
|
+
*/
|
|
20
|
+
export interface MincrossContext {
|
|
21
|
+
root: Graph;
|
|
22
|
+
globalMinRank: number;
|
|
23
|
+
globalMaxRank: number;
|
|
24
|
+
teList: Edge[];
|
|
25
|
+
tiList: number[];
|
|
26
|
+
reMincross: boolean;
|
|
27
|
+
minQuit: number;
|
|
28
|
+
maxIter: number;
|
|
29
|
+
}
|
|
30
|
+
/** @see lib/dotgen/mincross.c:matrix_get */
|
|
31
|
+
export declare function matrixGet(m: AdjMatrix, row: number, col: number): boolean;
|
|
32
|
+
/** @see lib/dotgen/mincross.c:matrix_set */
|
|
33
|
+
export declare function matrixSet(m: AdjMatrix, row: number, col: number): void;
|
|
34
|
+
/** Copy all set bits into new buffer with updated column count. */
|
|
35
|
+
export declare function matrixCopyBits(m: AdjMatrix, data: Uint8Array, ncols: number): void;
|
|
36
|
+
/** @see lib/dotgen/mincross.c:new_matrix */
|
|
37
|
+
export declare function newMatrix(rows: number, cols: number): AdjMatrix;
|
|
38
|
+
/** @see lib/dotgen/dot.h:dot_root */
|
|
39
|
+
export declare function dotRoot(g: Graph): Graph;
|
|
40
|
+
/** @see lib/cgraph/cgraph.h:agcontains (node) */
|
|
41
|
+
export declare function agContainsNode(g: Graph, n: Node): boolean;
|
|
42
|
+
/** @see lib/cgraph/cgraph.h:agcontains (edge) */
|
|
43
|
+
export declare function agContainsEdge(g: Graph, e: Edge): boolean;
|
|
44
|
+
/** Get rank.v[i] respecting vStart pointer-arithmetic offset. */
|
|
45
|
+
export declare function rankGet(rank: RankEntry, i: number): Node;
|
|
46
|
+
/** Set rank.v[i] respecting vStart pointer-arithmetic offset. */
|
|
47
|
+
export declare function rankSet(rank: RankEntry, i: number, n: Node): void;
|
|
48
|
+
/** @see lib/dotgen/mincross.c:is_a_normal_node_of */
|
|
49
|
+
export declare function isNormalNodeOf(g: Graph, v: Node): boolean;
|
|
50
|
+
/** @see lib/dotgen/mincross.c:is_a_vnode_of_an_edge_of */
|
|
51
|
+
export declare function isVnodeOfEdgeOf(g: Graph, v: Node): boolean;
|
|
52
|
+
/** @see lib/dotgen/mincross.c:inside_cluster */
|
|
53
|
+
export declare function insideCluster(g: Graph, v: Node): boolean;
|
|
54
|
+
/** @see lib/dotgen/mincross.c:neighbor
|
|
55
|
+
* Only the Root global is consulted, so callers outside the mincross pass
|
|
56
|
+
* (flat_edges' vlist reset runs in dot_position) may pass a bare `{root}`. */
|
|
57
|
+
export declare function neighborNode(ctx: Pick<MincrossContext, 'root'>, v: Node, dir: number): Node | undefined;
|
|
58
|
+
/** @see lib/dotgen/mincross.c:furthestnode */
|
|
59
|
+
export declare function furthestNode(ctx: Pick<MincrossContext, 'root'>, g: Graph, v: Node, dir: number): Node;
|
|
60
|
+
//# sourceMappingURL=mincross-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mincross-utils.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-utils.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAOrE,6CAA6C;AAC7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AAMjC;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIzE;AAED,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAItE;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQlF;AAcD,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAI/D;AAMD,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEvC;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzD;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzD;AAMD,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAEjE;AAMD,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzD;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAQ1D;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAExD;AAED;;8EAE8E;AAC9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAMvG;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAOrG"}
|