@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,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R-tree public API: open/close/insert/search.
|
|
3
|
+
* @see label/index.h
|
|
4
|
+
* @see label/index.c
|
|
5
|
+
*/
|
|
6
|
+
import { type Rect } from './rectangle.js';
|
|
7
|
+
import { type Node, type SplitQ } from './node.js';
|
|
8
|
+
import './split-q.js';
|
|
9
|
+
/**
|
|
10
|
+
* An R-tree leaf: the bounding rect and the caller-supplied data pointer.
|
|
11
|
+
*
|
|
12
|
+
* In C this is `Leaf_t { Rect_t rect; void *data; }` and a leaf branch is
|
|
13
|
+
* cast directly to Leaf_t* — `branch[i].child` holds the data pointer while
|
|
14
|
+
* `branch[i].rect` is the bounding rectangle. We replicate that layout here.
|
|
15
|
+
*
|
|
16
|
+
* @see label/index.h:Leaf_t
|
|
17
|
+
*/
|
|
18
|
+
export interface Leaf {
|
|
19
|
+
rect: Rect;
|
|
20
|
+
/** Caller-supplied opaque data (C: void *). */
|
|
21
|
+
data: unknown;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* R-tree: root node plus the SplitQ scratchpad.
|
|
25
|
+
* @see label/index.h:struct RTree
|
|
26
|
+
*/
|
|
27
|
+
export interface RTree {
|
|
28
|
+
root: Node | null;
|
|
29
|
+
split: SplitQ;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Allocate and initialise a new R-tree.
|
|
33
|
+
* @see label/index.c:RTreeOpen
|
|
34
|
+
*/
|
|
35
|
+
export declare function rTreeOpen(): RTree;
|
|
36
|
+
/**
|
|
37
|
+
* Close (free) the R-tree.
|
|
38
|
+
* In GC'd TS this is a no-op in practice, but we walk and clear the tree
|
|
39
|
+
* faithfully to mirror the C version and release references eagerly.
|
|
40
|
+
* @see label/index.c:RTreeClose
|
|
41
|
+
*/
|
|
42
|
+
export declare function rTreeClose(rtp: RTree): void;
|
|
43
|
+
/**
|
|
44
|
+
* Make a new empty index (single leaf node at level 0).
|
|
45
|
+
* @see label/index.c:RTreeNewIndex
|
|
46
|
+
*/
|
|
47
|
+
export declare function rTreeNewIndex(): Node;
|
|
48
|
+
/**
|
|
49
|
+
* Search the index for all data rectangles overlapping `r`.
|
|
50
|
+
*
|
|
51
|
+
* Returns a Leaf[] whose iteration order matches C's LeafList_t traversal:
|
|
52
|
+
* within each leaf node hits are in reverse branch-slot order (list-cons
|
|
53
|
+
* prepend); across internal-node children results are in forward slot order.
|
|
54
|
+
*
|
|
55
|
+
* @see label/index.c:RTreeSearch
|
|
56
|
+
*/
|
|
57
|
+
export declare function rTreeSearch(rtp: RTree, n: Node, r: Rect): Leaf[];
|
|
58
|
+
/**
|
|
59
|
+
* Insert a data rectangle into the index.
|
|
60
|
+
* Returns 1 if root was split, 0 otherwise. Updates rtp.root on split.
|
|
61
|
+
* @see label/index.c:RTreeInsert
|
|
62
|
+
*/
|
|
63
|
+
export declare function rTreeInsert(rtp: RTree, r: Rect, data: unknown): number;
|
|
64
|
+
/**
|
|
65
|
+
* Free a LeafList. In GC'd TypeScript this is a documented no-op stub;
|
|
66
|
+
* the caller may discard the Leaf[] returned by rTreeSearch without calling
|
|
67
|
+
* this function.
|
|
68
|
+
*
|
|
69
|
+
* Kept as a named export so callers ported from C can call it without change.
|
|
70
|
+
*
|
|
71
|
+
* @see label/index.c:RTreeLeafListFree
|
|
72
|
+
*/
|
|
73
|
+
export declare function rTreeLeafListFree(_leaves: Leaf[]): void;
|
|
74
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/label/index.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,EAAiC,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,MAAM,EAOZ,MAAM,WAAW,CAAC;AAInB,OAAO,cAAc,CAAC;AAMtB;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAyDD;;;GAGG;AACH,wBAAgB,SAAS,IAAI,KAAK,CAEjC;AAsBD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAK3C;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAIpC;AA4CD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,CAGhE;AA8DD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAOtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAEvD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R-tree node types and node-level operations.
|
|
3
|
+
* @see label/node.h
|
|
4
|
+
* @see label/node.c
|
|
5
|
+
* @see label/index.h
|
|
6
|
+
*/
|
|
7
|
+
import { type Rect } from './rectangle.js';
|
|
8
|
+
/** @see label/index.h:NODECARD */
|
|
9
|
+
export declare const NODECARD = 64;
|
|
10
|
+
/**
|
|
11
|
+
* A single branch in an R-tree node: a bounding rectangle and a child pointer.
|
|
12
|
+
* @see label/node.h:Branch_t
|
|
13
|
+
*/
|
|
14
|
+
export interface Branch {
|
|
15
|
+
rect: Rect;
|
|
16
|
+
/** null means this slot is empty; pointer to child Node otherwise */
|
|
17
|
+
child: Node | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* An R-tree node: up to NODECARD branches.
|
|
21
|
+
* level 0 = leaf, positive = internal.
|
|
22
|
+
* @see label/node.h:Node_t
|
|
23
|
+
*/
|
|
24
|
+
export interface Node {
|
|
25
|
+
count: number;
|
|
26
|
+
/** 0 is leaf, others positive */
|
|
27
|
+
level: number;
|
|
28
|
+
branch: Branch[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Per-split partition bookkeeping.
|
|
32
|
+
* @see label/split.q.h:PartitionVars
|
|
33
|
+
*/
|
|
34
|
+
export interface PartitionVars {
|
|
35
|
+
partition: number[];
|
|
36
|
+
taken: boolean[];
|
|
37
|
+
count: [number, number];
|
|
38
|
+
cover: [Rect, Rect];
|
|
39
|
+
area: [number, number];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Quadratic-split scratchpad stored in the RTree.
|
|
43
|
+
* @see label/split.q.h:SplitQ_t / split_q_s
|
|
44
|
+
*/
|
|
45
|
+
export interface SplitQ {
|
|
46
|
+
branchBuf: Branch[];
|
|
47
|
+
coverSplit: Rect;
|
|
48
|
+
coverSplitArea: number;
|
|
49
|
+
partitions: PartitionVars[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Minimal RTree fields touched by node.c and split.q.c.
|
|
53
|
+
* T3 (index.c) will flesh out the full RTree type; this structural
|
|
54
|
+
* base keeps T2 self-contained.
|
|
55
|
+
* @see label/index.h:struct RTree
|
|
56
|
+
*/
|
|
57
|
+
export interface RTreeBase {
|
|
58
|
+
root: Node | null;
|
|
59
|
+
split: SplitQ;
|
|
60
|
+
}
|
|
61
|
+
/** Build an empty SplitQ. */
|
|
62
|
+
export declare function makeSplitQ(): SplitQ;
|
|
63
|
+
/**
|
|
64
|
+
* Initialize one branch cell: zeroed rect, null child.
|
|
65
|
+
* @see label/node.c:InitBranch
|
|
66
|
+
*/
|
|
67
|
+
export declare function initBranch(b: Branch): void;
|
|
68
|
+
/**
|
|
69
|
+
* Initialize a Node structure: count=0, level=-1, all branches empty.
|
|
70
|
+
* @see label/node.c:InitNode
|
|
71
|
+
*/
|
|
72
|
+
export declare function initNode(n: Node): void;
|
|
73
|
+
/**
|
|
74
|
+
* Allocate and initialize a new Node.
|
|
75
|
+
* @see label/node.c:RTreeNewNode
|
|
76
|
+
*/
|
|
77
|
+
export declare function rTreeNewNode(): Node;
|
|
78
|
+
/** Smallest rect enclosing all occupied branch rects. @see label/node.c:NodeCover */
|
|
79
|
+
export declare function nodeCover(n: Node): Rect;
|
|
80
|
+
/**
|
|
81
|
+
* Pick the branch that will need the smallest area increase to
|
|
82
|
+
* accommodate rect r. Ties broken by smaller current area.
|
|
83
|
+
* @see label/node.c:PickBranch
|
|
84
|
+
*/
|
|
85
|
+
export declare function pickBranch(r: Rect, n: Node): number;
|
|
86
|
+
/**
|
|
87
|
+
* Add a branch to a node. Splits the node if necessary.
|
|
88
|
+
* Returns 0 if no split; old node updated.
|
|
89
|
+
* Returns 1 if split; newNodeOut.value set to the new node.
|
|
90
|
+
*
|
|
91
|
+
* Cycle note: addBranch → splitNode (split-q.ts) → loadNodes → addBranch.
|
|
92
|
+
* Resolved via late-binding shim below; both modules fully initialised
|
|
93
|
+
* before any function executes at runtime.
|
|
94
|
+
* @see label/node.c:AddBranch
|
|
95
|
+
*/
|
|
96
|
+
export declare function addBranch(rtp: RTreeBase, b: Branch, n: Node, newNodeOut: {
|
|
97
|
+
value: Node | null;
|
|
98
|
+
}): number;
|
|
99
|
+
/**
|
|
100
|
+
* Disconnect a dependent node (clears branch slot, decrements count).
|
|
101
|
+
* @see label/node.c:DisconBranch
|
|
102
|
+
*/
|
|
103
|
+
export declare function disconnectBranch(n: Node, i: number): void;
|
|
104
|
+
/** Register the splitNode implementation. Called by split-q.ts at load time. */
|
|
105
|
+
export declare function registerSplitNode(impl: (rtp: RTreeBase, n: Node, b: Branch, newNodeOut: {
|
|
106
|
+
value: Node | null;
|
|
107
|
+
}) => void): void;
|
|
108
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/label/node.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,IAAI,EAA6C,MAAM,gBAAgB,CAAC;AAUtF,kCAAkC;AAClC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAS3B;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,IAAI,CAAC;IACX,qEAAqE;IACrE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACpB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAsBD,6BAA6B;AAC7B,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAMD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAG1C;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAMtC;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AA4BD,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAWvC;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAUnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,SAAS,EACd,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,IAAI,EACP,UAAU,EAAE;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GACjC,MAAM,CAiBR;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAGzD;AAiBD,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,KAAK,IAAI,GACrF,IAAI,CAEN"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* R-tree rectangle primitives.
|
|
3
|
+
* @see label/rectangle.h
|
|
4
|
+
* @see label/rectangle.c
|
|
5
|
+
* @see label/index.h
|
|
6
|
+
*/
|
|
7
|
+
/** @see label/index.h:NUMDIMS */
|
|
8
|
+
export declare const NUMDIMS = 2;
|
|
9
|
+
/** @see label/index.h:NUMSIDES (2*NUMDIMS) */
|
|
10
|
+
export declare const NUMSIDES: number;
|
|
11
|
+
/**
|
|
12
|
+
* Flat boundary array: [lowX, lowY, highX, highY].
|
|
13
|
+
* Indexed via CX/CY/NX/NY helpers matching the C macros.
|
|
14
|
+
* @see label/rectangle.h:Rect_t
|
|
15
|
+
*/
|
|
16
|
+
export interface Rect {
|
|
17
|
+
boundary: [number, number, number, number];
|
|
18
|
+
}
|
|
19
|
+
/** @see label/index.h:CX(i) — low side, x-axis offset i */
|
|
20
|
+
export declare function CX(i: number): number;
|
|
21
|
+
/** @see label/index.h:NX(i) — high side, x-axis offset i */
|
|
22
|
+
export declare function NX(i: number): number;
|
|
23
|
+
/** @see label/index.h:CY(i) — low side, y-axis offset i */
|
|
24
|
+
export declare function CY(i: number): number;
|
|
25
|
+
/** @see label/index.h:NY(i) — high side, y-axis offset i */
|
|
26
|
+
export declare function NY(i: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* Initialize a rectangle to have all 0 coordinates.
|
|
29
|
+
* @see label/rectangle.c:InitRect
|
|
30
|
+
*/
|
|
31
|
+
export declare function initRect(r: Rect): void;
|
|
32
|
+
/**
|
|
33
|
+
* Return a rect whose first low side is higher than its opposite side —
|
|
34
|
+
* interpreted as an undefined rect.
|
|
35
|
+
* C: boundary[0]=1, boundary[NUMDIMS]=-1, rest 0.
|
|
36
|
+
* @see label/rectangle.c:NullRect
|
|
37
|
+
*/
|
|
38
|
+
export declare function nullRect(): Rect;
|
|
39
|
+
/**
|
|
40
|
+
* Calculate the n-dimensional area of a rectangle.
|
|
41
|
+
* Returns 0 for undefined rects or zero-width dimensions.
|
|
42
|
+
* Throws if area overflows Number.MAX_SAFE_INTEGER (browser-safe substitute
|
|
43
|
+
* for C's graphviz_exit on UINT64_MAX overflow).
|
|
44
|
+
* @see label/rectangle.c:RectArea
|
|
45
|
+
*/
|
|
46
|
+
export declare function rectArea(r: Rect): number;
|
|
47
|
+
/**
|
|
48
|
+
* Combine two rectangles, making one that includes both.
|
|
49
|
+
* Uses fmin for both low and high sides — faithful to C source.
|
|
50
|
+
* @see label/rectangle.c:CombineRect
|
|
51
|
+
*/
|
|
52
|
+
export declare function combineRect(r: Rect, rr: Rect): Rect;
|
|
53
|
+
/**
|
|
54
|
+
* Decide whether two rectangles overlap.
|
|
55
|
+
* C: for each dim i, false if r.lo[i] > s.hi[i] OR s.lo[i] > r.hi[i].
|
|
56
|
+
* Touching edges (equal) are considered overlapping (strict > only).
|
|
57
|
+
* @see label/rectangle.c:Overlap
|
|
58
|
+
*/
|
|
59
|
+
export declare function overlap(r: Rect, s: Rect): boolean;
|
|
60
|
+
//# sourceMappingURL=rectangle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rectangle.d.ts","sourceRoot":"","sources":["../../src/label/rectangle.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,iCAAiC;AACjC,eAAO,MAAM,OAAO,IAAI,CAAC;AAEzB,8CAA8C;AAC9C,eAAO,MAAM,QAAQ,QAAc,CAAC;AAEpC;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAc;AAEnD,4DAA4D;AAC5D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAwB;AAE7D,2DAA2D;AAC3D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAkB;AAEvD,4DAA4D;AAC5D,wBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAA4B;AAWjE;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAItC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAK/B;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAaxC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAWnD;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAQjD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type Branch, type Node, type RTreeBase } from './node.js';
|
|
2
|
+
/**
|
|
3
|
+
* Split a node. Divides the node's branches and the extra one between two
|
|
4
|
+
* nodes. Old node is one of the two; a new node is created and returned via
|
|
5
|
+
* nn.value.
|
|
6
|
+
* @see label/split.q.c:SplitNode
|
|
7
|
+
*/
|
|
8
|
+
export declare function splitNode(rtp: RTreeBase, n: Node, b: Branch, nn: {
|
|
9
|
+
value: Node | null;
|
|
10
|
+
}): void;
|
|
11
|
+
declare const METHODS = 1;
|
|
12
|
+
export { METHODS };
|
|
13
|
+
//# sourceMappingURL=split-q.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-q.d.ts","sourceRoot":"","sources":["../../src/label/split-q.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,IAAI,EAET,KAAK,SAAS,EAKf,MAAM,WAAW,CAAC;AA4LnB;;;;;GAKG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,SAAS,EACd,CAAC,EAAE,IAAI,EACP,CAAC,EAAE,MAAM,EACT,EAAE,EAAE;IAAE,KAAK,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GACzB,IAAI,CAON;AAQD,QAAA,MAAM,OAAO,IAAI,CAAC;AAGlB,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Geometry helpers for xlabels: Hilbert code, rect conversions, AABB test.
|
|
3
|
+
* Internal — consumed only by xlabels-intersect.ts and xlabels.ts.
|
|
4
|
+
* @see lib/label/xlabels.c
|
|
5
|
+
*/
|
|
6
|
+
import { type Rect } from './rectangle.js';
|
|
7
|
+
import { type ObjectT } from './xlabels.js';
|
|
8
|
+
/**
|
|
9
|
+
* Compute Hilbert curve distance from origin to integer point (x,y) on an
|
|
10
|
+
* order-n Hilbert curve. Ported from hackersdelight.org (Henry S. Warren).
|
|
11
|
+
*
|
|
12
|
+
* All arithmetic is 32-bit unsigned:
|
|
13
|
+
* - `>>> 0` coerces to Uint32 (correctly wraps -xi negation).
|
|
14
|
+
* - `>>>` unsigned right shift replaces C `>>` on signed ints.
|
|
15
|
+
* - `& 0xFFFFFFFF` keeps intermediate values in 32-bit range.
|
|
16
|
+
*
|
|
17
|
+
* Precondition: 2^n >= max(px, py).
|
|
18
|
+
* @see lib/label/xlabels.c:hd_hil_s_from_xy
|
|
19
|
+
*/
|
|
20
|
+
export declare function hdHilSFromXy(px: number, py: number, n: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Intersection area of two axis-aligned bounding boxes; 0 when disjoint.
|
|
23
|
+
* @see lib/label/xlabels.c:aabbaabb
|
|
24
|
+
*/
|
|
25
|
+
export declare function aabbaabb(r: Rect, s: Rect): number;
|
|
26
|
+
/**
|
|
27
|
+
* Build a Rect from object position + size.
|
|
28
|
+
* @see lib/label/xlabels.c:objp2rect
|
|
29
|
+
*/
|
|
30
|
+
export declare function objp2rect(op: ObjectT): Rect;
|
|
31
|
+
/**
|
|
32
|
+
* Build a Rect from the object's attached xlabel position + size.
|
|
33
|
+
* @see lib/label/xlabels.c:objplp2rect
|
|
34
|
+
*/
|
|
35
|
+
export declare function objplp2rect(objp: ObjectT): Rect;
|
|
36
|
+
/**
|
|
37
|
+
* Build the bounding Rect enclosing all possible label positions for objp.
|
|
38
|
+
* @see lib/label/xlabels.c:objplpmks
|
|
39
|
+
*/
|
|
40
|
+
export declare function objplpmks(objp: ObjectT): Rect;
|
|
41
|
+
/**
|
|
42
|
+
* True if size-zero object objp1 is enclosed within objp's label rectangle.
|
|
43
|
+
* @see lib/label/xlabels.c:lblenclosing
|
|
44
|
+
*/
|
|
45
|
+
export declare function lblenclosing(objp: ObjectT, objp1: ObjectT): boolean;
|
|
46
|
+
//# sourceMappingURL=xlabels-geom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xlabels-geom.d.ts","sourceRoot":"","sources":["../../src/label/xlabels-geom.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,IAAI,EAAW,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,cAAc,CAAC;AAO1D;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAOjD;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAW3C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAW/C;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAU7C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CASnE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neighbour-grid intersection recording and xladjust position search.
|
|
3
|
+
* Internal — consumed only by xlabels.ts.
|
|
4
|
+
* @see lib/label/xlabels.c
|
|
5
|
+
*/
|
|
6
|
+
import { type Rect } from './rectangle.js';
|
|
7
|
+
import { type RTree } from './index.js';
|
|
8
|
+
import { type ObjectT } from './xlabels.js';
|
|
9
|
+
/** @see lib/label/xlabels.h:XLXDENOM */
|
|
10
|
+
export declare const XLXDENOM = 8;
|
|
11
|
+
/** @see lib/label/xlabels.h:XLYDENOM */
|
|
12
|
+
export declare const XLYDENOM = 2;
|
|
13
|
+
/** 9-neighbour grid size. @see lib/label/xlabels.h:XLNBR */
|
|
14
|
+
export declare const XLNBR = 9;
|
|
15
|
+
/**
|
|
16
|
+
* Best-position accumulator.
|
|
17
|
+
* @see lib/label/xlabels.h:BestPos_t
|
|
18
|
+
*/
|
|
19
|
+
export interface BestPosT {
|
|
20
|
+
n: number;
|
|
21
|
+
area: number;
|
|
22
|
+
pos: {
|
|
23
|
+
x: number;
|
|
24
|
+
y: number;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* XLabels state bundle (forward-declared interface; full type in xlabels.ts).
|
|
29
|
+
*/
|
|
30
|
+
export interface XLabelsState {
|
|
31
|
+
objs: ObjectT[];
|
|
32
|
+
nObjs: number;
|
|
33
|
+
spdx: RTree;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Record intersecting object in neighbour grid.
|
|
37
|
+
* @see lib/label/xlabels.c:recordointrsx
|
|
38
|
+
*/
|
|
39
|
+
export declare function recordointrsx(op: ObjectT, cp: ObjectT, rp: Rect, a: number, intrsx: (ObjectT | null)[]): number;
|
|
40
|
+
/**
|
|
41
|
+
* Record intersecting label in neighbour grid.
|
|
42
|
+
* @see lib/label/xlabels.c:recordlintrsx
|
|
43
|
+
*/
|
|
44
|
+
export declare function recordlintrsx(op: ObjectT, cp: ObjectT, rp: Rect, a: number, intrsx: (ObjectT | null)[]): number;
|
|
45
|
+
/**
|
|
46
|
+
* Find all objects/labels intersecting objp's current label position.
|
|
47
|
+
* @see lib/label/xlabels.c:xlintersections
|
|
48
|
+
*/
|
|
49
|
+
export declare function xlintersections(xlp: XLabelsState, objp: ObjectT, intrsx: (ObjectT | null)[]): BestPosT;
|
|
50
|
+
/**
|
|
51
|
+
* Top-left sliding pass (along top edge then down left edge).
|
|
52
|
+
* @see lib/label/xlabels.c:xladjust (sliding from top left)
|
|
53
|
+
*/
|
|
54
|
+
export declare function slideFromTopLeft(xlp: XLabelsState, objp: ObjectT, xincr: number, yincr: number, bp: BestPosT, intrsx: (ObjectT | null)[]): {
|
|
55
|
+
bp: BestPosT;
|
|
56
|
+
done: boolean;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Bottom-right sliding pass (along bottom edge then up right edge).
|
|
60
|
+
* @see lib/label/xlabels.c:xladjust (sliding from bottom right)
|
|
61
|
+
*/
|
|
62
|
+
export declare function slideFromBottomRight(xlp: XLabelsState, objp: ObjectT, xincr: number, yincr: number, bp: BestPosT, intrsx: (ObjectT | null)[]): {
|
|
63
|
+
bp: BestPosT;
|
|
64
|
+
done: boolean;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Try the 7 remaining fixed candidate positions after the initial top-left probe.
|
|
68
|
+
* @see lib/label/xlabels.c:xladjust (fixed position probes)
|
|
69
|
+
*/
|
|
70
|
+
export declare function tryFixedPositions(xlp: XLabelsState, objp: ObjectT, bp: BestPosT, intrsx: (ObjectT | null)[]): {
|
|
71
|
+
bp: BestPosT;
|
|
72
|
+
done: boolean;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Find the best label position for objp using the 9-candidate + sliding search.
|
|
76
|
+
* @see lib/label/xlabels.c:xladjust
|
|
77
|
+
*/
|
|
78
|
+
export declare function xladjust(xlp: XLabelsState, objp: ObjectT): BestPosT;
|
|
79
|
+
//# sourceMappingURL=xlabels-intersect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xlabels-intersect.d.ts","sourceRoot":"","sources":["../../src/label/xlabels-intersect.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EACL,KAAK,KAAK,EAIX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,cAAc,CAAC;AAY1D,wCAAwC;AACxC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,wCAAwC;AACxC,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,4DAA4D;AAC5D,eAAO,MAAM,KAAK,IAAI,CAAC;AAgBvB;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC;CACb;AAkFD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAC7C,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,MAAM,CAWR;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAC7C,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,MAAM,CAWR;AAsBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAChC,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACzB,QAAQ,CAcV;AAqFD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC9D,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACvC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAUjC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAC9D,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACvC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAUjC;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAChC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,GACvC;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAkBjC;AAMD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,GAAG,QAAQ,CAmCnE"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External-label placement — public types and placeLabels entry point.
|
|
3
|
+
*
|
|
4
|
+
* Internal algorithm is split across:
|
|
5
|
+
* xlabels-geom.ts — Hilbert code, rect helpers
|
|
6
|
+
* xlabels-intersect.ts — neighbour-grid recording, xladjust
|
|
7
|
+
*
|
|
8
|
+
* @see lib/label/xlabels.h
|
|
9
|
+
* @see lib/label/xlabels.c
|
|
10
|
+
*/
|
|
11
|
+
import { type Box } from '../model/geom.js';
|
|
12
|
+
/**
|
|
13
|
+
* External label attached to a graph object.
|
|
14
|
+
* @see lib/label/xlabels.h:xlabel_t
|
|
15
|
+
*/
|
|
16
|
+
export interface XLabelT {
|
|
17
|
+
/** Size of label (input). @see xlabel_t.sz */
|
|
18
|
+
sz: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
/** Position of lower-left corner (output). @see xlabel_t.pos */
|
|
23
|
+
pos: {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
};
|
|
27
|
+
/** Opaque pointer to label in the graph. @see xlabel_t.lbl */
|
|
28
|
+
lbl: unknown;
|
|
29
|
+
/** Non-zero when position has been set. @see xlabel_t.set */
|
|
30
|
+
set: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Graph object that may carry an external label.
|
|
34
|
+
* @see lib/label/xlabels.h:object_t
|
|
35
|
+
*/
|
|
36
|
+
export interface ObjectT {
|
|
37
|
+
/** Position of lower-left corner. @see object_t.pos */
|
|
38
|
+
pos: {
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
};
|
|
42
|
+
/** Size; may be zero for a point object. @see object_t.sz */
|
|
43
|
+
sz: {
|
|
44
|
+
x: number;
|
|
45
|
+
y: number;
|
|
46
|
+
};
|
|
47
|
+
/** Attached label, or null. @see object_t.lbl */
|
|
48
|
+
lbl: XLabelT | null;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Parameters controlling label placement.
|
|
52
|
+
* @see lib/label/xlabels.h:label_params_t
|
|
53
|
+
*/
|
|
54
|
+
export interface LabelParamsT {
|
|
55
|
+
/** Bounding box of all objects. @see label_params_t.bb */
|
|
56
|
+
bb: Box;
|
|
57
|
+
/** When true, all labels must be placed even if overlaps result. */
|
|
58
|
+
force: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Place external labels near their attached objects, minimising overlaps.
|
|
62
|
+
* Returns 0 when all labels were placed without overlap; non-zero otherwise.
|
|
63
|
+
*
|
|
64
|
+
* @see lib/label/xlabels.c:placeLabels
|
|
65
|
+
*/
|
|
66
|
+
export declare function placeLabels(objs: ObjectT[], lbls: XLabelT[], params: LabelParamsT): number;
|
|
67
|
+
//# sourceMappingURL=xlabels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xlabels.d.ts","sourceRoot":"","sources":["../../src/label/xlabels.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAY5C;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,8CAA8C;IAC9C,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,gEAAgE;IAChE,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,8DAA8D;IAC9D,GAAG,EAAE,OAAO,CAAC;IACb,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,uDAAuD;IACvD,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,6DAA6D;IAC7D,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,iDAAiD;IACjD,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,EAAE,EAAE,GAAG,CAAC;IACR,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;CAChB;AA+HD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,OAAO,EAAE,EACf,IAAI,EAAE,OAAO,EAAE,EACf,MAAM,EAAE,YAAY,GACnB,MAAM,CAaR"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-block circle layout: skeleton extraction, spanning tree, longest-path
|
|
3
|
+
* heuristic, crossing reduction, radius and position assignment.
|
|
4
|
+
*
|
|
5
|
+
* Ports lib/circogen/blockpath.c. All functions are exported so lizard
|
|
6
|
+
* counts each one independently.
|
|
7
|
+
*
|
|
8
|
+
* @see lib/circogen/blockpath.c
|
|
9
|
+
*/
|
|
10
|
+
import type { Node } from '../../model/node.js';
|
|
11
|
+
import type { Block, SubGraph, CircState, DerivedNode, DerivedEdge } from './blocks.js';
|
|
12
|
+
export type SpanNode = {
|
|
13
|
+
dn: DerivedNode;
|
|
14
|
+
tparent: SpanNode | null;
|
|
15
|
+
visited: boolean;
|
|
16
|
+
distone: number;
|
|
17
|
+
disttwo: number;
|
|
18
|
+
leafone: SpanNode | null;
|
|
19
|
+
leaftwo: SpanNode | null;
|
|
20
|
+
onpath: boolean;
|
|
21
|
+
};
|
|
22
|
+
export declare function blockGraph(allEdges: DerivedEdge[], sn: Block): void;
|
|
23
|
+
export declare function derivedOf(n: Node): DerivedNode | null;
|
|
24
|
+
export declare function closeOpenEdge(e: DerivedEdge, d: DerivedNode, opened: DerivedEdge[]): number;
|
|
25
|
+
export declare function openEdgesAt(d: DerivedNode, edges: DerivedEdge[], opened: DerivedEdge[], order: number): void;
|
|
26
|
+
/**
|
|
27
|
+
* C's count_all_crossings — INCLUDING its load-bearing bug: remove_edge keys
|
|
28
|
+
* the open-edge dict by the half-edge POINTER handed to it, and the closing
|
|
29
|
+
* node's agfstedge always yields the OPPOSITE half from the one stored when
|
|
30
|
+
* the edge was opened, so dtdelete never matches and the list only grows
|
|
31
|
+
* (circogen/edgelist.c:cmpItem on Agedge_t*). Each edge's close therefore
|
|
32
|
+
* counts EVERY edge opened after it (nested as well as interleaved spans),
|
|
33
|
+
* minus edges incident to the closing node — an inflated count that reduce()
|
|
34
|
+
* uses to accept moves. Do not "fix" this to true interleave counting: the
|
|
35
|
+
* final circle order depends on it.
|
|
36
|
+
* @see lib/circogen/blockpath.c:count_all_crossings
|
|
37
|
+
* @see lib/circogen/edgelist.c:remove_edge
|
|
38
|
+
*/
|
|
39
|
+
export declare function countCrossings(list: Node[], edges: DerivedEdge[]): number;
|
|
40
|
+
export declare function insertNode(list: Node[], cn: Node, neighbor: Node, pos: number): void;
|
|
41
|
+
/**
|
|
42
|
+
* One reduce pass, mirroring C's reduce (blockpath.c:439): iterate the
|
|
43
|
+
* SUBGRAPH's nodes in agfstnode (root-seq) order — NOT the current list
|
|
44
|
+
* order — and each node's incident edges in agfstedge order; the neighbour
|
|
45
|
+
* is agtail(e) unless that is curnode. The first-improving-move order is
|
|
46
|
+
* load-bearing for the final arrangement.
|
|
47
|
+
*/
|
|
48
|
+
export declare function reducePass(list: Node[], edges: DerivedEdge[], cnt: {
|
|
49
|
+
v: number;
|
|
50
|
+
}, nodes: DerivedNode[]): void;
|
|
51
|
+
/** @see lib/circogen/blockpath.c:reduce_edge_crossings */
|
|
52
|
+
export declare function reduceEdgeCrossings(list: Node[], edges: DerivedEdge[], nodes: DerivedNode[]): Node[];
|
|
53
|
+
/**
|
|
54
|
+
* Incident edges of dn in agfstedge order over the (possibly pruned)
|
|
55
|
+
* subgraph edge set: out-edges (by head order, seq) then in-edges (by tail
|
|
56
|
+
* order, seq). `ord`/`seq` maps carry the derived root's node and edge
|
|
57
|
+
* creation orders. @see lib/cgraph/edge.c:agfstedge
|
|
58
|
+
*/
|
|
59
|
+
export declare function spanIncident(dn: DerivedNode, edges: DerivedEdge[], ord: Map<DerivedNode, number>, seq: Map<DerivedEdge, number>): DerivedEdge[];
|
|
60
|
+
export declare function dfsSpan(sn: SpanNode, map: Map<DerivedNode, SpanNode>, edges: DerivedEdge[], ord: Map<DerivedNode, number>, seq: Map<DerivedEdge, number>): void;
|
|
61
|
+
export declare function buildSpanTree(nodes: DerivedNode[], edges: DerivedEdge[]): Map<DerivedNode, SpanNode>;
|
|
62
|
+
export declare function measureDist(leaf: SpanNode, anc: SpanNode, dist: number, change: SpanNode | null): void;
|
|
63
|
+
export declare function pathToNode(from: SpanNode, stop: SpanNode): SpanNode[];
|
|
64
|
+
export declare function leafDegree(sn: SpanNode, all: SpanNode[]): number;
|
|
65
|
+
export declare function findCommon(spanNodes: SpanNode[]): SpanNode | null;
|
|
66
|
+
export declare function findLongestPath(spanNodes: SpanNode[]): SpanNode[];
|
|
67
|
+
export declare function largestNodesize(list: Node[]): number;
|
|
68
|
+
export declare function neighborSet(dn: DerivedNode, edges: DerivedEdge[]): Set<DerivedNode>;
|
|
69
|
+
export declare function isNeighbor(n: Node, nbrs: Set<DerivedNode>): boolean;
|
|
70
|
+
export declare function placeNodeBetweenTwo(list: Node[], dn: DerivedNode, nbrs: Set<DerivedNode>): boolean;
|
|
71
|
+
export declare function placeNodeAfterAny(list: Node[], dn: DerivedNode, nbrs: Set<DerivedNode>): boolean;
|
|
72
|
+
export declare function placeNode(dn: DerivedNode, edges: DerivedEdge[], list: Node[]): void;
|
|
73
|
+
export declare function placeResiduals(sn: Block, edges: DerivedEdge[], list: Node[]): void;
|
|
74
|
+
export declare function realignToParent(list: Node[]): void;
|
|
75
|
+
export declare function assignPositions(list: Node[], radius: number): void;
|
|
76
|
+
/** Mutable clone edge (xclone in C's clone_graph). */
|
|
77
|
+
interface XEdge {
|
|
78
|
+
tail: XNode;
|
|
79
|
+
head: XNode;
|
|
80
|
+
/** Original derived edge; null once its deletion from outg is recorded. */
|
|
81
|
+
orige: DerivedEdge | null;
|
|
82
|
+
/** Creation order — cgraph edge seq proxy. */
|
|
83
|
+
seq: number;
|
|
84
|
+
alive: boolean;
|
|
85
|
+
}
|
|
86
|
+
/** Mutable clone node. `idx` is creation order — C compares node POINTERS
|
|
87
|
+
* ((uintptr_t)n1 < n2, allocation order); creation index is the proxy. */
|
|
88
|
+
interface XNode {
|
|
89
|
+
dn: DerivedNode;
|
|
90
|
+
idx: number;
|
|
91
|
+
degree: number;
|
|
92
|
+
out: XEdge[];
|
|
93
|
+
in: XEdge[];
|
|
94
|
+
alive: boolean;
|
|
95
|
+
}
|
|
96
|
+
/** Working state threaded through the find_pair_edges passes. */
|
|
97
|
+
interface PairCtx {
|
|
98
|
+
pruned: Set<DerivedEdge>;
|
|
99
|
+
nextSeq: {
|
|
100
|
+
v: number;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The pair-edge scan for one node: delete "paired" original edges from the
|
|
105
|
+
* skeleton and add synthetic clone edges between unpaired neighbours.
|
|
106
|
+
* @see lib/circogen/blockpath.c:find_pair_edges
|
|
107
|
+
*/
|
|
108
|
+
export declare function findPairEdges(n: XNode, ctx: PairCtx): void;
|
|
109
|
+
/**
|
|
110
|
+
* Create the layout skeleton: repeatedly take the minimum-degree clone node,
|
|
111
|
+
* delete paired original edges around it, and remove it. Returns the block's
|
|
112
|
+
* edges minus the pruned ones (C's outg), which the spanning tree runs over.
|
|
113
|
+
* The deglist is qsort-sorted (descending degree, LIST_SORT -> libc qsort) —
|
|
114
|
+
* the equal-degree tie permutation decides the processing order.
|
|
115
|
+
* @see lib/circogen/blockpath.c:remove_pair_edges
|
|
116
|
+
*/
|
|
117
|
+
export declare function removePairEdges(nodes: DerivedNode[], edges: DerivedEdge[]): DerivedEdge[];
|
|
118
|
+
export declare function layoutBlock(g: SubGraph, sn: Block, minDist: number, _state: CircState): Node[];
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=blockpath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockpath.d.ts","sourceRoot":"","sources":["../../../src/layout/circo/blockpath.ts"],"names":[],"mappings":"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"}
|