@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,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Osage cluster-packing layout engine.
|
|
3
|
+
*
|
|
4
|
+
* Faithful port of lib/osage/osageinit.c. Arranges clusters and loose
|
|
5
|
+
* nodes by recursively packing bounding rectangles, then routes edges.
|
|
6
|
+
*
|
|
7
|
+
* @see lib/osage/osageinit.c
|
|
8
|
+
* @see lib/osage/osage.h
|
|
9
|
+
*/
|
|
10
|
+
import type { Graph } from '../../model/graph.js';
|
|
11
|
+
import type { Node } from '../../model/node.js';
|
|
12
|
+
import type { Box } from '../../model/geom.js';
|
|
13
|
+
import type { LayoutEngine } from '../../gvc/context.js';
|
|
14
|
+
import type { PackInfo } from '../pack/index.js';
|
|
15
|
+
/**
|
|
16
|
+
* Return the owning cluster for a node, or null if unclaimed.
|
|
17
|
+
*
|
|
18
|
+
* In C this is the PARENT(n) macro: `(Agraph_t*)ND_alg(n)`.
|
|
19
|
+
* Osage repurposes ND_alg to store cluster ownership during layout.
|
|
20
|
+
*
|
|
21
|
+
* @see lib/osage/osageinit.c:#define PARENT(n)
|
|
22
|
+
*/
|
|
23
|
+
export declare function PARENT(n: Node): Graph | null;
|
|
24
|
+
/**
|
|
25
|
+
* Return true if the subgraph is a cluster: the root, a name beginning
|
|
26
|
+
* (case-insensitively) with "cluster", OR a truthy `cluster` attribute. The
|
|
27
|
+
* name-only test dropped `cluster=true` subgraphs (2717's `domestic_cats`).
|
|
28
|
+
*
|
|
29
|
+
* @see lib/common/utils.c:695 is_a_cluster
|
|
30
|
+
*/
|
|
31
|
+
export declare function isCluster(g: Graph): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Initialize all nodes and edges in the graph for osage layout.
|
|
34
|
+
*
|
|
35
|
+
* Forces 2-D layout (ndim=2), initialises each node with neatoInitNode
|
|
36
|
+
* (sets default width/height in inches), then computes lw/rw/ht in points.
|
|
37
|
+
*
|
|
38
|
+
* @see lib/osage/osageinit.c:cluster_init_graph
|
|
39
|
+
*/
|
|
40
|
+
export declare function clusterInitGraph(g: Graph): void;
|
|
41
|
+
/**
|
|
42
|
+
* Recursively scan subgraphs of g, appending clusters to clist.
|
|
43
|
+
* Non-cluster subgraphs are transparent — their cluster children are promoted.
|
|
44
|
+
* @see lib/osage/osageinit.c:mkClusters (inner loop)
|
|
45
|
+
*/
|
|
46
|
+
export declare function mkClustersInto(g: Graph, clist: Array<Graph | null>, parent: Graph): void;
|
|
47
|
+
/**
|
|
48
|
+
* Discover all cluster subgraphs in g and populate GraphInfo.clust /
|
|
49
|
+
* GraphInfo.n_cluster for each cluster found.
|
|
50
|
+
*
|
|
51
|
+
* Non-cluster subgraphs are transparent: their cluster children are
|
|
52
|
+
* promoted to the nearest enclosing cluster ancestor.
|
|
53
|
+
*
|
|
54
|
+
* @see lib/osage/osageinit.c:mkClusters
|
|
55
|
+
*/
|
|
56
|
+
export declare function mkClusters(g: Graph, pclist: Graph[] | null, parent: Graph): void;
|
|
57
|
+
/** Clone a Box (shallow copy of nested points). */
|
|
58
|
+
export declare function cloneBox(b: Box): Box;
|
|
59
|
+
/** Build a PackInfo initialised from graph attributes. @see lib/osage/osageinit.c:layout */
|
|
60
|
+
export declare function buildPackInfo(g: Graph): PackInfo;
|
|
61
|
+
/** Holds the parallel arrays built before calling putRects. */
|
|
62
|
+
export interface OsageChildLists {
|
|
63
|
+
gs: Box[];
|
|
64
|
+
childGraphs: Graph[];
|
|
65
|
+
childNodes: Node[];
|
|
66
|
+
vals: number[];
|
|
67
|
+
}
|
|
68
|
+
/** Append one subcluster to the child lists. @see lib/osage/osageinit.c:layout (sortv via late_int) */
|
|
69
|
+
export declare function addSubcluster(lists: OsageChildLists, subg: Graph, useVals: boolean): void;
|
|
70
|
+
/** Append one loose node to the child lists and claim it for cluster g. */
|
|
71
|
+
export declare function addLooseNode(lists: OsageChildLists, n: Node, g: Graph, useVals: boolean): void;
|
|
72
|
+
/** Build the child lists for g's direct children (subclusters + loose nodes). */
|
|
73
|
+
export declare function buildChildLists(g: Graph, nClust: number, nvs: number, useVals: boolean): OsageChildLists;
|
|
74
|
+
/** Raw bounding box accumulator returned by applyOffsets. */
|
|
75
|
+
export interface RawBB {
|
|
76
|
+
llx: number;
|
|
77
|
+
lly: number;
|
|
78
|
+
urx: number;
|
|
79
|
+
ury: number;
|
|
80
|
+
}
|
|
81
|
+
/** Apply putRects translation offsets; return the union bounding box. */
|
|
82
|
+
export declare function applyOffsets(lists: OsageChildLists, pts: Array<{
|
|
83
|
+
x: number;
|
|
84
|
+
y: number;
|
|
85
|
+
}>): RawBB;
|
|
86
|
+
/** Widen rbb horizontally to fit the graph label (if any). */
|
|
87
|
+
export declare function applyLabelExpansion(g: Graph, total: number, rbb: RawBB): RawBB;
|
|
88
|
+
/** Add margin and border padding to rbb.
|
|
89
|
+
* C: rootbb.LL.y -= margin + GD_border(g)[BOTTOM_IX].y (index 0, NOT 3);
|
|
90
|
+
* rootbb.UR.y += margin + GD_border(g)[TOP_IX].y.
|
|
91
|
+
* @see lib/osage/osageinit.c:186-187, lib/common/const.h:111-114 */
|
|
92
|
+
export declare function addMarginAndBorder(g: Graph, margin: number, rbb: RawBB): RawBB;
|
|
93
|
+
/** Subtract rbb.ll from all child cluster bbs (translate to origin). */
|
|
94
|
+
export declare function originShiftClusters(childGraphs: Graph[], rbb: RawBB): void;
|
|
95
|
+
/** Subtract rbb.ll from all child node coords (translate to origin). */
|
|
96
|
+
export declare function originShiftNodes(childNodes: Node[], rbb: RawBB): void;
|
|
97
|
+
/** Translate all children so the cluster's LL becomes (0,0). */
|
|
98
|
+
export declare function translateToOrigin(lists: OsageChildLists, rbb: RawBB): void;
|
|
99
|
+
/**
|
|
100
|
+
* Recurse into each direct subcluster; return total node count across them.
|
|
101
|
+
* @see lib/osage/osageinit.c:layout (subcluster recursion)
|
|
102
|
+
*/
|
|
103
|
+
export declare function recurseSubclusters(g: Graph, nClust: number, depth: number): number;
|
|
104
|
+
/**
|
|
105
|
+
* Pack the direct children of g and set g.info.bb.
|
|
106
|
+
* @see lib/osage/osageinit.c:layout (rect-packing block)
|
|
107
|
+
*/
|
|
108
|
+
export declare function packChildren(g: Graph, nClust: number, nvs: number, total: number, depth: number): void;
|
|
109
|
+
/**
|
|
110
|
+
* Recursively pack all direct children (subclusters + loose nodes) of g
|
|
111
|
+
* into a bounding box. After this pass every cluster has LL=(0,0).
|
|
112
|
+
*
|
|
113
|
+
* @see lib/osage/osageinit.c:layout
|
|
114
|
+
*/
|
|
115
|
+
export declare function osageLayoutRec(g: Graph, depth: number): void;
|
|
116
|
+
/** Shift directly-owned node coords by bb.ll to convert to absolute. */
|
|
117
|
+
export declare function repositionNodes(g: Graph, bb: Box): void;
|
|
118
|
+
/** Shift a subcluster bb by parentBb.ll. */
|
|
119
|
+
export declare function shiftSubclusterBb(subg: Graph, parentBb: Box): void;
|
|
120
|
+
/**
|
|
121
|
+
* Convert local (cluster-relative) coordinates to absolute root-relative
|
|
122
|
+
* coordinates by walking the cluster tree top-down and accumulating bb.ll.
|
|
123
|
+
*
|
|
124
|
+
* @see lib/osage/osageinit.c:reposition
|
|
125
|
+
*/
|
|
126
|
+
export declare function osageReposition(g: Graph, depth: number): void;
|
|
127
|
+
/**
|
|
128
|
+
* Main osage layout entry point.
|
|
129
|
+
*
|
|
130
|
+
* Pipeline:
|
|
131
|
+
* 1. clusterInitGraph — node/edge init
|
|
132
|
+
* 2. mkClusters — cluster discovery
|
|
133
|
+
* 3. osageLayoutRec — recursive rectangle packing
|
|
134
|
+
* 4. osageReposition — convert to absolute coordinates
|
|
135
|
+
* 5. splineEdges — edge routing (skipped when EDGETYPE_NONE)
|
|
136
|
+
*
|
|
137
|
+
* @see lib/osage/osageinit.c:osage_layout
|
|
138
|
+
*/
|
|
139
|
+
export declare function osageLayout(g: Graph): void;
|
|
140
|
+
/** Recursively clear cluster arrays from g and all subclusters. */
|
|
141
|
+
export declare function cleanupGraphs(g: Graph): void;
|
|
142
|
+
/**
|
|
143
|
+
* Free all layout-specific memory attached to g.
|
|
144
|
+
*
|
|
145
|
+
* Clears alg (osage ownership tag) from all nodes and removes cluster
|
|
146
|
+
* arrays from GraphInfo.
|
|
147
|
+
*
|
|
148
|
+
* @see lib/osage/osageinit.c:osage_cleanup
|
|
149
|
+
*/
|
|
150
|
+
export declare function osageCleanup(g: Graph): void;
|
|
151
|
+
/**
|
|
152
|
+
* Osage layout engine plugin object, suitable for registration with
|
|
153
|
+
* GvcContext.
|
|
154
|
+
*
|
|
155
|
+
* @see lib/plugin/neato_layout/gvlayout_neato_layout.c
|
|
156
|
+
*/
|
|
157
|
+
export declare const OSAGE_LAYOUT_ENGINE: LayoutEngine;
|
|
158
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/osage/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Osage recursive layout helpers.
|
|
3
|
+
*
|
|
4
|
+
* @see lib/osage/osageinit.c:layout
|
|
5
|
+
* @see lib/osage/osageinit.c:reposition
|
|
6
|
+
*/
|
|
7
|
+
import type { Graph } from '../../model/graph.js';
|
|
8
|
+
import type { Box, Point } from '../../model/geom.js';
|
|
9
|
+
import type { PackInfo } from '../pack/index.js';
|
|
10
|
+
import type { ChildLists } from './types.js';
|
|
11
|
+
export type { ChildLists };
|
|
12
|
+
/** Build and populate a PackInfo from graph attributes. @see lib/osage/osageinit.c:layout */
|
|
13
|
+
export declare const buildPackInfo: (g: Graph) => PackInfo;
|
|
14
|
+
/**
|
|
15
|
+
* Build child arrays for putRects.
|
|
16
|
+
* @see lib/osage/osageinit.c:layout (child list construction)
|
|
17
|
+
*/
|
|
18
|
+
export declare const buildChildLists: (g: Graph, nClust: number, nvs: number, p: PackInfo) => ChildLists;
|
|
19
|
+
/**
|
|
20
|
+
* Apply putRects offsets to child bbs/coords; return union bounding box.
|
|
21
|
+
* @see lib/osage/osageinit.c:layout (offset application loop)
|
|
22
|
+
*/
|
|
23
|
+
export declare const applyOffsets: (lists: ChildLists, pts: Point[]) => Box;
|
|
24
|
+
/**
|
|
25
|
+
* Widen union bb if the graph label is wider than packed content.
|
|
26
|
+
* @see lib/osage/osageinit.c:layout (GD_label block)
|
|
27
|
+
*/
|
|
28
|
+
export declare const applyLabelExpansion: (g: Graph, total: number, u: Box) => Box;
|
|
29
|
+
/**
|
|
30
|
+
* Add margin and label-border padding to the union bounding box.
|
|
31
|
+
* @see lib/osage/osageinit.c:layout (margin/border block)
|
|
32
|
+
*/
|
|
33
|
+
export declare const addMarginAndBorder: (g: Graph, margin: number, u: Box) => Box;
|
|
34
|
+
/**
|
|
35
|
+
* Subtract union.ll from all child positions so this cluster's LL = (0,0).
|
|
36
|
+
* @see lib/osage/osageinit.c:layout (translate-to-origin loop)
|
|
37
|
+
*/
|
|
38
|
+
export declare const translateToOrigin: (lists: ChildLists, u: Box) => void;
|
|
39
|
+
/**
|
|
40
|
+
* Recursively pack all direct children (subclusters + loose nodes) of g.
|
|
41
|
+
* @see lib/osage/osageinit.c:layout
|
|
42
|
+
*/
|
|
43
|
+
export declare const osageLayoutRec: (g: Graph, depth: number) => void;
|
|
44
|
+
/**
|
|
45
|
+
* Convert cluster-relative coordinates to absolute root-relative coordinates.
|
|
46
|
+
* @see lib/osage/osageinit.c:reposition
|
|
47
|
+
*/
|
|
48
|
+
export declare const osageReposition: (g: Graph, depth: number) => void;
|
|
49
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/layout/osage/layout.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,YAAY,EAAE,UAAU,EAAE,CAAC;AAsB3B,6FAA6F;AAC7F,eAAO,MAAM,aAAa,GAAI,GAAG,KAAK,KAAG,QAMxC,CAAC;AAiCF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,GAAG,KAAK,EAAE,QAAQ,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,QAAQ,KAAG,UAMpF,CAAC;AAyBF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,UAAU,EAAE,KAAK,KAAK,EAAE,KAAG,GAQ9D,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,GAAG,KAAK,EAAE,OAAO,MAAM,EAAE,GAAG,GAAG,KAAG,GAOrE,CAAC;AAKF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,GAAG,KAAK,EAAE,QAAQ,MAAM,EAAE,GAAG,GAAG,KAAG,GAInE,CAAC;AAeJ;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,UAAU,EAAE,GAAG,GAAG,KAAG,IAG7D,CAAC;AA6BF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,GAAG,KAAK,EAAE,OAAO,MAAM,KAAG,IAQxD,CAAC;AAqBF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,GAAG,KAAK,EAAE,OAAO,MAAM,KAAG,IASzD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for the osage layout module.
|
|
3
|
+
*
|
|
4
|
+
* Kept in a separate file so lizard does not conflate interface field
|
|
5
|
+
* names with function parameter counts in layout.ts.
|
|
6
|
+
*
|
|
7
|
+
* @see lib/osage/osageinit.c
|
|
8
|
+
*/
|
|
9
|
+
import type { Graph } from '../../model/graph.js';
|
|
10
|
+
import type { Node } from '../../model/node.js';
|
|
11
|
+
import type { Box } from '../../model/geom.js';
|
|
12
|
+
/**
|
|
13
|
+
* Parallel arrays describing the direct children of a cluster, built
|
|
14
|
+
* before calling putRects.
|
|
15
|
+
*
|
|
16
|
+
* @see lib/osage/osageinit.c:layout (gs / children / vals lists)
|
|
17
|
+
*/
|
|
18
|
+
export interface ChildLists {
|
|
19
|
+
/** Bounding boxes of all children (subclusters first, then loose nodes). */
|
|
20
|
+
gs: Box[];
|
|
21
|
+
/** Subcluster graphs, in the same index order as the first N entries of gs. */
|
|
22
|
+
childGraphs: Graph[];
|
|
23
|
+
/** Loose nodes, in the same index order as entries N+ of gs. */
|
|
24
|
+
childNodes: Node[];
|
|
25
|
+
/** Per-child sort values for l_array / PK_USER_VALS mode. */
|
|
26
|
+
vals: number[];
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/layout/osage/types.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,EAAE,EAAE,GAAG,EAAE,CAAC;IACV,+EAA+E;IAC/E,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,gEAAgE;IAChE,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Array-based rectangle packing algorithm.
|
|
3
|
+
*
|
|
4
|
+
* @see lib/pack/pack.c:arrayRects
|
|
5
|
+
*/
|
|
6
|
+
import type { Box, Point } from '../../model/geom.js';
|
|
7
|
+
import { type PackInfo } from './types.js';
|
|
8
|
+
/** Internal info for one rectangle during array packing. */
|
|
9
|
+
export interface AInfo {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
index: number;
|
|
13
|
+
}
|
|
14
|
+
/** Grid layout dimensions. */
|
|
15
|
+
export interface GridDims {
|
|
16
|
+
nc: number;
|
|
17
|
+
nr: number;
|
|
18
|
+
rowMajor: boolean;
|
|
19
|
+
}
|
|
20
|
+
/** Mutable column/row cursor for grid traversal. */
|
|
21
|
+
export interface GridCursor {
|
|
22
|
+
col: {
|
|
23
|
+
val: number;
|
|
24
|
+
};
|
|
25
|
+
row: {
|
|
26
|
+
val: number;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Advance a grid cursor by one cell.
|
|
31
|
+
*
|
|
32
|
+
* @see lib/pack/pack.c:INC
|
|
33
|
+
*/
|
|
34
|
+
export declare function inc(cursor: GridCursor, dims: GridDims): void;
|
|
35
|
+
/**
|
|
36
|
+
* Compute grid dimensions and row-major flag from pinfo.
|
|
37
|
+
*
|
|
38
|
+
* @see lib/pack/pack.c:arrayRects (grid setup block)
|
|
39
|
+
*/
|
|
40
|
+
export declare function computeGrid(ng: number, pinfo: PackInfo): GridDims;
|
|
41
|
+
/**
|
|
42
|
+
* Build AInfo array from bounding boxes.
|
|
43
|
+
*
|
|
44
|
+
* @see lib/pack/pack.c:arrayRects (ainfo construction)
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildAInfo(ng: number, gs: Box[], margin: number): AInfo[];
|
|
47
|
+
/**
|
|
48
|
+
* Sort comparator: ascending by user vals[index].
|
|
49
|
+
*
|
|
50
|
+
* @see lib/pack/pack.c:ucmpf
|
|
51
|
+
*/
|
|
52
|
+
export declare function cmpByUserVals(a: AInfo, b: AInfo, vals: number[]): number;
|
|
53
|
+
/**
|
|
54
|
+
* Sort comparator: descending by width+height.
|
|
55
|
+
*
|
|
56
|
+
* @see lib/pack/pack.c:acmpf
|
|
57
|
+
*/
|
|
58
|
+
export declare function cmpByPerimeter(a: AInfo, b: AInfo): number;
|
|
59
|
+
/**
|
|
60
|
+
* Sort AInfo array according to pinfo sort flags.
|
|
61
|
+
*
|
|
62
|
+
* @see lib/pack/pack.c:arrayRects (sort block)
|
|
63
|
+
*/
|
|
64
|
+
export declare function sortAInfo(info: AInfo[], pinfo: PackInfo): AInfo[];
|
|
65
|
+
/**
|
|
66
|
+
* Accumulate max width per column and max height per row from sorted info.
|
|
67
|
+
*
|
|
68
|
+
* @see lib/pack/pack.c:arrayRects (column/row max pass)
|
|
69
|
+
*/
|
|
70
|
+
export declare function accumulateMaxima(sinfo: AInfo[], widths: number[], heights: number[], dims: GridDims): void;
|
|
71
|
+
/**
|
|
72
|
+
* Convert widths to cumulative x positions (left to right).
|
|
73
|
+
*
|
|
74
|
+
* @see lib/pack/pack.c:arrayRects (widths prefix-sum)
|
|
75
|
+
*/
|
|
76
|
+
export declare function widthsToCumulative(widths: number[]): void;
|
|
77
|
+
/**
|
|
78
|
+
* Convert heights to cumulative y positions (bottom to top).
|
|
79
|
+
*
|
|
80
|
+
* @see lib/pack/pack.c:arrayRects (heights prefix-sum)
|
|
81
|
+
*/
|
|
82
|
+
export declare function heightsToCumulative(heights: number[], nr: number): void;
|
|
83
|
+
/**
|
|
84
|
+
* Compute x placement for one rect using alignment flags.
|
|
85
|
+
*
|
|
86
|
+
* @see lib/pack/pack.c:arrayRects (placement x)
|
|
87
|
+
*/
|
|
88
|
+
export declare function placeX(flags: number, widths: number[], col: number, bb: Box): number;
|
|
89
|
+
/**
|
|
90
|
+
* Compute y placement for one rect using alignment flags.
|
|
91
|
+
*
|
|
92
|
+
* @see lib/pack/pack.c:arrayRects (placement y)
|
|
93
|
+
*/
|
|
94
|
+
export declare function placeY(flags: number, heights: number[], row: number, bb: Box): number;
|
|
95
|
+
/** Accumulated position tables for array packing. */
|
|
96
|
+
interface PosTables {
|
|
97
|
+
widths: number[];
|
|
98
|
+
heights: number[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Position rects into the places array using sorted info and cumulative tables.
|
|
102
|
+
*
|
|
103
|
+
* @see lib/pack/pack.c:arrayRects (position rects block)
|
|
104
|
+
*/
|
|
105
|
+
export declare function positionRects(sinfo: AInfo[], gs: Box[], flags: number, tables: PosTables, dims: GridDims): Point[];
|
|
106
|
+
/**
|
|
107
|
+
* Pack rectangles into an array layout.
|
|
108
|
+
* Returns translation points indexed by original rectangle index.
|
|
109
|
+
*
|
|
110
|
+
* @see lib/pack/pack.c:arrayRects
|
|
111
|
+
*/
|
|
112
|
+
export declare function arrayRects(ng: number, gs: Box[], pinfo: PackInfo): Point[] | null;
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=array-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array-pack.d.ts","sourceRoot":"","sources":["../../../src/layout/pack/array-pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public API for rectangle packing and connected-component decomposition.
|
|
3
|
+
* Ports lib/pack/pack.c and lib/pack/ccomps.c.
|
|
4
|
+
*
|
|
5
|
+
* @see lib/pack/pack.c
|
|
6
|
+
* @see lib/pack/ccomps.c
|
|
7
|
+
*/
|
|
8
|
+
import type { Graph } from '../../model/graph.js';
|
|
9
|
+
import type { Node } from '../../model/node.js';
|
|
10
|
+
import type { Edge } from '../../model/edge.js';
|
|
11
|
+
import type { Box, Point } from '../../model/geom.js';
|
|
12
|
+
import { PackMode, PackInfo, PS2INCH, PK_COL_MAJOR, PK_USER_VALS, PK_LEFT_ALIGN, PK_RIGHT_ALIGN, PK_TOP_ALIGN, PK_BOT_ALIGN, PK_INPUT_ORDER } from './types.js';
|
|
13
|
+
export { PackMode, PS2INCH, PK_COL_MAJOR, PK_USER_VALS, PK_LEFT_ALIGN, PK_RIGHT_ALIGN, PK_TOP_ALIGN, PK_BOT_ALIGN, PK_INPUT_ORDER, };
|
|
14
|
+
export type { PackInfo };
|
|
15
|
+
export { ps2inch, inch2ps } from './types.js';
|
|
16
|
+
/**
|
|
17
|
+
* Compute bounding-box packing offsets for ng bare rectangles.
|
|
18
|
+
* Returns null for Aspect mode (not implemented in C) or Node/Cluster mode
|
|
19
|
+
* (no node geometry available).
|
|
20
|
+
* @see lib/pack/pack.c:putRects
|
|
21
|
+
*/
|
|
22
|
+
export declare function putRects(ng: number, bbs: Box[], pinfo: PackInfo): Point[] | null;
|
|
23
|
+
/**
|
|
24
|
+
* Pack bare rectangles; updates bbs in place. Returns 0 on success.
|
|
25
|
+
* @see lib/pack/pack.c:packRects
|
|
26
|
+
*/
|
|
27
|
+
export declare function packRects(ng: number, bbs: Box[], pinfo: PackInfo): number;
|
|
28
|
+
/** Node x-coordinate (0 if unset). */
|
|
29
|
+
export declare function nodeCoordX(n: Node): number;
|
|
30
|
+
/** Node y-coordinate (0 if unset). */
|
|
31
|
+
export declare function nodeCoordY(n: Node): number;
|
|
32
|
+
/** Expand accumulated bounds by one node. */
|
|
33
|
+
export declare function expandBounds(b: {
|
|
34
|
+
llx: number;
|
|
35
|
+
lly: number;
|
|
36
|
+
urx: number;
|
|
37
|
+
ury: number;
|
|
38
|
+
}, n: Node, margin: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Compute a graph's bounding box: node extents, plus every routed edge spline
|
|
41
|
+
* and edge label.
|
|
42
|
+
*
|
|
43
|
+
* This is the port of C's `compute_bb` — the final bb of every non-dot engine
|
|
44
|
+
* (neato/fdp/sfdp/circo/twopi/osage all reach it, and `pack` uses it for
|
|
45
|
+
* component boxes; dot sets its own bb in `set_aspect`). It was node-only until
|
|
46
|
+
* 2026-07-12, which truncated the box of any graph whose edges leave the node
|
|
47
|
+
* hull; see `expandBoundsByEdge`.
|
|
48
|
+
*
|
|
49
|
+
* DELIBERATE DEVIATION from C's `compute_bb`, which also expands over node
|
|
50
|
+
* xlabels, cluster bbs, and the graph label: the port already grows the bb for
|
|
51
|
+
* those in dedicated passes (the xlabel placement pass, `addClusters`, and
|
|
52
|
+
* `placeGraphLabel`, each of which runs after this call and expands
|
|
53
|
+
* `g.info.bb`). Folding them in here as well would double-expand rather than
|
|
54
|
+
* match C. The edge arm has no such counterpart pass — it was simply missing.
|
|
55
|
+
*
|
|
56
|
+
* @see lib/common/utils.c:633 compute_bb
|
|
57
|
+
* @see lib/neatogen/neatoinit.c:1419 (compute_bb called right after spline_edges)
|
|
58
|
+
* @see lib/pack/pack.c:801 computeBB
|
|
59
|
+
*/
|
|
60
|
+
export declare function computeSubgraphBB(g: Graph, margin: number, refineSplines?: boolean): Box;
|
|
61
|
+
/** Extract bounding boxes for an array of subgraphs. */
|
|
62
|
+
export declare function subgraphBBs(gs: Graph[], margin: number): Box[];
|
|
63
|
+
/**
|
|
64
|
+
* Compute packing translation deltas for ng pre-laid-out subgraphs.
|
|
65
|
+
* Bounding boxes are raw (C compute_bb has no margin; the packers add
|
|
66
|
+
* the margin themselves).
|
|
67
|
+
* @see lib/pack/pack.c:putGraphs
|
|
68
|
+
*/
|
|
69
|
+
export declare function putGraphs(ng: number, gs: Graph[], root: Graph, pinfo: PackInfo): Point[] | null;
|
|
70
|
+
/**
|
|
71
|
+
* Pack subgraphs; returns 0 on success.
|
|
72
|
+
* @see lib/pack/pack.c:packGraphs
|
|
73
|
+
*/
|
|
74
|
+
export declare function packGraphs(ng: number, gs: Graph[], root: Graph, pinfo: PackInfo): number;
|
|
75
|
+
/**
|
|
76
|
+
* Pack subgraphs and update root bounding box.
|
|
77
|
+
* @see lib/pack/pack.c:packSubgraphs
|
|
78
|
+
*/
|
|
79
|
+
export declare function packSubgraphs(ng: number, gs: Graph[], root: Graph, pinfo: PackInfo): number;
|
|
80
|
+
/** Shift all nodes in g by (dx, dy) points. @see lib/pack/pack.c:shiftGraph */
|
|
81
|
+
/**
|
|
82
|
+
* Shift a graph's bb, label position, and all nested cluster bbs.
|
|
83
|
+
* @see lib/pack/pack.c:shiftGraph
|
|
84
|
+
*/
|
|
85
|
+
export declare function shiftGraphBBs(g: Graph, dx: number, dy: number): void;
|
|
86
|
+
/** Translate an edge's spline points and all four label kinds.
|
|
87
|
+
* C shiftEdge moves ED_label, ED_xlabel, ED_head_label, ED_tail_label — every
|
|
88
|
+
* one, in that order — before the spline. Omitting the port (head/tail) or
|
|
89
|
+
* external labels leaves them behind the shift delta when normalizeGraphBB
|
|
90
|
+
* translates a label-expanded drawing to origin (twopi 144 head/tail-label
|
|
91
|
+
* x-offset). @see lib/pack/pack.c:shiftEdge */
|
|
92
|
+
export declare function shiftEdgePoints(e: Edge, dx: number, dy: number): void;
|
|
93
|
+
export declare function shiftOneGraph(g: Graph, dx: number, dy: number): void;
|
|
94
|
+
/**
|
|
95
|
+
* Normalize bb.ll to (0,0) by shifting all nodes, edges, and the bb itself.
|
|
96
|
+
* Uses g.info.bb.ll (which includes spline extent from clipAndInstall) as the
|
|
97
|
+
* translation offset — matching C's translate_drawing which reads GD_bb(g).LL
|
|
98
|
+
* after clip_and_install has expanded it via update_bb_bz. A node-only
|
|
99
|
+
* recompute here would discard spline extent (twopi-self-loop divergence).
|
|
100
|
+
* @see lib/common/postproc.c:translate_drawing
|
|
101
|
+
* @see lib/common/splines.c:clip_and_install
|
|
102
|
+
*/
|
|
103
|
+
export declare function normalizeGraphBB(g: Graph): void;
|
|
104
|
+
/**
|
|
105
|
+
* Apply packing translation DELTAS to subgraphs; shifts coords, pos,
|
|
106
|
+
* bbs, labels, and cluster bbs. Spline shifting (doSplines) is not
|
|
107
|
+
* ported — no packing caller has routed edges before packing yet.
|
|
108
|
+
* @see lib/pack/pack.c:shiftGraphs
|
|
109
|
+
*/
|
|
110
|
+
export declare function shiftGraphs(ng: number, gs: Graph[], pp: Point[], _root: Graph, _doSplines: boolean): number;
|
|
111
|
+
/** DFS to collect connected component nodes. @see lib/pack/ccomps.c */
|
|
112
|
+
export declare function dfsCollect(g: Graph, start: Node, visited: Set<string>): Node[];
|
|
113
|
+
/** Build a subgraph containing only nodes. @see lib/pack/ccomps.c */
|
|
114
|
+
export declare function buildSubgraph(root: Graph, nodes: Node[], name: string): Graph;
|
|
115
|
+
/**
|
|
116
|
+
* Decompose g into connected components (nodes only, no edges).
|
|
117
|
+
* @see lib/pack/ccomps.c:ccomps
|
|
118
|
+
*/
|
|
119
|
+
export declare function ccomps(g: Graph, pfx: string): Graph[];
|
|
120
|
+
/**
|
|
121
|
+
* ccomps variant — same as ccomps for this port.
|
|
122
|
+
* @see lib/pack/ccomps.c:cccomps
|
|
123
|
+
*/
|
|
124
|
+
export declare function cccomps(g: Graph, pfx: string): Graph[];
|
|
125
|
+
/**
|
|
126
|
+
* ccomps with pinned-node detection.
|
|
127
|
+
* @see lib/pack/ccomps.c:pccomps
|
|
128
|
+
*/
|
|
129
|
+
export declare function pccomps(g: Graph, pfx: string): {
|
|
130
|
+
graphs: Graph[];
|
|
131
|
+
pinned: boolean;
|
|
132
|
+
};
|
|
133
|
+
/** True if g has exactly one connected component. @see lib/pack/ccomps.c:isConnected */
|
|
134
|
+
export declare function isConnected(g: Graph): boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Consume an optional `_<flags>` suffix after "array", OR-ing flag
|
|
137
|
+
* bits into pinfo. Returns the rest of the string (possible column
|
|
138
|
+
* count). @see lib/pack/pack.c:chkFlags
|
|
139
|
+
*/
|
|
140
|
+
export declare function chkFlags(p: string, pinfo: PackInfo): string;
|
|
141
|
+
/** Parse pack mode from string attribute. @see lib/pack/pack.c:parsePackModeInfo */
|
|
142
|
+
export declare function parsePackModeInfo(p: string, dflt: PackMode, pinfo: PackInfo): PackMode;
|
|
143
|
+
/** Read pack mode from the "packmode" graph attr. @see lib/pack/pack.c:getPackModeInfo */
|
|
144
|
+
export declare function getPackModeInfo(g: Graph, dflt: PackMode, pinfo: PackInfo): PackMode;
|
|
145
|
+
/** Get pack mode from graph. @see lib/pack/pack.c:getPackMode */
|
|
146
|
+
export declare function getPackMode(g: Graph, dflt: PackMode): PackMode;
|
|
147
|
+
/**
|
|
148
|
+
* Read the "pack" graph attr: unset → notDef; non-negative int →
|
|
149
|
+
* value; true-ish ('t'/'T') → dflt; otherwise notDef.
|
|
150
|
+
* @see lib/pack/pack.c:getPack
|
|
151
|
+
*/
|
|
152
|
+
export declare function getPack(g: Graph, notDef: number, dflt: number): number;
|
|
153
|
+
/** Populate PackInfo from graph attributes. @see lib/pack/pack.c:getPackInfo */
|
|
154
|
+
export declare function getPackInfo(g: Graph, dflt: PackMode, dfltMargin: number, pinfo: PackInfo): PackMode;
|
|
155
|
+
/** @see lib/pack/ccomps.c:mapClust */
|
|
156
|
+
export declare function mapClust(cl: Graph): Graph;
|
|
157
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/pack/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyomino-based rectangle packing algorithm.
|
|
3
|
+
*
|
|
4
|
+
* Based on "Disconnected Graph Layout and the Polyomino Packing Approach",
|
|
5
|
+
* K. Freivalds et al., GD'01, LNCS 2265, pp. 378-391.
|
|
6
|
+
*
|
|
7
|
+
* @see lib/pack/pack.c:polyRects
|
|
8
|
+
* @see lib/pack/pack.c:computeStep
|
|
9
|
+
* @see lib/pack/pack.c:placeGraph
|
|
10
|
+
* @see lib/pack/pack.c:fits
|
|
11
|
+
*/
|
|
12
|
+
import type { Box, Point } from '../../model/geom.js';
|
|
13
|
+
import type { PackInfo } from './types.js';
|
|
14
|
+
/** Grid cell coverage info for one rectangle. */
|
|
15
|
+
export interface GInfo {
|
|
16
|
+
perim: number;
|
|
17
|
+
cells: Point[];
|
|
18
|
+
index: number;
|
|
19
|
+
}
|
|
20
|
+
/** A set of occupied grid cells (string-keyed for O(1) lookup). */
|
|
21
|
+
export type PointSet = Set<string>;
|
|
22
|
+
/**
|
|
23
|
+
* Encode a grid point as a canonical string key.
|
|
24
|
+
*
|
|
25
|
+
* C keys its PointSet dict on the `pointf` cell itself (exact double compare,
|
|
26
|
+
* no rounding). Every cell coordinate reaching here is an exact integer grid
|
|
27
|
+
* index produced by genBox's `cround(cval(...))`, so the rounding mode is
|
|
28
|
+
* unobservable; `cround` is used only so no `Math.round` survives in a layout
|
|
29
|
+
* coordinate path.
|
|
30
|
+
* @see lib/common/pointset.h:45 (insertPS/inPS take pointf)
|
|
31
|
+
*/
|
|
32
|
+
export declare function psKey(x: number, y: number): string;
|
|
33
|
+
/** Check if a cell is in the point set. @see lib/pack/pack.c:inPS */
|
|
34
|
+
export declare function inPS(ps: PointSet, p: Point): boolean;
|
|
35
|
+
/** Insert a cell into the point set. @see lib/pack/pack.c:insertPS */
|
|
36
|
+
export declare function insertPS(ps: PointSet, p: Point): void;
|
|
37
|
+
/**
|
|
38
|
+
* Compute the polyomino grid step size (positive root of quadratic).
|
|
39
|
+
*
|
|
40
|
+
* @see lib/pack/pack.c:computeStep
|
|
41
|
+
*/
|
|
42
|
+
export declare function computeStep(ng: number, bbs: Box[], margin: number): number;
|
|
43
|
+
/**
|
|
44
|
+
* Number of grid cells required to cover length x at cell size s.
|
|
45
|
+
*
|
|
46
|
+
* @see lib/pack/pack.c:GRID
|
|
47
|
+
*/
|
|
48
|
+
export declare function gridCells(x: number, s: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* Grid cell index containing coordinate v at cell size s.
|
|
51
|
+
*
|
|
52
|
+
* C's `CVAL` macro is applied to the DOUBLE `pointf` fields inside `CELL`
|
|
53
|
+
* (genBox), so the division is floating-point — it yields a fractional cell
|
|
54
|
+
* coordinate that genBox then rounds (see {@link cround}). Modelling it with
|
|
55
|
+
* integer/truncating division (the previous `Math.floor`/`Math.trunc` form)
|
|
56
|
+
* diverges: e.g. `CVAL(-4, 5)` is `((-4+1)/5)-1 = -1.6` (→ round -2), not
|
|
57
|
+
* `-1`. That shrank every packed box's footprint by a cell on the negative
|
|
58
|
+
* side, packing the osage pack_neato2 grid tighter than native.
|
|
59
|
+
*
|
|
60
|
+
* @see lib/pack/pack.c:CVAL / CELL
|
|
61
|
+
*/
|
|
62
|
+
export declare function cval(v: number, s: number): number;
|
|
63
|
+
/** Parameters for genBox. */
|
|
64
|
+
export interface GenBoxParams {
|
|
65
|
+
bb: Box;
|
|
66
|
+
ssize: number;
|
|
67
|
+
margin: number;
|
|
68
|
+
idx: number;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Generate the grid cell coverage for a bounding box.
|
|
72
|
+
*
|
|
73
|
+
* @see lib/pack/pack.c:genBox
|
|
74
|
+
*/
|
|
75
|
+
export declare function genBox(p: GenBoxParams): GInfo;
|
|
76
|
+
/** Context passed to fits() and placeGraph(). */
|
|
77
|
+
export interface PlaceCtx {
|
|
78
|
+
ps: PointSet;
|
|
79
|
+
step: number;
|
|
80
|
+
bbs: Box[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Test whether any shifted cell collides with the occupied set.
|
|
84
|
+
* Returns true if there is a collision (polyomino does NOT fit).
|
|
85
|
+
*
|
|
86
|
+
* @see lib/pack/pack.c:fits (collision check loop)
|
|
87
|
+
*/
|
|
88
|
+
export declare function hasCollision(cells: Point[], dx: number, dy: number, ps: PointSet): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Mark all shifted cells as occupied in the point set.
|
|
91
|
+
*
|
|
92
|
+
* @see lib/pack/pack.c:fits (cell insertion loop)
|
|
93
|
+
*/
|
|
94
|
+
export declare function markCells(cells: Point[], dx: number, dy: number, ps: PointSet): void;
|
|
95
|
+
/**
|
|
96
|
+
* Test if a polyomino fits at (x,y); if so, record placement and fill cells.
|
|
97
|
+
*
|
|
98
|
+
* @see lib/pack/pack.c:fits
|
|
99
|
+
*/
|
|
100
|
+
export declare function fits(x: number, y: number, info: GInfo, ctx: PlaceCtx): Point | null;
|
|
101
|
+
/**
|
|
102
|
+
* Try centered placement for the first graph (i === 0).
|
|
103
|
+
*
|
|
104
|
+
* @see lib/pack/pack.c:placeGraph (i==0 branch)
|
|
105
|
+
*/
|
|
106
|
+
export declare function tryCenter(info: GInfo, ctx: PlaceCtx, margin: number): Point | null;
|
|
107
|
+
/**
|
|
108
|
+
* Search concentric square spiral for a placement of the polyomino.
|
|
109
|
+
*
|
|
110
|
+
* @see lib/pack/pack.c:placeGraph
|
|
111
|
+
*/
|
|
112
|
+
export declare function placeGraph(i: number, info: GInfo, ctx: PlaceCtx, margin: number): Point;
|
|
113
|
+
/**
|
|
114
|
+
* Sort GInfo by descending perimeter.
|
|
115
|
+
*
|
|
116
|
+
* @see lib/pack/pack.c:cmpf
|
|
117
|
+
*/
|
|
118
|
+
export declare function cmpByGPerimeter(a: GInfo, b: GInfo): number;
|
|
119
|
+
/**
|
|
120
|
+
* Pack rectangles using polyomino placement.
|
|
121
|
+
* Returns translation points indexed by original rectangle index.
|
|
122
|
+
*
|
|
123
|
+
* @see lib/pack/pack.c:polyRects
|
|
124
|
+
*/
|
|
125
|
+
export declare function polyRects(ng: number, bbs: Box[], pinfo: PackInfo): Point[] | null;
|
|
126
|
+
//# sourceMappingURL=poly-pack.d.ts.map
|