@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,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spline routing helpers: rank-corridor construction, Bezier clipping,
|
|
3
|
+
* and the two routing strategies (rank-aware and simple fallback).
|
|
4
|
+
*
|
|
5
|
+
* @see lib/dotgen/dotsplines.c:make_regular_edge
|
|
6
|
+
* @see lib/common/routespl.c:routesplines_
|
|
7
|
+
* @see lib/common/splines.c:clip_and_install
|
|
8
|
+
*/
|
|
9
|
+
import type { Point } from '../../model/geom.js';
|
|
10
|
+
import type { NodeBox } from './edge-route-geom.js';
|
|
11
|
+
import { makeTailBox } from './edge-route-boxes.js';
|
|
12
|
+
/** Result of computing a straight-line edge spline. */
|
|
13
|
+
export interface EdgeSplineResult {
|
|
14
|
+
bezierPts: Point[];
|
|
15
|
+
arrowTip: Point;
|
|
16
|
+
arrowDir: Point;
|
|
17
|
+
}
|
|
18
|
+
/** Rank geometry needed to route an edge between two adjacent ranks. */
|
|
19
|
+
export interface RankEdgeInfo {
|
|
20
|
+
leftBound: number;
|
|
21
|
+
rightBound: number;
|
|
22
|
+
tailHt1: number;
|
|
23
|
+
tailHt2: number;
|
|
24
|
+
headHt1: number;
|
|
25
|
+
headHt2: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Build the three-box corridor (tail, rank-gap, head) and start/end points.
|
|
29
|
+
* @see lib/dotgen/dotsplines.c:make_regular_edge (box assembly section)
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Resolved edge-port routing data, attached to the active router when an edge
|
|
33
|
+
* declares a tail/head port. A `null` end falls back to the node-center clip;
|
|
34
|
+
* a present point pins the spline to `node.coord + port.p`. `clip{Tail,Head}`
|
|
35
|
+
* mirror `port.clip` — false means the port point is exact and the node-boundary
|
|
36
|
+
* clip is skipped. @see lib/common/splines.c:beginpath (port offset + clip flag)
|
|
37
|
+
*/
|
|
38
|
+
export interface PortRoute {
|
|
39
|
+
tailP: Point | null;
|
|
40
|
+
headP: Point | null;
|
|
41
|
+
clipTail: boolean;
|
|
42
|
+
clipHead: boolean;
|
|
43
|
+
}
|
|
44
|
+
/** Whether to clip the spline to the tail/head node boundary. */
|
|
45
|
+
export interface ClipFlags {
|
|
46
|
+
tail: boolean;
|
|
47
|
+
head: boolean;
|
|
48
|
+
}
|
|
49
|
+
export declare function buildRankCorridor(tailBox: NodeBox, headBox: NodeBox, rank: RankEdgeInfo, ports?: {
|
|
50
|
+
tailP: Point | null;
|
|
51
|
+
headP: Point | null;
|
|
52
|
+
}): {
|
|
53
|
+
startPt: Point;
|
|
54
|
+
endPt: Point;
|
|
55
|
+
boxes: ReturnType<typeof makeTailBox>[];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Clip a routed Bezier to both node boundaries and extract arrow geometry.
|
|
59
|
+
* @see lib/common/splines.c:bezier_clip
|
|
60
|
+
*/
|
|
61
|
+
/**
|
|
62
|
+
* Arrow length for "normal" arrowhead (matching C's arrow_length_normal).
|
|
63
|
+
*
|
|
64
|
+
* Derived from miter_shape geometry for the normal (triangular) arrowhead:
|
|
65
|
+
* arrowwidth = 0.35, half-angle theta/2 = arctan(arrowwidth)
|
|
66
|
+
* miter_length l = penwidth/2 / tan(theta/2) = penwidth / (2*arrowwidth)
|
|
67
|
+
* delta_tip.x = -penwidth * sqrt(1 + arrowwidth^2) / (2*arrowwidth)
|
|
68
|
+
* full_length = ARROW_LENGTH - delta_tip.x + penwidth/2
|
|
69
|
+
* overlap = penwidth/2
|
|
70
|
+
* elen = full_length - overlap = ARROW_LENGTH + penwidth*sqrt(1+arrowwidth^2)/(2*arrowwidth)
|
|
71
|
+
*
|
|
72
|
+
* @see lib/common/arrows.c:arrow_length_normal
|
|
73
|
+
* @see lib/common/arrows.c:miter_shape
|
|
74
|
+
* @see lib/common/arrows.c:arrow_type_normal0
|
|
75
|
+
*/
|
|
76
|
+
export declare function normalArrowLen(penwidth?: number): number;
|
|
77
|
+
/**
|
|
78
|
+
* Clip a routed Bezier to both node boundaries, then apply arrowEndClip
|
|
79
|
+
* to trim the path to the arrowhead BASE (not the node boundary).
|
|
80
|
+
* @see lib/common/splines.c:clip_and_install
|
|
81
|
+
* @see lib/common/arrows.c:arrowEndClip
|
|
82
|
+
*/
|
|
83
|
+
export declare function nodeInsideFn(box: NodeBox): (lx: number, ly: number) => boolean;
|
|
84
|
+
export declare function clipToNodes(bezier: Point[], tailBox: NodeBox, headBox: NodeBox, penwidth?: number, clip?: ClipFlags): {
|
|
85
|
+
clipped: Point[];
|
|
86
|
+
arrowTip: Point;
|
|
87
|
+
arrowDir: Point;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* Route edge through the rank-gap corridor using polygon-based spline fitting.
|
|
91
|
+
* @see lib/common/routespl.c:routesplines_
|
|
92
|
+
*/
|
|
93
|
+
export declare function routeWithRank(tailBox: NodeBox, headBox: NodeBox, rank: RankEdgeInfo, penwidth?: number, port?: PortRoute): EdgeSplineResult;
|
|
94
|
+
/**
|
|
95
|
+
* Boundary-clip fallback when no rank geometry is available.
|
|
96
|
+
* @see lib/dotgen/dotsplines.c:make_regular_edge (straight-line fallback)
|
|
97
|
+
*/
|
|
98
|
+
export declare function routeSimple(tailBox: NodeBox, headBox: NodeBox, routeBezierFn: (from: Point, to: Point) => Point[]): EdgeSplineResult;
|
|
99
|
+
//# sourceMappingURL=edge-route-routing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-route-routing.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/edge-route-routing.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAIjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EACL,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAM/B,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,EAAE,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD;;;GAGG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAID,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,KAAK,CAAC,EAAE;IAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAAE,GACnD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,EAAE,CAAA;CAAE,CAe3E;AAOD;;;GAGG;AACH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,QAAQ,SAAuB,GAAG,MAAM,CAGtE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,OAAO,GACX,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAOrC;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,EAAE,EACf,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAuB,EAC/B,IAAI,GAAE,SAAqB,GAC1B;IAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CAexD;AAOD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,YAAY,EAClB,QAAQ,SAAuB,EAC/B,IAAI,CAAC,EAAE,SAAS,GACf,gBAAgB,CASlB;AAOD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,EAAE,GACjD,gBAAgB,CAalB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Edge spline routing orchestration for dot layout.
|
|
3
|
+
*
|
|
4
|
+
* Top-level entry point. Wires together the sub-modules (geom, clip,
|
|
5
|
+
* poly, boxes, routing, rank, helpers, chain) to compute and install
|
|
6
|
+
* Bezier splines and arrowhead polygons on every edge in the graph.
|
|
7
|
+
*
|
|
8
|
+
* @see lib/dotgen/dotsplines.c:make_regular_edge
|
|
9
|
+
* @see lib/common/splines.c:clip_and_install
|
|
10
|
+
* @see lib/common/routespl.c:routesplines_
|
|
11
|
+
* @see lib/common/arrows.c:arrow_type_normal
|
|
12
|
+
*/
|
|
13
|
+
import type { Graph } from '../../model/graph.js';
|
|
14
|
+
import type { Edge as GraphEdge } from '../../model/edge.js';
|
|
15
|
+
import type { Point } from '../../model/geom.js';
|
|
16
|
+
import type { NodeBox } from './edge-route-geom.js';
|
|
17
|
+
export { normalizeVec, negateVec, offsetPoint, clipToNodeBox } from './edge-route-geom.js';
|
|
18
|
+
export type { NodeBox } from './edge-route-geom.js';
|
|
19
|
+
export { xClipT, yClipT } from './edge-route-geom.js';
|
|
20
|
+
export { bezierClipNode, makeBoxInsideFn, bezierSubdivide, tailArrowEndClip, } from './edge-route-clip.js';
|
|
21
|
+
export { boxesToPolygon, addForwardPolyPts, addReversePolyPts, polyEdgesFromPts, computeSpline, } from './edge-route-poly.js';
|
|
22
|
+
export { makeTailBox, makeHeadBox, makeMaximalBbox, makeRankBox } from './edge-route-boxes.js';
|
|
23
|
+
export type { RankBoxParams } from './edge-route-boxes.js';
|
|
24
|
+
export { buildRankCorridor, clipToNodes, routeWithRank, routeSimple, normalArrowLen, } from './edge-route-routing.js';
|
|
25
|
+
export type { EdgeSplineResult, RankEdgeInfo } from './edge-route-routing.js';
|
|
26
|
+
export { computeLeftBound, computeRightBound, rankHt, rankEdgeInfoOf, getSplineBounds, resetSplineBounds, } from './edge-route-rank.js';
|
|
27
|
+
export type { SplineBoundsSnapshot } from './edge-route-rank.js';
|
|
28
|
+
export { ARROW_LENGTH, ARROW_WIDTH_FACTOR, arrowheadPolygon } from './edge-route-arrow.js';
|
|
29
|
+
export { nodeBoxOf, edgeRenderPenwidth, edgePenwidthAttr, makeBezierRecord, makeSplineRecord, installEdgeSpline, routeBezier, straightEdgeSplineWithRank, } from './edge-route-helpers.js';
|
|
30
|
+
export { routeBackEdge, } from './edge-route-chain.js';
|
|
31
|
+
/** Straight-line cubic Bezier at 1/3 and 2/3. @see lib/dotgen/dotsplines.c */
|
|
32
|
+
export declare function buildLinearBezier(p0: Point, p3: Point): Point[];
|
|
33
|
+
/** Compute normalized tail→head direction between two node boxes. */
|
|
34
|
+
export declare function edgeDirection(tailBox: NodeBox, headBox: NodeBox): Point;
|
|
35
|
+
/** True when both endpoints have defined coordinates. */
|
|
36
|
+
export declare function coordsDefined(e: GraphEdge): boolean;
|
|
37
|
+
/** True when both endpoints sit at the origin (un-initialised). */
|
|
38
|
+
export declare function bothAtOrigin(e: GraphEdge): boolean;
|
|
39
|
+
/** True when the edge's endpoints have usable coordinates. */
|
|
40
|
+
export declare function hasValidCoords(e: GraphEdge): boolean;
|
|
41
|
+
/** Route and install spline + arrowhead(s) for a single edge. */
|
|
42
|
+
export declare function routeOneEdge(e: GraphEdge, g: Graph): void;
|
|
43
|
+
/**
|
|
44
|
+
* Compute and install edge splines for all unrouted edges in g.
|
|
45
|
+
* @see lib/dotgen/dotsplines.c:dot_splines_
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* Route one not-yet-routed edge, applying the `dot_splines_` skip guards. No-op
|
|
49
|
+
* if the edge is already routed or ineligible (FLATORDER/IGNORED, self-loop, or
|
|
50
|
+
* lacking valid coords). Used both by the unified `dotSplines_` loop — which
|
|
51
|
+
* routes lone edges at their `edgecmp` position, interleaved with groups, as C
|
|
52
|
+
* does — and by the `routeDotEdges` backstop sweep below.
|
|
53
|
+
* @see lib/dotgen/dotsplines.c:dot_splines_ (per-edge dispatch + 295 skip)
|
|
54
|
+
*/
|
|
55
|
+
export declare function routeLoneEdge(e: GraphEdge, g: Graph): void;
|
|
56
|
+
export declare function routeDotEdges(g: Graph): void;
|
|
57
|
+
//# sourceMappingURL=edge-route.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"edge-route.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/edge-route.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AA4CpD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC3F,YAAY,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,GACnE,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EACpD,gBAAgB,EAAE,aAAa,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/F,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAC1D,cAAc,GACf,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAC3D,eAAe,EAAE,iBAAiB,GACnC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG3F,OAAO,EACL,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAC/C,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EACrD,WAAW,EAAE,0BAA0B,GACxC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,GACd,MAAM,uBAAuB,CAAC;AAM/B,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,KAAK,EAAE,CAE/D;AAMD,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK,CAKvE;AAMD,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEnD;AAED,mEAAmE;AACnE,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAIlD;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAEpD;AAmHD,iEAAiE;AACjE,wBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAmBzD;AAkLD;;;GAGG;AACH;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAuB1D;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAE5C"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript port of lib/dotgen/fastgr.c.
|
|
3
|
+
*
|
|
4
|
+
* Maintains the "fast graph" — compact mutation-friendly adjacency lists
|
|
5
|
+
* layered on top of the cgraph model, used during cycle-breaking and
|
|
6
|
+
* virtual-node construction.
|
|
7
|
+
*
|
|
8
|
+
* @see lib/dotgen/fastgr.c
|
|
9
|
+
*/
|
|
10
|
+
import type { Node } from '../../model/node.js';
|
|
11
|
+
import type { Edge } from '../../model/edge.js';
|
|
12
|
+
import type { Port } from '../../model/geom.js';
|
|
13
|
+
import type { EdgeList } from '../../model/nodeInfo.js';
|
|
14
|
+
import type { Graph } from '../../model/graph.js';
|
|
15
|
+
/** Virtual edge type. @see lib/common/types.h */
|
|
16
|
+
export declare const VIRTUAL = 1;
|
|
17
|
+
/** Normal edge type. @see lib/common/types.h */
|
|
18
|
+
export declare const NORMAL = 0;
|
|
19
|
+
/** Flat ordering constraint edge type. @see lib/common/const.h */
|
|
20
|
+
export declare const FLATORDER = 4;
|
|
21
|
+
/** Reversed flat edge type. @see lib/common/const.h */
|
|
22
|
+
export declare const REVERSED = 3;
|
|
23
|
+
/** Scale factor for median computation. @see lib/dotgen/mincross.c:MC_SCALE */
|
|
24
|
+
export declare const MC_SCALE = 256;
|
|
25
|
+
/**
|
|
26
|
+
* Return el if defined, otherwise a fresh empty EdgeList.
|
|
27
|
+
* @see lib/dotgen/fastgr.c (implicit in elist operations)
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureList(el: EdgeList | undefined): EdgeList;
|
|
30
|
+
/**
|
|
31
|
+
* Append edge `e` to list — `L.list[L.size++] = e`.
|
|
32
|
+
* @see lib/dotgen/fastgr.c:elistAppend
|
|
33
|
+
*/
|
|
34
|
+
export declare function elistAppend(el: EdgeList, e: Edge): void;
|
|
35
|
+
/**
|
|
36
|
+
* Swap-last-remove of edge `e` from `el`.
|
|
37
|
+
* Uses while+&& to scan, then a single conditional swap.
|
|
38
|
+
* @see lib/dotgen/fastgr.c:zapinlist
|
|
39
|
+
*/
|
|
40
|
+
export declare function zapinlist(el: EdgeList, e: Edge): void;
|
|
41
|
+
/**
|
|
42
|
+
* Remove `e` from the fast graph (tail.out and head.in).
|
|
43
|
+
* @see lib/dotgen/fastgr.c:deleteFastEdge
|
|
44
|
+
*/
|
|
45
|
+
export declare function deleteFastEdge(e: Edge): void;
|
|
46
|
+
/**
|
|
47
|
+
* Add `e` to the fast graph (tail.out and head.in).
|
|
48
|
+
* @see lib/dotgen/fastgr.c:fastEdge
|
|
49
|
+
*/
|
|
50
|
+
export declare function fastEdge(e: Edge): void;
|
|
51
|
+
/**
|
|
52
|
+
* Search for an existing fast edge from `u` to `v`.
|
|
53
|
+
* Inlines the static `ffe` helper from C: searches the smaller list.
|
|
54
|
+
* @see lib/dotgen/fastgr.c:findFastEdge
|
|
55
|
+
* @see lib/dotgen/fastgr.c:ffe
|
|
56
|
+
*/
|
|
57
|
+
export declare function findFastEdge(u: Node, v: Node): Edge | undefined;
|
|
58
|
+
export declare function copyPort(p: Port): Port;
|
|
59
|
+
/**
|
|
60
|
+
* Port copy is direction-aware: a reversed virtual edge takes the
|
|
61
|
+
* orig's opposite-end port.
|
|
62
|
+
* @see lib/dotgen/fastgr.c:new_virtual_edge
|
|
63
|
+
*/
|
|
64
|
+
export declare function copyVirtualPorts(e: Edge, orig: Edge): void;
|
|
65
|
+
/** Copy weights, ports, and labels from orig; link to_virt/to_orig. */
|
|
66
|
+
export declare function copyVirtualEdgeInfo(e: Edge, orig: Edge): void;
|
|
67
|
+
/**
|
|
68
|
+
* Allocate a virtual edge from `u` to `v`, copying port/label info from `orig`.
|
|
69
|
+
* `orig` may be null when called from do_ordering_node (C passes NULL there).
|
|
70
|
+
* @see lib/dotgen/fastgr.c:new_virtual_edge
|
|
71
|
+
*/
|
|
72
|
+
export declare function newVirtualEdge(u: Node, v: Node, orig: Edge | null): Edge;
|
|
73
|
+
/**
|
|
74
|
+
* Create a virtual edge and register it in the fast graph.
|
|
75
|
+
* @see lib/dotgen/fastgr.c:virtualEdge
|
|
76
|
+
*/
|
|
77
|
+
export declare function virtualEdge(u: Node, v: Node, orig: Edge): Edge;
|
|
78
|
+
export declare function mergeWeightsInto(f: Edge, ew: number, em: number, ex: number): void;
|
|
79
|
+
export declare function basicMerge(e: Edge, rep: Edge): void;
|
|
80
|
+
/**
|
|
81
|
+
* Merge edge `e` into representative `rep`, accumulating weights.
|
|
82
|
+
* @see lib/dotgen/fastgr.c:mergeOneway
|
|
83
|
+
*/
|
|
84
|
+
export declare function mergeOneway(e: Edge, rep: Edge): void;
|
|
85
|
+
/**
|
|
86
|
+
* Remove `e` from the flat graph (tail.flat_out and head.flat_in).
|
|
87
|
+
* Also clears `e.info.to_virt` back-reference.
|
|
88
|
+
* @see lib/dotgen/fastgr.c:delete_flat_edge
|
|
89
|
+
*/
|
|
90
|
+
export declare function deleteFlatEdge(e: Edge): void;
|
|
91
|
+
/**
|
|
92
|
+
* Add `e` to the flat graph (tail.flat_out and head.flat_in) and mark the
|
|
93
|
+
* graph as having flat edges.
|
|
94
|
+
* @see lib/dotgen/fastgr.c:flat_edge
|
|
95
|
+
*/
|
|
96
|
+
export declare function flatEdge(g: import('../../model/graph.js').Graph, e: Edge): void;
|
|
97
|
+
/**
|
|
98
|
+
* Search for an existing flat edge from `u` to `v`.
|
|
99
|
+
* @see lib/dotgen/fastgr.c:find_flat_edge
|
|
100
|
+
*/
|
|
101
|
+
export declare function findFlatEdge(u: import('../../model/node.js').Node, v: import('../../model/node.js').Node): Edge | undefined;
|
|
102
|
+
/**
|
|
103
|
+
* Reverse edge `e`: remove from fast graph, then merge into or create a
|
|
104
|
+
* reverse virtual edge. Sets `e.info.reversed` for dot_splines orientation.
|
|
105
|
+
* @see lib/dotgen/acyclic.c:reverse_edge
|
|
106
|
+
*/
|
|
107
|
+
export declare function reverseEdge(e: Edge): void;
|
|
108
|
+
/**
|
|
109
|
+
* Add node `n` to graph `g`'s fast-graph linked list (nlist).
|
|
110
|
+
* @see lib/dotgen/fastgr.c:fast_node
|
|
111
|
+
*/
|
|
112
|
+
export declare function fastNode(g: Graph, n: Node): void;
|
|
113
|
+
/**
|
|
114
|
+
* Remove node `n` from graph `g`'s fast-graph linked list.
|
|
115
|
+
* @see lib/dotgen/fastgr.c:delete_fast_node
|
|
116
|
+
*/
|
|
117
|
+
export declare function deleteFastNode(g: Graph, n: Node): void;
|
|
118
|
+
/**
|
|
119
|
+
* Remove node `n` from its rank's ordered node list `v[]`, shifting later
|
|
120
|
+
* entries down one and decrementing the rank's count. The structural inverse
|
|
121
|
+
* of install_in_rank / placeInRankSlot.
|
|
122
|
+
*
|
|
123
|
+
* Faithful to the C: the scan starts at index 0 (not vStart). For the common
|
|
124
|
+
* single-component case vStart is 0/undefined, matching C's index-from-0 scan.
|
|
125
|
+
* @see lib/dotgen/dotinit.c:remove_from_rank
|
|
126
|
+
*/
|
|
127
|
+
export declare function removeFromRank(g: Graph, n: Node): void;
|
|
128
|
+
/**
|
|
129
|
+
* Allocate a virtual (VIRTUAL node_type) node, add it to `g`'s fast graph
|
|
130
|
+
* with pre-allocated in/out edge lists of capacity 4.
|
|
131
|
+
*
|
|
132
|
+
* `n.root` is bound to `g.root` (agroot(g)), NOT `g` itself, mirroring the
|
|
133
|
+
* cgraph invariant every node's root points to the absolute top graph, never
|
|
134
|
+
* an enclosing cluster subgraph — even when `g` here is a cluster. C:
|
|
135
|
+
* `n->root = agroot(g);` (fastgr.c:204). Binding root to the cluster instead
|
|
136
|
+
* left cluster-owned virtual (label) nodes without a populated info.flip
|
|
137
|
+
* (clusters never run initSubgraphRankdir), corrupting flip-dependent reads
|
|
138
|
+
* such as placeVnlabel's labelXPos (splines-label.ts).
|
|
139
|
+
* @see lib/dotgen/fastgr.c:virtual_node
|
|
140
|
+
*/
|
|
141
|
+
export declare function virtualNode(g: Graph): Node;
|
|
142
|
+
/**
|
|
143
|
+
* Append edge `e` to the `other` list of its tail node.
|
|
144
|
+
* @see lib/dotgen/fastgr.c:other_edge
|
|
145
|
+
*/
|
|
146
|
+
export declare function otherEdge(e: Edge): void;
|
|
147
|
+
//# sourceMappingURL=fastgr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fastgr.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/fastgr.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAMlD,iDAAiD;AACjD,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,gDAAgD;AAChD,eAAO,MAAM,MAAM,IAAI,CAAC;AAExB,kEAAkE;AAClE,eAAO,MAAM,SAAS,IAAI,CAAC;AAE3B,uDAAuD;AACvD,eAAO,MAAM,QAAQ,IAAI,CAAC;AAE1B,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,MAAM,CAAC;AAM5B;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAG7D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAKrD;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAG5C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAKtC;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAc/D;AAMD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGtC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAK1D;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAiB7D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAYxE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAI9D;AAMD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAKlF;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAOnD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAIpD;AAMD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,sBAAsB,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAM/E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,qBAAqB,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,qBAAqB,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAc3H;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CASzC;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAKhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAItD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAetD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAa1C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAGvC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe field accessors for flat.ts.
|
|
3
|
+
*
|
|
4
|
+
* Kept in a separate file because lizard 1.22.1 mis-parses TypeScript when
|
|
5
|
+
* many function definitions accumulate in one file, inflating CCN counts for
|
|
6
|
+
* unrelated functions. Splitting accessors here avoids the parse bug.
|
|
7
|
+
*
|
|
8
|
+
* @see lib/dotgen/flat.c
|
|
9
|
+
*/
|
|
10
|
+
import type { Graph } from '../../model/graph.js';
|
|
11
|
+
import type { Node } from '../../model/node.js';
|
|
12
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
13
|
+
export declare function nodeOrder(n: Node): number;
|
|
14
|
+
export declare function nodeRank(n: Node): number;
|
|
15
|
+
export declare function graphNodesep(g: Graph): number;
|
|
16
|
+
export declare function graphMaxrank(g: Graph): number;
|
|
17
|
+
export declare function graphMinrank(g: Graph): number;
|
|
18
|
+
export declare function graphNCluster(g: Graph): number;
|
|
19
|
+
/** Read order field of rank slot i safely. */
|
|
20
|
+
export declare function getOrd(rk: RankEntry, i: number): number;
|
|
21
|
+
//# sourceMappingURL=flat-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-utils.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/flat-utils.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,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAGzC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAGxC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAG7C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAG7C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAG7C;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAG9C;AAED,8CAA8C;AAC9C,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAIvD"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript port of lib/dotgen/flat.c.
|
|
3
|
+
*
|
|
4
|
+
* Handles labeled flat (same-rank) edges: virtual node insertion into rank
|
|
5
|
+
* arrays, label-node slot allocation, and the abomination rank-array shift
|
|
6
|
+
* when labeled flat edges fall at rank 0.
|
|
7
|
+
*
|
|
8
|
+
* Note: all functions are exported because lizard 1.22.1's TypeScript parser
|
|
9
|
+
* only recognises function boundaries when the `export` keyword is present.
|
|
10
|
+
* Non-exported TS functions with return-type annotations cause the parser to
|
|
11
|
+
* merge them into the preceding function's body, inflating CCN counts.
|
|
12
|
+
*
|
|
13
|
+
* @see lib/dotgen/flat.c
|
|
14
|
+
*/
|
|
15
|
+
import type { Graph } from '../../model/graph.js';
|
|
16
|
+
import type { Node } from '../../model/node.js';
|
|
17
|
+
import type { Edge } from '../../model/edge.js';
|
|
18
|
+
import type { RankEntry } from '../../model/rankEntry.js';
|
|
19
|
+
import type { EdgeList } from '../../model/nodeInfo.js';
|
|
20
|
+
import type { TextlabelT } from '../../common/types.js';
|
|
21
|
+
export declare function shiftSlotRight(rk: RankEntry, pos: number): void;
|
|
22
|
+
/**
|
|
23
|
+
* Insert a virtual node slot at position `pos` in rank `r` of graph `g`.
|
|
24
|
+
* @see lib/dotgen/flat.c:make_vn_slot
|
|
25
|
+
*/
|
|
26
|
+
export declare function makeVnSlot(g: Graph, r: number, pos: number): Node;
|
|
27
|
+
/** Sorted [lo, hi] of the orders of u and v. @see lib/dotgen/flat.c:findlr */
|
|
28
|
+
export declare function findlr(u: Node, v: Node): [number, number];
|
|
29
|
+
/** A flat label vnode (no in-edges): bound by where its two endpoints sit
|
|
30
|
+
* relative to [lpos,rpos]. @see lib/dotgen/flat.c:setbounds (flat branch) */
|
|
31
|
+
export declare function setBoundsFlat(v: Node, bounds: number[], lpos: number, rpos: number): void;
|
|
32
|
+
/** A forward chain vnode (has in-edges): hard-bound by whether all its
|
|
33
|
+
* downstream connections fall left or right of the span.
|
|
34
|
+
* @see lib/dotgen/flat.c:setbounds (forward branch) */
|
|
35
|
+
export declare function setBoundsForward(v: Node, bounds: number[], lpos: number, rpos: number): void;
|
|
36
|
+
/** Update label-placement bounds from one rank-(r-1) node `v`, given the flat
|
|
37
|
+
* edge's endpoint-order span [lpos,rpos] on rank r. @see lib/dotgen/flat.c:setbounds */
|
|
38
|
+
export declare function setBounds(v: Node, bounds: number[], lpos: number, rpos: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Find the best order position for a flat-edge label virtual node in rank r-1.
|
|
41
|
+
* Faithful port of C's bound-scan (NOT a simple order comparison).
|
|
42
|
+
* @see lib/dotgen/flat.c:flat_limits
|
|
43
|
+
*/
|
|
44
|
+
export declare function flatLimits(g: Graph, e: Edge): number;
|
|
45
|
+
export declare function graphRanksep(g: Graph): number;
|
|
46
|
+
/**
|
|
47
|
+
* ypos = LL.y of the label box, grabbed before make_vn_slot so the new slot does
|
|
48
|
+
* not perturb it. @see lib/dotgen/flat.c:flat_node 154-159
|
|
49
|
+
*/
|
|
50
|
+
export declare function flatLabelYpos(g: Graph, r: number): number;
|
|
51
|
+
/**
|
|
52
|
+
* Set ht/lw/rw on the label vnode from the label dimen (flip swaps x/y); return
|
|
53
|
+
* half-height. @see lib/dotgen/flat.c:flat_node 161-167
|
|
54
|
+
*/
|
|
55
|
+
export declare function flatNodeDims(g: Graph, vn: Node, lbl: TextlabelT): number;
|
|
56
|
+
/**
|
|
57
|
+
* Create the two FLATORDER virtual edges (vn→tail, vn→head) with label ports.
|
|
58
|
+
* @see lib/dotgen/flat.c:flat_node 170-177
|
|
59
|
+
*/
|
|
60
|
+
export declare function flatNodeEdges(vn: Node, e: Edge): void;
|
|
61
|
+
/**
|
|
62
|
+
* Create a VIRTUAL label node (ND_alg → e) above a non-adjacent flat edge.
|
|
63
|
+
*
|
|
64
|
+
* `g` is the graph being laid out. C reads it as `dot_root(agtail(e))`, which is
|
|
65
|
+
* `GD_dotroot(agroot(e))` — a MUTABLE slot on the cgraph root that `dot_init_subg`
|
|
66
|
+
* re-points at the graph currently being laid out. It is therefore NOT the same as
|
|
67
|
+
* `agroot(agtail(e))`: under `pack`, each connected component is laid out as its own
|
|
68
|
+
* dot-root, so `dot_root()` yields the COMPONENT while `agroot()` yields the true
|
|
69
|
+
* root (which has no rank table at all). The port has no such mutable slot, so the
|
|
70
|
+
* layout graph is threaded in from `flat_edges` — which is exactly what C's
|
|
71
|
+
* `dot_root()` evaluates to at every call site here.
|
|
72
|
+
*
|
|
73
|
+
* @see lib/dotgen/flat.c:flat_node (g = dot_root(agtail(e)))
|
|
74
|
+
* @see lib/dotgen/dotinit.c:dot_init_subg (GD_dotroot(agroot(g)) = droot)
|
|
75
|
+
*/
|
|
76
|
+
export declare function flatNode(g: Graph, e: Edge): void;
|
|
77
|
+
/** Fresh empty rank entry (the slot vacated by the +1 renumber). */
|
|
78
|
+
export declare function emptyRankEntry(): RankEntry;
|
|
79
|
+
/**
|
|
80
|
+
* Shift a cluster subtree's absolute-rank-indexed state to follow the +1
|
|
81
|
+
* renumber performed by `abomination` (AD-2).
|
|
82
|
+
*
|
|
83
|
+
* C needs no such pass: its abomination adds the label rank at index -1
|
|
84
|
+
* (`GD_rank(g) = rptr + 1`, `GD_minrank(g)--`) and never touches ND_rank, so a
|
|
85
|
+
* cluster's GD_minrank/GD_maxrank, GD_rank(clust)[] and GD_rankleader(clust)[]
|
|
86
|
+
* — all indexed by ABSOLUTE rank — stay correct. JS has no negative index, so
|
|
87
|
+
* the port renumbers +1 instead, and every absolute-rank-indexed structure has
|
|
88
|
+
* to move with it. Skipping the clusters leaves them pointing one rank too low:
|
|
89
|
+
* the next step of flat_edges (rec_reset_vlists → reset_vlist) re-aliases
|
|
90
|
+
* GD_rank(clust)[r].v = GD_rank(root)[r].v at the cluster's stale r, which now
|
|
91
|
+
* addresses the newly inserted flat-label rank instead of the cluster's own.
|
|
92
|
+
*
|
|
93
|
+
* @see lib/dotgen/flat.c:abomination
|
|
94
|
+
* @see lib/dotgen/mincross.c:reset_vlist
|
|
95
|
+
*/
|
|
96
|
+
export declare function shiftClusterRanks(g: Graph): void;
|
|
97
|
+
/** Make room for a flat label vnode below the lowest rank (name from C; AD-2).
|
|
98
|
+
* @see lib/dotgen/flat.c:abomination */
|
|
99
|
+
export declare function abomination(g: Graph): void;
|
|
100
|
+
export declare function hasInterveningNode(rk: RankEntry, lo: number, hi: number): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Mark flat edge as adjacent if no nodes fall between its endpoints in rank.
|
|
103
|
+
* When adjacent, C marks the edge AND every edge in its `to_virt` chain (the
|
|
104
|
+
* `do { ED_adjacent(e)=1; e=ED_to_virt(e); } while(e)` loop): the class rep must
|
|
105
|
+
* carry the flag too, because flat_edges' `other`-loop copies adjacency from the
|
|
106
|
+
* rep (`ED_adjacent(e) = ED_adjacent(le)`). Marking only the leaf left the rep
|
|
107
|
+
* unmarked, so that copy clobbered the flag back to 0 and the edge mis-routed
|
|
108
|
+
* through the generic fitter (a spurious y-slope on a flat edge).
|
|
109
|
+
*
|
|
110
|
+
* `g` is the graph being laid out — C's `dot_root(tn)`, NOT `agroot(tn)`. See
|
|
111
|
+
* `flatNode` above for why these differ under `pack`.
|
|
112
|
+
*
|
|
113
|
+
* @see lib/dotgen/flat.c:checkFlatAdjacent (rank = &GD_rank(dot_root(tn))[...])
|
|
114
|
+
*/
|
|
115
|
+
export declare function checkFlatAdjacent(g: Graph, e: Edge): void;
|
|
116
|
+
export declare function isLabeledFlat(e: Edge): boolean;
|
|
117
|
+
export declare function markEdgeList(g: Graph, edges: EdgeList | undefined): void;
|
|
118
|
+
export declare function markAdjacent(g: Graph): void;
|
|
119
|
+
export declare function rankHasNonAdjacentLabel(rk: RankEntry): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* AD-1: C gates this on `GD_rank(g)[0].flat || GD_n_cluster(g) > 0` and then
|
|
122
|
+
* scans for a labeled non-adjacent flat edge on rank mn. In this port the
|
|
123
|
+
* `rank[mn].flat` adjacency matrix is unreliable at position-time (mincross
|
|
124
|
+
* builds it before `flat_out` is populated), so we detect the rank-mn labeled
|
|
125
|
+
* non-adjacent flat edge directly via `flat_out` — which is the real gate. This
|
|
126
|
+
* only fires for a graph with such an edge on the lowest rank (none of the 115
|
|
127
|
+
* goldens have one), so it is byte-safe. @see lib/dotgen/flat.c:flat_edges 279
|
|
128
|
+
*/
|
|
129
|
+
export declare function needsAbomination(g: Graph): boolean;
|
|
130
|
+
/** Store the representative's flat-label width directly. @see flat.c:300 */
|
|
131
|
+
export declare function applyLabelDist(g: Graph, e: Edge): void;
|
|
132
|
+
/** flat_out loop body: store label dist on e (the rep), or add a label vnode.
|
|
133
|
+
* @see lib/dotgen/flat.c:flat_edges 296-307 */
|
|
134
|
+
export declare function processFlatOutLabel(g: Graph, e: Edge, reset: boolean): boolean;
|
|
135
|
+
/** other loop body: inherit adjacency from the class rep, and for an adjacent
|
|
136
|
+
* labeled edge MAX its label width onto the rep's dist (not the edge itself);
|
|
137
|
+
* non-adjacent labeled edges add a label vnode. Skips cross-rank and self
|
|
138
|
+
* edges. @see lib/dotgen/flat.c:flat_edges 309-326 */
|
|
139
|
+
export declare function processOtherLabel(g: Graph, e: Edge, reset: boolean): boolean;
|
|
140
|
+
/**
|
|
141
|
+
* The flat_edges dist/label-vnode pass. C nests BOTH the flat_out and other
|
|
142
|
+
* loops inside `if (ND_flat_out(n).list)`, so a node with no flat_out processes
|
|
143
|
+
* neither. @see lib/dotgen/flat.c:flat_edges 288-330
|
|
144
|
+
*/
|
|
145
|
+
export declare function processNodes(g: Graph): boolean;
|
|
146
|
+
/**
|
|
147
|
+
* Process flat edges for label placement and abomination.
|
|
148
|
+
* Returns true if rank arrays were modified (label nodes inserted).
|
|
149
|
+
* @see lib/dotgen/flat.c:flat_edges
|
|
150
|
+
*/
|
|
151
|
+
export declare function flatEdges(g: Graph): boolean;
|
|
152
|
+
//# sourceMappingURL=flat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/flat.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;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;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAOxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAQ/D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAUjE;AAsBD,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAIzD;AAED;8EAC8E;AAC9E,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYzF;AAED;;wDAEwD;AACxD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAa5F;AAED;yFACyF;AACzF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAIrF;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAmBpD;AAQD,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAOxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CASrD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAehD;AAID,oEAAoE;AACpE,wBAAgB,cAAc,IAAI,SAAS,CAM1C;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAuBhD;AAED;wCACwC;AACxC,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAiC1C;AAMD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAajF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAWzD;AAOD,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAE9C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAGxE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAc3C;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAS9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAKlD;AASD,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAEtD;AAUD;gDACgD;AAChD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAK9E;AAED;;;uDAGuD;AACvD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAY5E;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAU9C;AAMD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAc3C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cluster label dimension setup for dot layout.
|
|
3
|
+
*
|
|
4
|
+
* @see lib/common/input.c:do_graph_label
|
|
5
|
+
*/
|
|
6
|
+
import type { Graph } from '../../model/graph.js';
|
|
7
|
+
import type { TextMeasurer } from '../../common/textmeasure.js';
|
|
8
|
+
/** Graph has a label. @see lib/common/const.h:GRAPH_LABEL */
|
|
9
|
+
export declare const GRAPH_LABEL: number;
|
|
10
|
+
/**
|
|
11
|
+
* Compute cluster label dimensions and set sg.info.border so that clustHt
|
|
12
|
+
* accounts for label height.
|
|
13
|
+
*
|
|
14
|
+
* @see lib/common/input.c:do_graph_label
|
|
15
|
+
* @see lib/common/input.c:850 — make_label(sg, str, aghtmlstr(str), false, ...)
|
|
16
|
+
*/
|
|
17
|
+
export declare function doGraphLabel(sg: Graph, measurer: TextMeasurer | undefined): void;
|
|
18
|
+
//# sourceMappingURL=graph-label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/graph-label.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,6DAA6D;AAC7D,eAAO,MAAM,WAAW,QAAS,CAAC;AAmElC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAuBhF"}
|