@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,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript port of lib/dotgen/mincross.c — entry point, init, merge,
|
|
3
|
+
* cleanup, vlist helpers, virtualWeight, and mincrossOptions.
|
|
4
|
+
* Shared utilities live in mincross-utils.ts; crossing computations in
|
|
5
|
+
* mincross-cross.ts; ordering in mincross-order.ts; rank building in
|
|
6
|
+
* mincross-build.ts.
|
|
7
|
+
*
|
|
8
|
+
* @see lib/dotgen/mincross.c
|
|
9
|
+
*/
|
|
10
|
+
import type { Graph } from '../../model/graph.js';
|
|
11
|
+
import type { Node } from '../../model/node.js';
|
|
12
|
+
import type { Edge } from '../../model/edge.js';
|
|
13
|
+
import { MincrossContext, dotRoot, rankGet, agContainsNode, agContainsEdge } from './mincross-utils.js';
|
|
14
|
+
export type { MincrossContext };
|
|
15
|
+
export { dotRoot, agContainsNode, agContainsEdge, rankGet };
|
|
16
|
+
export { CONVERGENCE, matrixGet, matrixSet, newMatrix, matrixCopyBits, insideCluster, isNormalNodeOf, isVnodeOfEdgeOf, neighborNode, furthestNode, rankSet, } from './mincross-utils.js';
|
|
17
|
+
export declare function endpointClass(n: Node): number;
|
|
18
|
+
/** @see lib/dotgen/mincross.c:virtual_weight */
|
|
19
|
+
export declare function virtualWeight(e: Edge): void;
|
|
20
|
+
/** @see lib/dotgen/mincross.c:mincross_options */
|
|
21
|
+
export declare function mincrossOptions(ctx: MincrossContext, g: Graph): void;
|
|
22
|
+
/** @see lib/dotgen/mincross.c:save_vlist */
|
|
23
|
+
export declare function saveVlist(g: Graph): void;
|
|
24
|
+
/** @see lib/dotgen/mincross.c:rec_save_vlists */
|
|
25
|
+
export declare function recSaveVlists(g: Graph): void;
|
|
26
|
+
/** @see lib/dotgen/mincross.c:rec_reset_vlists */
|
|
27
|
+
export declare function recResetVlists(ctx: Pick<MincrossContext, 'root'>, g: Graph): void;
|
|
28
|
+
/** @see lib/dotgen/mincross.c:reset_vlists */
|
|
29
|
+
export declare function resetVlistRanks(ctx: Pick<MincrossContext, 'root'>, g: Graph): void;
|
|
30
|
+
/** @see lib/dotgen/mincross.c:reset_vlist */
|
|
31
|
+
export declare function applyVlistReset(ctx: Pick<MincrossContext, 'root'>, g: Graph, r: number): void;
|
|
32
|
+
/** @see lib/dotgen/mincross.c:init_mincross */
|
|
33
|
+
export declare function initMincross(ctx: MincrossContext, g: Graph): void;
|
|
34
|
+
/** @see lib/dotgen/mincross.c:init_mccomp */
|
|
35
|
+
export declare function initMccomp(g: Graph, c: number): void;
|
|
36
|
+
/** @see lib/dotgen/mincross.c:merge_components */
|
|
37
|
+
export declare function mergeComponents(ctx: MincrossContext, g: Graph): void;
|
|
38
|
+
/** @see lib/dotgen/mincross.c:merge2 */
|
|
39
|
+
export declare function merge2(ctx: MincrossContext, g: Graph): void;
|
|
40
|
+
/** @see lib/dotgen/mincross.c:cleanup2 */
|
|
41
|
+
export declare function cleanup2(ctx: MincrossContext, g: Graph): void;
|
|
42
|
+
/** @see lib/dotgen/mincross.c:cleanup2 (rank loop) */
|
|
43
|
+
export declare function cleanup2Ranks(g: Graph): void;
|
|
44
|
+
/** @see lib/dotgen/mincross.c:cleanup2 (flatorder removal) */
|
|
45
|
+
export declare function removeFlatorderEdges(v: Node): void;
|
|
46
|
+
/** @see lib/dotgen/mincross.c:mincross_clust */
|
|
47
|
+
export declare function mincrossClust(ctx: MincrossContext, g: Graph): number;
|
|
48
|
+
/** @see lib/dotgen/mincross.c:dot_mincross */
|
|
49
|
+
/**
|
|
50
|
+
* Drop clusters with no member nodes before crossing/expansion.
|
|
51
|
+
*
|
|
52
|
+
* C `dot_mincross` removes empty clusters up front (only parse-time-empty
|
|
53
|
+
* "malformed input" clusters reach that point). The port must run it *after*
|
|
54
|
+
* `initMincross` because a node referenced in several clusters is pruned to its
|
|
55
|
+
* first cluster by `mark_clusters` agdelete (defect A) during init — emptying
|
|
56
|
+
* the later clusters. The port then *must* drop them: `merge_ranks` aliases each
|
|
57
|
+
* cluster's `rank[r].v` into the shared root rank array (vStart), so expanding an
|
|
58
|
+
* empty cluster clobbers the slot a sibling cluster just filled (e.g. 1221/2721:
|
|
59
|
+
* one node in two clusters → node lost, `rank.v[0]` null → position crash). C is
|
|
60
|
+
* immune because it installs from the root node list, not cluster membership.
|
|
61
|
+
* An empty cluster has no bbox and is not drawn, so dropping it matches C output.
|
|
62
|
+
*
|
|
63
|
+
* @see lib/dotgen/mincross.c:dot_mincross (empty-cluster removal loop)
|
|
64
|
+
*/
|
|
65
|
+
export declare function removeEmptyClusters(g: Graph): void;
|
|
66
|
+
export declare function dotMincross(g: Graph): number;
|
|
67
|
+
/** @see lib/dotgen/mincross.c:dot_mincross (component loop) */
|
|
68
|
+
export declare function runComponents(ctx: MincrossContext, g: Graph, comp: Node[]): number;
|
|
69
|
+
/** @see lib/dotgen/mincross.c:dot_mincross (cluster loop) */
|
|
70
|
+
export declare function runClusters(ctx: MincrossContext, g: Graph): number;
|
|
71
|
+
/** @see lib/dotgen/mincross.c:dot_mincross (remincross) */
|
|
72
|
+
export declare function runRemincross(ctx: MincrossContext, g: Graph, nc: number): number;
|
|
73
|
+
/** @see lib/dotgen/mincross.c:dot_mincross (context init) */
|
|
74
|
+
export declare function makeMincrossCtx(g: Graph): MincrossContext;
|
|
75
|
+
//# sourceMappingURL=mincross.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mincross.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;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;AAIhD,OAAO,EACL,eAAe,EAAE,OAAO,EAAgB,OAAO,EAC/C,cAAc,EAAE,cAAc,EAC/B,MAAM,qBAAqB,CAAC;AAQ7B,YAAY,EAAE,eAAe,EAAE,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;AAC5D,OAAO,EACL,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAC5D,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAC5D,YAAY,EAAE,OAAO,GACtB,MAAM,qBAAqB,CAAC;AAgB7B,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAI7C;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAG3C;AAMD,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAWpE;AAMD,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAcxC;AAED,iDAAiD;AACjD,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAM5C;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAKjF;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAIlF;AAED,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAiB7F;AAMD,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAejE;AAED,6CAA6C;AAC7C,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAepD;AAMD,kDAAkD;AAClD,wBAAgB,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAcpE;AAED,wCAAwC;AACxC,wBAAgB,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAe3D;AAMD,0CAA0C;AAC1C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAO7D;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAY5C;AAED,8DAA8D;AAC9D,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CASlD;AAMD,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAkBpE;AAMD,8CAA8C;AAC9C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAOlD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAgB5C;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CASlF;AAED,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAWlE;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAWhF;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAKzD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** @see lib/common/ns.c — types, constants, tree-list helpers */
|
|
2
|
+
import type { Node } from '../../model/node.js';
|
|
3
|
+
import type { Edge } from '../../model/edge.js';
|
|
4
|
+
import type { Graph } from '../../model/graph.js';
|
|
5
|
+
import type { EdgeList } from '../../model/nodeInfo.js';
|
|
6
|
+
/** @see lib/common/ns.c:network_simplex_ctx_t */
|
|
7
|
+
export interface NsCtx {
|
|
8
|
+
g: Graph;
|
|
9
|
+
treeEdges: Edge[];
|
|
10
|
+
sI: number;
|
|
11
|
+
nEdges: number;
|
|
12
|
+
nNodes: number;
|
|
13
|
+
searchSize: number;
|
|
14
|
+
}
|
|
15
|
+
/** @see lib/common/ns.c:SEARCHSIZE */
|
|
16
|
+
export declare const SEARCHSIZE = 30;
|
|
17
|
+
/** Normal node type. @see lib/common/types.h */
|
|
18
|
+
export declare const NORMAL = 0;
|
|
19
|
+
/** LENGTH(e) = rank(head) - rank(tail). @see lib/common/ns.c */
|
|
20
|
+
export declare function nsLength(e: Edge): number;
|
|
21
|
+
/** SLACK(e) = LENGTH(e) - minlen(e). @see lib/common/ns.c */
|
|
22
|
+
export declare function nsSlack(e: Edge): number;
|
|
23
|
+
/** TREE_EDGE(e): tree_index >= 0. @see lib/common/ns.c */
|
|
24
|
+
export declare function isTreeEdge(e: Edge): boolean;
|
|
25
|
+
/** SEQ(a,b,c): a<=b && b<=c. @see lib/common/ns.c */
|
|
26
|
+
export declare function seq(a: number, b: number, c: number): boolean;
|
|
27
|
+
/** Append e to an EdgeList. @see lib/dotgen/fastgr.c:elistAppend */
|
|
28
|
+
export declare function treeAppend(el: EdgeList, e: Edge): void;
|
|
29
|
+
/** Swap-last-remove of e from an EdgeList. @see lib/dotgen/fastgr.c:zapinlist */
|
|
30
|
+
export declare function treeRemoveEdge(el: EdgeList, e: Edge): void;
|
|
31
|
+
/** @see lib/common/ns.c:add_tree_edge */
|
|
32
|
+
export declare function addTreeEdge(ctx: NsCtx, e: Edge): number;
|
|
33
|
+
/** @see lib/common/ns.c:invalidate_path */
|
|
34
|
+
export declare function invalidatePath(lca: Node, toNode: Node): void;
|
|
35
|
+
/** @see lib/common/ns.c:exchange_tree_edges */
|
|
36
|
+
export declare function exchangeTreeEdges(ctx: NsCtx, e: Edge, f: Edge): void;
|
|
37
|
+
//# sourceMappingURL=ns-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-core.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns-core.ts"],"names":[],"mappings":"AACA,iEAAiE;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMxD,iDAAiD;AACjD,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,KAAK,CAAC;IACT,SAAS,EAAE,IAAI,EAAE,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,sCAAsC;AACtC,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,gDAAgD;AAChD,eAAO,MAAM,MAAM,IAAI,CAAC;AAMxB,gEAAgE;AAChE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAExC;AAED,6DAA6D;AAC7D,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAA+C;AAEvF,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAA2C;AAEvF,qDAAqD;AACrD,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAA6B;AAM1F,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAA4B;AAEnF,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAK1D;AAMD,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAavD;AAUD,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,CAU5D;AAMD,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAWpE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @see lib/common/ns.c — cut values, DFS range initialization */
|
|
2
|
+
import type { Node } from '../../model/node.js';
|
|
3
|
+
import type { Edge } from '../../model/edge.js';
|
|
4
|
+
import type { NsCtx } from './ns-core.js';
|
|
5
|
+
/** @see lib/common/ns.c:x_val */
|
|
6
|
+
export declare function xVal(e: Edge, v: Node, dir: number): number;
|
|
7
|
+
/** @see lib/common/ns.c:x_cutval */
|
|
8
|
+
export declare function xCutval(f: Edge): void;
|
|
9
|
+
/** @see lib/common/ns.c:dfs_cutval */
|
|
10
|
+
export declare function dfsCutval(v: Node, par?: Edge): void;
|
|
11
|
+
/** @see lib/common/ns.c:init_cutvalues */
|
|
12
|
+
export declare function initCutvalues(ctx: NsCtx): void;
|
|
13
|
+
/** @see lib/common/ns.c:dfs_range_init */
|
|
14
|
+
export declare function dfsRangeInit(v: Node): number;
|
|
15
|
+
/** @see lib/common/ns.c:dfs_range */
|
|
16
|
+
export declare function dfsRange(v: Node, par: Edge | undefined, low: number): number;
|
|
17
|
+
//# sourceMappingURL=ns-range.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-range.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns-range.ts"],"names":[],"mappings":"AACA,kEAAkE;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AA+D1C,iCAAiC;AACjC,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,oCAAoC;AACpC,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CASrC;AAiBD,sCAAsC;AACtC,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAanD;AAMD,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAG9C;AAuBD,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAkB5C;AA+CD,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO5E"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** @see lib/common/ns.c — subtree union-find, feasible tree construction */
|
|
2
|
+
import type { Node } from '../../model/node.js';
|
|
3
|
+
import type { Edge } from '../../model/edge.js';
|
|
4
|
+
import type { NsCtx } from './ns-core.js';
|
|
5
|
+
/** @see lib/common/ns.c:subtree_t */
|
|
6
|
+
export interface Subtree {
|
|
7
|
+
rep: Node;
|
|
8
|
+
size: number;
|
|
9
|
+
heapIndex: number;
|
|
10
|
+
par?: Subtree;
|
|
11
|
+
}
|
|
12
|
+
export interface STheap {
|
|
13
|
+
elt: Subtree[];
|
|
14
|
+
size: number;
|
|
15
|
+
}
|
|
16
|
+
interface TstState {
|
|
17
|
+
v: Node;
|
|
18
|
+
inI: number;
|
|
19
|
+
outI: number;
|
|
20
|
+
rv: number;
|
|
21
|
+
}
|
|
22
|
+
interface IteState {
|
|
23
|
+
v: Node;
|
|
24
|
+
ts: Subtree;
|
|
25
|
+
from?: Node;
|
|
26
|
+
outI: number;
|
|
27
|
+
inI: number;
|
|
28
|
+
}
|
|
29
|
+
interface TstCtx {
|
|
30
|
+
ctx: NsCtx;
|
|
31
|
+
st: Subtree;
|
|
32
|
+
nodeMap: Map<Node, Subtree>;
|
|
33
|
+
todo: TstState[];
|
|
34
|
+
}
|
|
35
|
+
export declare function onHeap(st: Subtree): boolean;
|
|
36
|
+
/** @see lib/common/ns.c:STsetFind */
|
|
37
|
+
export declare function stSetFind(n: Node, nodeMap: Map<Node, Subtree>): Subtree;
|
|
38
|
+
/** @see lib/common/ns.c:STsetUnion */
|
|
39
|
+
export declare function stSetUnion(s0: Subtree, s1: Subtree): Subtree;
|
|
40
|
+
export declare function tstTryNode(tc: TstCtx, v: Node, e: Edge): number;
|
|
41
|
+
export declare function tstScanIn(tc: TstCtx): number;
|
|
42
|
+
export declare function tstScanOut(tc: TstCtx): number;
|
|
43
|
+
export declare function tstIterate(tc: TstCtx): number | undefined;
|
|
44
|
+
/** @see lib/common/ns.c:tight_subtree_search */
|
|
45
|
+
export declare function tightSubtreeSearch(ctx: NsCtx, v: Node, st: Subtree, nodeMap: Map<Node, Subtree>): number;
|
|
46
|
+
/** @see lib/common/ns.c:find_tight_subtree */
|
|
47
|
+
export declare function findTightSubtree(ctx: NsCtx, v: Node, nodeMap: Map<Node, Subtree>): Subtree | null;
|
|
48
|
+
export declare function iteOutScan(todo: IteState[], nodeMap: Map<Node, Subtree>, best: Edge | undefined): [boolean, Edge | undefined];
|
|
49
|
+
export declare function iteInScan(todo: IteState[], nodeMap: Map<Node, Subtree>, best: Edge | undefined): [boolean, Edge | undefined];
|
|
50
|
+
/** @see lib/common/ns.c:inter_tree_edge_search */
|
|
51
|
+
export declare function interTreeEdgeSearch(v: Node, nodeMap: Map<Node, Subtree>): Edge | undefined;
|
|
52
|
+
export declare function stheapSwap(heap: STheap, i: number, j: number): void;
|
|
53
|
+
export declare function stheapSmallest(heap: STheap, idx: number): number;
|
|
54
|
+
/** @see lib/common/ns.c:STheapify */
|
|
55
|
+
export declare function stheapify(heap: STheap, i: number): void;
|
|
56
|
+
/** @see lib/common/ns.c:STbuildheap */
|
|
57
|
+
export declare function stBuildHeap(elt: Subtree[], size: number): STheap;
|
|
58
|
+
/** @see lib/common/ns.c:STextractmin */
|
|
59
|
+
export declare function stExtractMin(heap: STheap): Subtree;
|
|
60
|
+
/**
|
|
61
|
+
* Add `delta` to ND_rank of every node in the tight tree reachable from `v`
|
|
62
|
+
* (the parent back-edge to `from` excluded). C's `tree_adjust` is a recursive
|
|
63
|
+
* DFS; the tight tree is acyclic, so each node is visited exactly once and the
|
|
64
|
+
* mutation (`rank += delta`) is order-independent. Ported with an explicit
|
|
65
|
+
* stack instead of recursion: deep trees (e.g. corpus 2646, a 7-deep quadtree
|
|
66
|
+
* with thousands of nodes) overflow the JS call stack where C's larger native
|
|
67
|
+
* stack does not. Outcome is identical to the recursive form.
|
|
68
|
+
* @see lib/common/ns.c:tree_adjust
|
|
69
|
+
*/
|
|
70
|
+
export declare function treeAdjust(v: Node, from: Node | undefined, delta: number): void;
|
|
71
|
+
/** @see lib/common/ns.c:merge_trees */
|
|
72
|
+
export declare function mergeTrees(ctx: NsCtx, e: Edge, nodeMap: Map<Node, Subtree>): Subtree | null;
|
|
73
|
+
export declare function buildSubtrees(ctx: NsCtx, nodeMap: Map<Node, Subtree>, tree: Subtree[]): number;
|
|
74
|
+
export declare function mergeSubtrees(ctx: NsCtx, heap: STheap, nodeMap: Map<Node, Subtree>): boolean;
|
|
75
|
+
/** @see lib/common/ns.c:feasible_tree */
|
|
76
|
+
export declare function feasibleTree(ctx: NsCtx): number;
|
|
77
|
+
export {};
|
|
78
|
+
//# sourceMappingURL=ns-subtree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns-subtree.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns-subtree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/** @see lib/common/ns.c — rank, balance, main simplex loop */
|
|
2
|
+
import type { Node } from '../../model/node.js';
|
|
3
|
+
import type { Edge } from '../../model/edge.js';
|
|
4
|
+
import type { Graph } from '../../model/graph.js';
|
|
5
|
+
import type { NsCtx } from './ns-core.js';
|
|
6
|
+
export declare function nodeRank(n: Node): number;
|
|
7
|
+
export declare function nodeLow(n: Node): number;
|
|
8
|
+
export declare function nodeLim(n: Node): number;
|
|
9
|
+
export declare function nodeType(n: Node): number;
|
|
10
|
+
export declare function nodeInSize(n: Node): number;
|
|
11
|
+
export declare function nodeOutSize(n: Node): number;
|
|
12
|
+
export declare function nodeTreeSize(n: Node): number;
|
|
13
|
+
export declare function edgeCv(e: Edge): number;
|
|
14
|
+
export declare function edgeWeight(e: Edge): number;
|
|
15
|
+
export declare function edgeMinlen(e: Edge): number;
|
|
16
|
+
export declare function initRankIn(v: Node): void;
|
|
17
|
+
export declare function initRankOut(v: Node, q: Node[]): void;
|
|
18
|
+
/** @see lib/common/ns.c:init_rank */
|
|
19
|
+
export declare function initRank(ctx: NsCtx): void;
|
|
20
|
+
/** @see lib/common/ns.c:leave_edge (wrap-around scan helper) */
|
|
21
|
+
export declare function leaveEdgeScan(ctx: NsCtx, to: number, cnt: number, rv: Edge | undefined): [Edge | undefined, number];
|
|
22
|
+
/** @see lib/common/ns.c:leave_edge */
|
|
23
|
+
export declare function leaveEdge(ctx: NsCtx): Edge | undefined;
|
|
24
|
+
/** @see lib/common/ns.c:dfs_enter_outedge (out-edge scan) */
|
|
25
|
+
export declare function dfsEnterOutScan(n: Node, low: number, lim: number, todo: Node[], best: EnterBest): void;
|
|
26
|
+
export declare function dfsEnterOutTreeIn(n: Node, todo: Node[], bestSlack: number): void;
|
|
27
|
+
/** @see lib/common/ns.c:dfs_enter_outedge */
|
|
28
|
+
export declare function dfsEnterOutedge(v: Node, low: number, lim: number): Edge | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Running best (entering edge + its slack), threaded through the search so
|
|
31
|
+
* slack is computed once per candidate edge (C maintains `Slack` as a local
|
|
32
|
+
* int rather than recomputing SLACK(Enter) on every comparison).
|
|
33
|
+
*/
|
|
34
|
+
interface EnterBest {
|
|
35
|
+
e: Edge | undefined;
|
|
36
|
+
slack: number;
|
|
37
|
+
}
|
|
38
|
+
/** @see lib/common/ns.c:dfs_enter_inedge (in-edge scan) */
|
|
39
|
+
export declare function dfsEnterInScan(n: Node, low: number, lim: number, todo: Node[], best: EnterBest): void;
|
|
40
|
+
export declare function dfsEnterInTreeOut(n: Node, todo: Node[], bestSlack: number): void;
|
|
41
|
+
/** @see lib/common/ns.c:dfs_enter_inedge */
|
|
42
|
+
export declare function dfsEnterInedge(v: Node, low: number, lim: number): Edge | undefined;
|
|
43
|
+
/** @see lib/common/ns.c:enter_edge */
|
|
44
|
+
export declare function enterEdge(e: Edge): Edge | undefined;
|
|
45
|
+
/** @see lib/common/ns.c:treeupdate */
|
|
46
|
+
export declare function treeupdate(v: Node, w: Node, cutvalue: number, dir: boolean): Node;
|
|
47
|
+
/**
|
|
48
|
+
* Iterative rerank (AD-3). C's `rerank` recurses to depth O(V) and overflows
|
|
49
|
+
* V8's ~1MB stack on deep tight trees (tests/2108); a browser stack is small
|
|
50
|
+
* and fixed, so it must be an explicit todo-stack. Each node's rank is
|
|
51
|
+
* decremented exactly once by `delta` and the writes are independent, so the
|
|
52
|
+
* LIFO visit order yields a bit-identical result to the recursive pre-order.
|
|
53
|
+
* @see lib/common/ns.c:rerank
|
|
54
|
+
*/
|
|
55
|
+
export declare function rerank(v: Node, delta: number): void;
|
|
56
|
+
export declare function updateRerank(e: Edge, delta: number): void;
|
|
57
|
+
/** @see lib/common/ns.c:update */
|
|
58
|
+
export declare function nsUpdate(ctx: NsCtx, e: Edge, f: Edge): number;
|
|
59
|
+
/** @see lib/common/ns.c:scan_and_normalize */
|
|
60
|
+
export declare function scanAndNormalize(ctx: NsCtx): number;
|
|
61
|
+
export declare function freeTreeNode(n: Node): void;
|
|
62
|
+
export declare function resetLists(ctx: NsCtx): void;
|
|
63
|
+
/** @see lib/common/ns.c:freeTreeList */
|
|
64
|
+
export declare function freeTreeList(ctx: NsCtx): void;
|
|
65
|
+
/** @see lib/common/ns.c:LR_balance */
|
|
66
|
+
export declare function lrBalance(ctx: NsCtx): void;
|
|
67
|
+
/** @see lib/common/ns.c:TB_balance (adj mode detection) */
|
|
68
|
+
export declare function tbGetAdj(g: Graph): number;
|
|
69
|
+
export declare function tbForceAdj(ctx: NsCtx, adj: number, maxrank: number): void;
|
|
70
|
+
export declare function tbSortCompare(a: Node, b: Node, adj: number): number;
|
|
71
|
+
export declare function tbSortNodes(ctx: NsCtx, nrank: number[], adj: number): Node[];
|
|
72
|
+
export declare function tbComputeBounds(n: Node, maxrank: number): [number, number, number, number];
|
|
73
|
+
export declare function tbMoveNode(n: Node, low: number, high: number, nrank: number[], adj: number): void;
|
|
74
|
+
/** @see lib/common/ns.c:TB_balance */
|
|
75
|
+
export declare function tbBalance(ctx: NsCtx): void;
|
|
76
|
+
export declare function initGraphEdge(n: Node, e: Edge): boolean;
|
|
77
|
+
/** @see lib/common/ns.c:init_graph */
|
|
78
|
+
export declare function initGraph(ctx: NsCtx, g: Graph): boolean;
|
|
79
|
+
export declare function rank2Loop(ctx: NsCtx, maxiter: number): number;
|
|
80
|
+
export declare function rank2Balance(ctx: NsCtx, balance: number): void;
|
|
81
|
+
/** @see lib/common/ns.c:rank2 */
|
|
82
|
+
export declare function rank2(g: Graph, balance: number, maxiter: number, searchSize: number): number;
|
|
83
|
+
/** @see lib/common/ns.c:rank */
|
|
84
|
+
export declare function rank(g: Graph, balance: number, maxiter: number): number;
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=ns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ns.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dot-local adapter between the dot `Graph` model and the `orthoEdges`
|
|
3
|
+
* pipeline (`src/ortho`). Mirrors neato's private `OrthoHelper`
|
|
4
|
+
* (`neato/splines.ts:247`) rather than extracting a shared helper, so the
|
|
5
|
+
* working neato path is untouched (ADR-1) — this matches C, where dotgen and
|
|
6
|
+
* neatogen each have their own call site into `ortho.c:orthoEdges`.
|
|
7
|
+
*
|
|
8
|
+
* @see lib/dotgen/dotsplines.c:dot_splines_ (EDGETYPE_ORTHO branch)
|
|
9
|
+
* @see src/layout/neato/splines.ts:OrthoHelper
|
|
10
|
+
*/
|
|
11
|
+
import type { Graph } from '../../model/graph.js';
|
|
12
|
+
import type { OrthoGraph, OrthoEdge, OrthoPoint } from '../../ortho/index.js';
|
|
13
|
+
/** Build an OrthoGraph from the dot Graph (tail≠head edges only). */
|
|
14
|
+
export declare function buildOrthoGraph(g: Graph): OrthoGraph;
|
|
15
|
+
/** Install an orthoEdges result (orthogonal point list) onto the dot Edge. */
|
|
16
|
+
export declare function installOrthoResult(oe: OrthoEdge, pts: OrthoPoint[]): void;
|
|
17
|
+
/** Run the ortho pipeline over the dot graph, installing results (no labels). */
|
|
18
|
+
export declare function dispatchOrthoEdges(g: Graph, useLbls: boolean): void;
|
|
19
|
+
//# sourceMappingURL=ortho-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ortho-adapter.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ortho-adapter.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,OAAO,KAAK,EACV,UAAU,EAAE,SAAS,EAAE,UAAU,EAClC,MAAM,sBAAsB,CAAC;AAkF9B,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAIpD;AAUD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAIzE;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAInE"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-component `pack` branch for the dot engine — the body of C's `doDot`
|
|
3
|
+
* (dotinit.c:doDot ≈437-500) for the case where `pack`/`packmode` is set and the
|
|
4
|
+
* graph has more than one connected component. Each component is laid out
|
|
5
|
+
* independently (everything in the dot pipeline except the final coordinate
|
|
6
|
+
* rotation/translation), then polyomino-packed via the shared pack module; the
|
|
7
|
+
* root graph is rotated/translated once by `gvPostprocess` afterwards.
|
|
8
|
+
*
|
|
9
|
+
* The port's pack ops run in points on `n.info.coord` (see pack/index.ts
|
|
10
|
+
* shiftOneGraph), so C's `attachPos`/`resetCoord` (which copy point coords to
|
|
11
|
+
* inches in `ND_pos` for the pack library and back) are NOT needed.
|
|
12
|
+
*
|
|
13
|
+
* Split out of index.ts per ADR-1 (keeps both files under the size/complexity
|
|
14
|
+
* caps and mirrors C's function boundaries: CLAUDE.md — the C source is the spec).
|
|
15
|
+
*
|
|
16
|
+
* @see lib/dotgen/dotinit.c:doDot
|
|
17
|
+
* @see lib/dotgen/dotinit.c:initSubg
|
|
18
|
+
* @see lib/dotgen/dotinit.c:copyClusterInfo
|
|
19
|
+
*/
|
|
20
|
+
import type { Graph } from '../../model/graph.js';
|
|
21
|
+
import type { PackInfo } from '../pack/index.js';
|
|
22
|
+
/**
|
|
23
|
+
* True when the graph has no meaningful `ratio` attribute, i.e. C's
|
|
24
|
+
* `ratio_kind == R_NONE`. The pack branch only fires for R_NONE; any other
|
|
25
|
+
* ratio (auto/compress/expand/fill or a positive numeric R_VALUE) falls back to
|
|
26
|
+
* whole-graph layout in `doDot`.
|
|
27
|
+
*
|
|
28
|
+
* Read from the `ratio` attr directly (mirroring C's setRatio) rather than from
|
|
29
|
+
* `g.info.drawing`, which the port only populates for `ratio=compress` (ADR-1):
|
|
30
|
+
* fill/expand/value/auto would otherwise leave `drawing` undefined and wrongly
|
|
31
|
+
* activate packing.
|
|
32
|
+
*
|
|
33
|
+
* @see lib/common/input.c:576 setRatio
|
|
34
|
+
*/
|
|
35
|
+
export declare function ratioIsNone(g: Graph): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Decompose `root` into "connected" components where nodes are connected by an
|
|
38
|
+
* edge OR by sharing a cluster (C's cluster-aware `cccomps`: cluster members
|
|
39
|
+
* stay in one component even with no edge between them). Each component carries
|
|
40
|
+
* a projected clone of every cluster/same-rank subgraph it owns; `origOf` maps
|
|
41
|
+
* each cluster clone back to its original root cluster (C's `mapClust`).
|
|
42
|
+
* @see lib/pack/ccomps.c:cccomps
|
|
43
|
+
*/
|
|
44
|
+
export declare function cccompsWithClusters(root: Graph): {
|
|
45
|
+
comps: Graph[];
|
|
46
|
+
origOf: Map<Graph, Graph>;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Override a component subgraph's drawing-info fields with the root's parsed
|
|
50
|
+
* values. `buildSubgraph` (shared pack module) gives each component an empty
|
|
51
|
+
* `attrs` Map, so `dotGraphInit(sg)` derives defaults rather than the root's
|
|
52
|
+
* explicit `rankdir`/`nodesep`/`ranksep` — initSubg copies them from the root so
|
|
53
|
+
* the component ranks/positions exactly as it would inside the whole graph.
|
|
54
|
+
*
|
|
55
|
+
* Ordering (per T1): run `dotGraphInit(sg)` first, then initSubg to override.
|
|
56
|
+
* `GD_drawing` quantum/dpi are only material for `ratio=compress`, which never
|
|
57
|
+
* reaches the pack branch (ratioIsNone excludes it), so `drawing` is not copied.
|
|
58
|
+
*
|
|
59
|
+
* @see lib/dotgen/dotinit.c:initSubg
|
|
60
|
+
*/
|
|
61
|
+
export declare function initSubg(sg: Graph, root: Graph): void;
|
|
62
|
+
/**
|
|
63
|
+
* Lay out one connected component fully (rank → mincross → position →
|
|
64
|
+
* splines), but WITHOUT the final `gvPostprocess` rotation/translation: in C
|
|
65
|
+
* the per-component `dotLayout` does not call `dotneato_postprocess`; that runs
|
|
66
|
+
* once on the root after packing (`dot_layout`). Running it per component would
|
|
67
|
+
* rotate each component by rankdir and then the root pass would double-rotate.
|
|
68
|
+
*
|
|
69
|
+
* `dotPhaseInit(sg)` runs first (sets sg.info defaults from the empty attr map);
|
|
70
|
+
* `initSubg(sg, root)` then overrides the inheritance-sensitive fields before
|
|
71
|
+
* ranking reads them. Node sizing in `dotPhaseInit` reads `sg.root.info.flip`
|
|
72
|
+
* (the real root), so it is correct regardless of this ordering.
|
|
73
|
+
*
|
|
74
|
+
* @see lib/dotgen/dotinit.c:dotLayout (static)
|
|
75
|
+
*/
|
|
76
|
+
export declare function dotLayoutComponent(sg: Graph, root: Graph): void;
|
|
77
|
+
/**
|
|
78
|
+
* Copy the cluster tree and per-cluster drawing-info from each laid-out
|
|
79
|
+
* component back to the root, so the root's `gvPostprocess` rotates the cluster
|
|
80
|
+
* bounding boxes and the renderer (which reads `GD_clust(root)`) draws them at
|
|
81
|
+
* their packed positions.
|
|
82
|
+
*
|
|
83
|
+
* @see lib/dotgen/dotinit.c:copyClusterInfo
|
|
84
|
+
*/
|
|
85
|
+
export declare function copyClusterInfo(comps: Graph[], root: Graph, origOf: Map<Graph, Graph>): void;
|
|
86
|
+
/**
|
|
87
|
+
* Lay out each component independently, polyomino-pack them, carry cluster info
|
|
88
|
+
* back to the root, and run the single root-level `gvPostprocess`.
|
|
89
|
+
*
|
|
90
|
+
* The root must carry its own drawing-info (rankdir/nodesep/ranksep/label) for
|
|
91
|
+
* `initSubg` to read and for `gvPostprocess` to rotate by: in C the root's
|
|
92
|
+
* `graph_init` ran before `doDot`; the port has no separate pre-layout
|
|
93
|
+
* graph_init, so `dotGraphInit(root)` is run here once. The root bbox is set by
|
|
94
|
+
* `packSubgraphs` (→ computeSubgraphBB); the root is never re-ranked.
|
|
95
|
+
*
|
|
96
|
+
* @see lib/dotgen/dotinit.c:doDot
|
|
97
|
+
* @see lib/dotgen/dotinit.c:dot_layout (dotneato_postprocess on root)
|
|
98
|
+
*/
|
|
99
|
+
export declare function layoutAndPack(root: Graph, comps: Graph[], pinfo: PackInfo, origOf: Map<Graph, Graph>): void;
|
|
100
|
+
//# sourceMappingURL=pack-components.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-components.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/pack-components.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAsBjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAK7C;AAwED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG;IAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;CAAE,CA4B9F;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAMrD;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CA6B/D;AAwCD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAgB5F;AAoFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GACtE,IAAI,CAoBN"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auxiliary edge construction and removal for the dot position phase.
|
|
3
|
+
* @see lib/dotgen/position.c
|
|
4
|
+
*/
|
|
5
|
+
import type { Graph } from '../../model/graph.js';
|
|
6
|
+
import type { Node } from '../../model/node.js';
|
|
7
|
+
import type { Edge } from '../../model/edge.js';
|
|
8
|
+
/** @see lib/common/const.h:CL_OFFSET */
|
|
9
|
+
export declare const CL_OFFSET = 8;
|
|
10
|
+
/**
|
|
11
|
+
* Cluster margin = `late_int(g, G_margin, CL_OFFSET, 0)`. The `margin` attribute
|
|
12
|
+
* is resolved up the subgraph chain (matching `agxget` inheritance), so a
|
|
13
|
+
* cluster with no own `margin` inherits an ancestor's; absent everywhere it
|
|
14
|
+
* falls back to `CL_OFFSET`, and negatives clamp to 0. Used for both the
|
|
15
|
+
* x-coordinate (`make_lrvn`/`make_lrconstraints`/separate clusters) and the
|
|
16
|
+
* rank/y-coordinate (`set_ycoords`) cluster spacing.
|
|
17
|
+
* @see lib/dotgen/position.c:397,436,460,642
|
|
18
|
+
*/
|
|
19
|
+
export declare function clusterMarginOf(g: Graph): number;
|
|
20
|
+
/** @see lib/common/const.h:BOTTOM_IX */
|
|
21
|
+
export declare const BOTTOM_IX = 0;
|
|
22
|
+
/** @see lib/common/const.h:RIGHT_IX */
|
|
23
|
+
export declare const RIGHT_IX = 1;
|
|
24
|
+
/** @see lib/common/const.h:TOP_IX */
|
|
25
|
+
export declare const TOP_IX = 2;
|
|
26
|
+
/** @see lib/common/const.h:LEFT_IX */
|
|
27
|
+
export declare const LEFT_IX = 3;
|
|
28
|
+
/** @internal */
|
|
29
|
+
export declare function nodeRw(n: Node): number;
|
|
30
|
+
/** @internal */
|
|
31
|
+
export declare function nodeLw(n: Node): number;
|
|
32
|
+
/** @internal */
|
|
33
|
+
export declare function nodeOrder(n: Node): number;
|
|
34
|
+
/** @internal */
|
|
35
|
+
export declare function nodeRank(n: Node): number;
|
|
36
|
+
/** @internal */
|
|
37
|
+
export declare function nodeUfSize(n: Node): number;
|
|
38
|
+
/** @internal */
|
|
39
|
+
export declare function edgeMinlen(e: Edge): number;
|
|
40
|
+
/** @internal */
|
|
41
|
+
export declare function edgeWeight(e: Edge): number;
|
|
42
|
+
/** @internal */
|
|
43
|
+
export declare function edgeDist(e: Edge): number;
|
|
44
|
+
/** @internal */
|
|
45
|
+
export declare function graphNodesep(g: Graph): number;
|
|
46
|
+
/** @internal */
|
|
47
|
+
export declare function graphMinrank(g: Graph): number;
|
|
48
|
+
/** @internal */
|
|
49
|
+
export declare function graphMaxrank(g: Graph): number;
|
|
50
|
+
/** @internal */
|
|
51
|
+
export declare function graphNclust(g: Graph): number;
|
|
52
|
+
/** @internal */
|
|
53
|
+
export declare function graphHt1(g: Graph): number;
|
|
54
|
+
/** @internal */
|
|
55
|
+
export declare function graphHt2(g: Graph): number;
|
|
56
|
+
/** @internal */
|
|
57
|
+
export declare function graphRanksep(g: Graph): number;
|
|
58
|
+
/** @see lib/dotgen/position.c:make_aux_edge */
|
|
59
|
+
export declare function makeAuxEdge(u: Node, v: Node, len: number, wt: number): Edge;
|
|
60
|
+
/** @see lib/dotgen/position.c:allocate_aux_edges */
|
|
61
|
+
export declare function allocateAuxEdges(g: Graph): void;
|
|
62
|
+
/** LR node separation for a rank (accounts for edge labels).
|
|
63
|
+
* C uses smaller separation (5) on odd ranks when the graph has edge labels
|
|
64
|
+
* (real nodes sit on even ranks 0,2,4…). `abomination` inserts a flat-label
|
|
65
|
+
* rank at -1 in C, but this 0-based port shifts every rank up by 1 instead
|
|
66
|
+
* (AD-2), inverting the parity; `abomShift` undoes that so the parity matches C.
|
|
67
|
+
*
|
|
68
|
+
* The EDGE_LABEL gate reads `g.root`, not `g`: C is `GD_has_labels(g->root)`.
|
|
69
|
+
* Under `pack` the layout graph is a component whose own has_labels is 0 (C
|
|
70
|
+
* scopes only `edgelabel_ranks`, rank.c:170, to the layout graph) while the true
|
|
71
|
+
* root carries the flag — so reading `g` here silently used the full nodesep on
|
|
72
|
+
* odd ranks instead of C's `sep[1] = 5`, widening every packed component that
|
|
73
|
+
* contains an edge label.
|
|
74
|
+
* @see lib/dotgen/position.c:make_LR_constraints (GD_has_labels(g->root)) */
|
|
75
|
+
export declare function lrSep(g: Graph, rankIdx: number): number;
|
|
76
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (single flat-edge constraint) */
|
|
77
|
+
export declare function processFlatEdge(g: Graph, u: Node, e: Edge): void;
|
|
78
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (flat-edge endpoint loop) */
|
|
79
|
+
export declare function makeFlatEdgeConstraints(g: Graph, u: Node): void;
|
|
80
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (flat-label constraint body) */
|
|
81
|
+
export declare function applyFlatLabel(g: Graph, e: Edge, e0raw: Edge, e1raw: Edge): void;
|
|
82
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (flat-label constraints via ND_alg) */
|
|
83
|
+
export declare function makeFlatLabelConstraints(g: Graph, u: Node): void;
|
|
84
|
+
/** @see lib/dotgen/position.c:go */
|
|
85
|
+
export declare function go(u: Node, v: Node): boolean;
|
|
86
|
+
/** @see lib/dotgen/position.c:canreach */
|
|
87
|
+
export declare function canReach(u: Node, v: Node): boolean;
|
|
88
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (self-edge width accumulation) */
|
|
89
|
+
export declare function selfWidth(u: Node): number;
|
|
90
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (per-rank inner loop, one node pair) */
|
|
91
|
+
export declare function lrRankPair(g: Graph, r: number, u: Node, v: Node, last: number): number;
|
|
92
|
+
/** @see lib/dotgen/position.c:make_LR_constraints (per-rank inner loop) */
|
|
93
|
+
export declare function makeLrRankConstraints(g: Graph, r: number): void;
|
|
94
|
+
/** @see lib/dotgen/position.c:make_LR_constraints */
|
|
95
|
+
export declare function makeLrConstraints(g: Graph): void;
|
|
96
|
+
/** @see lib/dotgen/position.c:make_edge_pairs (per-edge) */
|
|
97
|
+
export declare function addEdgePair(g: Graph, e: Edge): void;
|
|
98
|
+
/** @see lib/dotgen/position.c:make_edge_pairs */
|
|
99
|
+
export declare function makeEdgePairs(g: Graph): void;
|
|
100
|
+
/** Create a SLACKNODE virtual node and prepend to nlist. */
|
|
101
|
+
export declare function makeSlackNode(g: Graph): Node;
|
|
102
|
+
/** @see lib/dotgen/position.c:create_aux_edges */
|
|
103
|
+
export declare function createAuxEdges(g: Graph, posClusters: (g: Graph) => void, compressGraph: (g: Graph) => void): void;
|
|
104
|
+
/** @see lib/dotgen/position.c:remove_aux_edges (SLACKNODE removal loop) */
|
|
105
|
+
export declare function removeSlackNodes(g: Graph): void;
|
|
106
|
+
/** @see lib/dotgen/position.c:remove_aux_edges (per-node cleanup) */
|
|
107
|
+
export declare function removeAuxEdgesNode(n: Node): void;
|
|
108
|
+
/** @see lib/dotgen/position.c:remove_aux_edges */
|
|
109
|
+
export declare function removeAuxEdges(g: Graph): void;
|
|
110
|
+
//# sourceMappingURL=position-aux.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"position-aux.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/position-aux.ts"],"names":[],"mappings":"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"}
|