(index ("default-width" 0) ("default-height" 165) ("default-font-size" 331) ("default-node-attributes" 512) ("default-edge-attributes" 711) ("default-graph-attributes" 910) ("write-graph-preamble" 1113) ("write-graph-preamble" 1113) ("write-graph-preamble" 1113) ("write-graph-postamble" 3026) ("pos" 3222) ("write-node" 3588) ("write-node" 3588) ("write-edge" 4051) ("write-edge" 4051))
(def (sig (parameter "default-width → 1600" (id default-width))) (p "Default width for graphs") (highlight scheme "(define default-width (make-parameter 1600))"))
(def (sig (parameter "default-height → 900" (id default-height))) (p "Default width for graphs") (highlight scheme "(define default-height (make-parameter 900))"))
(def (sig (parameter "default-font-size → 48.0" (id default-font-size))) (p "Default font-size for graphs") (highlight scheme "(define default-font-size (make-parameter 48.0))"))
(def (sig (parameter "default-node-attributes → (quote ())" (id default-node-attributes))) (p "Default node attributes") (highlight scheme "(define default-node-attributes (make-parameter '()))"))
(def (sig (parameter "default-edge-attributes → (quote ())" (id default-edge-attributes))) (p "Default edge attributes") (highlight scheme "(define default-edge-attributes (make-parameter '()))"))
(def (sig (parameter "default-graph-attributes → (quote ())" (id default-graph-attributes))) (p "Default graph attributes") (highlight scheme "(define default-graph-attributes (make-parameter '()))"))
(def (sig (procedure "(write-graph-preamble) → unspecified" (id write-graph-preamble)) (procedure "(write-graph-preamble graph-attributes) → unspecified" (id write-graph-preamble)) (procedure "(write-graph-preamble graph-attributes width height font-size) → unspecified" (id write-graph-preamble))) (p "Write a graph preamble.") (dl (dt (tt "graph-attributes")) (dd "Attributes of the graph") (dt (tt "width")) (dd "Width in pixels") (dt (tt "height")) (dd "Height in pixels") (dt (tt "font-size")) (dd "Font-size in pt")) (highlight scheme "(define write-graph-preamble\n  (case-lambda\n    (() (write-graph-preamble '()))\n    ((graph-attributes)\n     (write-graph-preamble\n       graph-attributes\n       (default-width)\n       (default-height)\n       (default-font-size)))\n    ((graph-attributes width height font-size)\n     (display \"digraph G {\")\n     (unless\n       (null? graph-attributes)\n       (format #t \"graph [~a];\" (attributes->string graph-attributes)))\n     (unless\n       (null? (default-graph-attributes))\n       (format\n         #t\n         \"graph [~a];\"\n         (attributes->string (default-graph-attributes))))\n     (unless\n       (null? (default-node-attributes))\n       (format #t \"node [~a];\" (attributes->string (default-node-attributes))))\n     (unless\n       (null? (default-edge-attributes))\n       (format #t \"edge [~a];\" (attributes->string (default-edge-attributes))))\n     (if (and width height)\n       (begin\n         (format #t \"graph [fontsize=~a, ratio=fill];\" font-size)\n         (let ((width-in-inches (px->in width))\n               (height-in-inches (px->in height)))\n           (format\n             #t\n             \"graph [viewport=\\\"~a,~a\\\", size=\\\"~a,~a!\\\"];\"\n             (in->dot width-in-inches)\n             (in->dot height-in-inches)\n             width-in-inches\n             height-in-inches)))))))"))
(def (sig (procedure "(write-graph-postamble) → unspecified" (id write-graph-postamble))) (p "Write the graph postamble.") (highlight scheme "(define (write-graph-postamble) (display \"}\"))"))
(def (sig (procedure "(pos x y) → unspecified" (id pos))) (p "For placing nodes at specific positions in a unit graph using the " (tt "pos")) (pre "attribute, apply a linear scaling.") (dl (dt (tt "x")) (dd "The x position") (dt (tt "y")) (dd "The y position")) (highlight scheme "(define (pos x y) (format \"~a,~a\" (* x (linear-scale)) (* y (linear-scale))))"))
(def (sig (procedure "(write-node label) → unspecified" (id write-node)) (procedure "(write-node label attributes) → unspecified" (id write-node))) (p "Write a node") (dl (dt (tt "label")) (dd "The node's label") (dt (tt "attributes")) (dd "Attributes of the node")) (highlight scheme "(define write-node\n  (case-lambda\n    ((label) (write-node label '()))\n    ((label attributes)\n     (format #t \"~a [~a];\" label (attributes->string attributes)))))"))
(def (sig (procedure "(write-edge whence whither) → unspecified" (id write-edge)) (procedure "(write-edge whence whither attributes) → unspecified" (id write-edge))) (p "Write an edge") (dl (dt (tt "whence")) (dd "The label whence") (dt (tt "whither")) (dd "The lable whither") (dt (tt "attributes")) (dd "Attributes of the edge")) (highlight scheme "(define write-edge\n  (case-lambda\n    ((whence whither) (write-edge whence whither '()))\n    ((whence whither attributes)\n     (format\n       #t\n       \"~a -> ~a [~a];\"\n       whence\n       whither\n       (attributes->string attributes)))))"))
