2026-05-18 10:04:49 -04:00
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
< !DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
2026-05-18 10:08:43 -04:00
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
2026-05-18 10:04:49 -04:00
-->
<!-- Title: src/composition/include/fourdst/composition/composition_abstract.h Pages: 1 -->
2026-05-18 10:08:43 -04:00
<!-- zoomable 283 -->
2026-05-18 10:04:49 -04:00
2026-05-18 10:08:43 -04:00
<svg id= "main" version= "1.1" xmlns= "http://www.w3.org/2000/svg" xmlns:xlink= "http://www.w3.org/1999/xlink" xml:space= "preserve" onload= "init(evt)" >
2026-05-18 10:04:49 -04:00
<style type= "text/css" > < ![CDATA[
.node, .edge {opacity: 0.7;}
.node.selected, .edge.selected {opacity: 1;}
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
2026-05-18 10:08:43 -04:00
<defs >
<circle id= "rim" cx= "0" cy= "0" r= "7" />
<circle id= "rim2" cx= "0" cy= "0" r= "3.5" />
<g id= "zoomPlus" >
<use xlink:href= "#rim" fill= "#404040" > <set attributeName= "fill" to= "#808080" begin= "zoomplus.mouseover" end= "zoomplus.mouseout" /> </use>
<path d= "M-4,0h8M0,-4v8" fill= "none" stroke= "white" stroke-width= "1.5" pointer-events= "none" />
</g>
<g id= "zoomMin" >
<use xlink:href= "#rim" fill= "#404040" > <set attributeName= "fill" to= "#808080" begin= "zoomminus.mouseover" end= "zoomminus.mouseout" /> </use>
<path d= "M-4,0h8" fill= "none" stroke= "white" stroke-width= "1.5" pointer-events= "none" />
</g>
<g id= "arrowUp" transform= "translate(30 24)" >
<use xlink:href= "#rim" />
<path pointer-events= "none" fill= "none" stroke= "white" stroke-width= "1.5" d= "M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5" />
</g>
<g id= "arrowRight" transform= "rotate(90) translate(36 -43)" >
<use xlink:href= "#rim" />
<path pointer-events= "none" fill= "none" stroke= "white" stroke-width= "1.5" d= "M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5" />
</g>
<g id= "arrowDown" transform= "rotate(180) translate(-30 -48)" >
<use xlink:href= "#rim" />
<path pointer-events= "none" fill= "none" stroke= "white" stroke-width= "1.5" d= "M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5" />
</g>
<g id= "arrowLeft" transform= "rotate(270) translate(-36 17)" >
<use xlink:href= "#rim" />
<path pointer-events= "none" fill= "none" stroke= "white" stroke-width= "1.5" d= "M0,-3.0v7 M-2.5,-0.5L0,-3.0L2.5,-0.5" />
</g>
<g id= "resetDef" >
<use xlink:href= "#rim2" fill= "#404040" > <set attributeName= "fill" to= "#808080" begin= "reset.mouseover" end= "reset.mouseout" /> </use>
</g>
</defs>
<script type= "application/ecmascript" >
var viewWidth = 535;
var viewHeight = 283;
var sectionId = 'dynsection-1';
</script>
2026-05-18 10:04:49 -04:00
<script type= "application/ecmascript" xlink:href= "svg.min.js" />
<svg id= "graph" class= "graph" >
2026-05-18 10:08:43 -04:00
<g id= "viewport" >
2026-05-18 10:04:49 -04:00
<title > src/composition/include/fourdst/composition/composition_abstract.h</title>
<!-- Node1 -->
<g id= "Node000001" class= "node" >
<title > Node1</title>
<g id= "a_Node000001" > <a xlink:title= " " >
2026-05-18 10:08:43 -04:00
<polygon fill= "#999999" stroke= "#666666" points= "427.88,-275 267.88,-275 267.88,-233.25 427.88,-233.25 427.88,-275" />
<text xml:space= "preserve" text-anchor= "start" x= "275.88" y= "-261.5" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/include</text>
<text xml:space= "preserve" text-anchor= "start" x= "275.88" y= "-250.25" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /fourdst/composition/composition</text>
<text xml:space= "preserve" text-anchor= "middle" x= "347.88" y= "-239" font-family= "Helvetica,sans-Serif" font-size= "10.00" > _abstract.h</text>
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node2 -->
<g id= "Node000002" class= "node" >
<title > Node2</title>
<g id= "a_Node000002" > <a xlink:href= "composition_8h.html" target= "_top" xlink:title= " " >
2026-05-18 10:08:43 -04:00
<polygon fill= "white" stroke= "#666666" points= "265,-191.62 96.75,-191.62 96.75,-161.12 265,-161.12 265,-191.62" />
<text xml:space= "preserve" text-anchor= "start" x= "104.75" y= "-178.12" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/include</text>
<text xml:space= "preserve" text-anchor= "middle" x= "180.88" y= "-166.88" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /fourdst/composition/composition.h</text>
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node1->Node2 -->
<g id= "edge1_Node000001_Node000002" class= "edge" >
<title > Node1- > Node2</title>
<g id= "a_edge1_Node000001_Node000002" > <a xlink:title= " " >
2026-05-18 10:08:43 -04:00
<path fill= "none" stroke= "#63b8ff" d= "M292.88,-228.18C266.53,-216.23 235.87,-202.32 213.3,-192.08" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "291.19,-231.26 301.74,-232.2 294.08,-224.88 291.19,-231.26" />
</a>
</g>
</g>
<!-- Node6 -->
<g id= "Node000006" class= "node" >
<title > Node6</title>
<g id= "a_Node000006" > <a xlink:href= "composition__hash_8h.html" target= "_top" xlink:title= " " >
<polygon fill= "white" stroke= "#666666" points= "355.62,-119.5 230.12,-119.5 230.12,-77.75 355.62,-77.75 355.62,-119.5" />
<text xml:space= "preserve" text-anchor= "start" x= "238.12" y= "-106" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/include</text>
<text xml:space= "preserve" text-anchor= "start" x= "238.12" y= "-94.75" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /fourdst/composition/utils</text>
<text xml:space= "preserve" text-anchor= "middle" x= "292.88" y= "-83.5" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /composition_hash.h</text>
</a>
</g>
</g>
<!-- Node1->Node6 -->
<g id= "edge14_Node000001_Node000006" class= "edge" >
<title > Node1- > Node6</title>
<g id= "a_edge14_Node000001_Node000006" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M325.84,-223.5C320.6,-215.33 315.49,-206.23 311.88,-197.25 301.57,-171.62 296.72,-139.89 294.54,-119.7" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "322.86,-225.34 331.35,-231.68 328.66,-221.43 322.86,-225.34" />
</a>
</g>
</g>
<!-- Node8 -->
<g id= "Node000008" class= "node" >
<title > Node8</title>
<g id= "a_Node000008" > <a xlink:href= "composition__decorator__abstract_8h.html" target= "_top" xlink:title= " " >
<polygon fill= "white" stroke= "#666666" points= "486.88,-197.25 320.88,-197.25 320.88,-155.5 486.88,-155.5 486.88,-197.25" />
<text xml:space= "preserve" text-anchor= "start" x= "328.88" y= "-183.75" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/include</text>
<text xml:space= "preserve" text-anchor= "start" x= "328.88" y= "-172.5" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /fourdst/composition/decorators</text>
<text xml:space= "preserve" text-anchor= "middle" x= "403.88" y= "-161.25" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /composition_decorator_abstract.h</text>
</a>
</g>
</g>
<!-- Node1->Node8 -->
<g id= "edge10_Node000001_Node000008" class= "edge" >
<title > Node1- > Node8</title>
<g id= "a_edge10_Node000001_Node000008" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M369.6,-223.73C376.03,-215.04 382.92,-205.72 388.83,-197.73" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "366.91,-221.49 363.78,-231.61 372.54,-225.65 366.91,-221.49" />
</a>
</g>
</g>
<!-- Node9 -->
<g id= "Node000009" class= "node" >
<title > Node9</title>
<g id= "a_Node000009" > <a xlink:href= "composition__masked_8h.html" target= "_top" xlink:title= " " >
<polygon fill= "white" stroke= "#666666" points= "526.5,-119.5 373.25,-119.5 373.25,-77.75 526.5,-77.75 526.5,-119.5" />
<text xml:space= "preserve" text-anchor= "start" x= "381.25" y= "-106" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/include</text>
<text xml:space= "preserve" text-anchor= "start" x= "381.25" y= "-94.75" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /fourdst/composition/decorators</text>
<text xml:space= "preserve" text-anchor= "middle" x= "449.88" y= "-83.5" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /composition_masked.h</text>
</a>
</g>
</g>
<!-- Node1->Node9 -->
<g id= "edge13_Node000001_Node000009" class= "edge" >
<title > Node1- > Node9</title>
<g id= "a_edge13_Node000001_Node000009" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M438.97,-237.73C461.17,-229.46 482.39,-216.75 495.88,-197.25 513.03,-172.44 490.41,-140.22 471.26,-119.73" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "438.14,-234.31 429.8,-240.85 440.4,-240.94 438.14,-234.31" />
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node3 -->
<g id= "Node000003" class= "node" >
<title > Node3</title>
<g id= "a_Node000003" > <a xlink:href= "utils_8h.html" target= "_top" xlink:title= " " >
2026-05-18 10:08:43 -04:00
<polygon fill= "white" stroke= "#666666" points= "173.75,-113.88 40,-113.88 40,-83.38 173.75,-83.38 173.75,-113.88" />
<text xml:space= "preserve" text-anchor= "start" x= "48" y= "-100.38" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/include</text>
<text xml:space= "preserve" text-anchor= "middle" x= "106.88" y= "-89.12" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /fourdst/composition/utils.h</text>
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node2->Node3 -->
<g id= "edge2_Node000002_Node000003" class= "edge" >
<title > Node2- > Node3</title>
<g id= "a_edge2_Node000002_Node000003" > <a xlink:title= " " >
2026-05-18 10:08:43 -04:00
<path fill= "none" stroke= "#63b8ff" d= "M158.66,-152.64C146.48,-140.17 131.73,-125.07 121.1,-114.19" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "156.06,-154.98 165.55,-159.69 161.07,-150.09 156.06,-154.98" />
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node4 -->
<g id= "Node000004" class= "node" >
<title > Node4</title>
2026-05-18 10:08:43 -04:00
<g id= "a_Node000004" > <a xlink:href= "composition_8cpp.html" target= "_top" xlink:title= " " >
<polygon fill= "white" stroke= "#666666" points= "250.75,-36.12 153,-36.12 153,-5.62 250.75,-5.62 250.75,-36.12" />
<text xml:space= "preserve" text-anchor= "start" x= "161" y= "-22.62" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/lib</text>
<text xml:space= "preserve" text-anchor= "middle" x= "201.88" y= "-11.38" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /composition.cpp</text>
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node2->Node4 -->
2026-05-18 10:08:43 -04:00
<g id= "edge8_Node000002_Node000004" class= "edge" >
2026-05-18 10:04:49 -04:00
<title > Node2- > Node4</title>
2026-05-18 10:08:43 -04:00
<g id= "a_edge8_Node000002_Node000004" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M184.43,-149.37C188.89,-116.82 196.36,-62.21 199.9,-36.32" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "180.98,-148.78 183.09,-159.16 187.92,-149.72 180.98,-148.78" />
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node5 -->
<g id= "Node000005" class= "node" >
<title > Node5</title>
2026-05-18 10:08:43 -04:00
<g id= "a_Node000005" > <a xlink:href= "utils_8cpp.html" target= "_top" xlink:title= " " >
<polygon fill= "white" stroke= "#666666" points= "97.75,-36.12 0,-36.12 0,-5.62 97.75,-5.62 97.75,-36.12" />
<text xml:space= "preserve" text-anchor= "start" x= "8" y= "-22.62" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/lib</text>
<text xml:space= "preserve" text-anchor= "middle" x= "48.88" y= "-11.38" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /utils.cpp</text>
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node2->Node5 -->
2026-05-18 10:08:43 -04:00
<g id= "edge9_Node000002_Node000005" class= "edge" >
2026-05-18 10:04:49 -04:00
<title > Node2- > Node5</title>
2026-05-18 10:08:43 -04:00
<g id= "a_edge9_Node000002_Node000005" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M85.93,-159.24C64.39,-150.96 44.02,-138.43 30.88,-119.5 13.37,-94.3 28.91,-56.95 40.01,-36.52" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "84.54,-162.47 95.14,-162.48 86.86,-155.86 84.54,-162.47" />
</a>
</g>
</g>
<!-- Node2->Node6 -->
<g id= "edge5_Node000002_Node000006" class= "edge" >
<title > Node2- > Node6</title>
<g id= "a_edge5_Node000002_Node000006" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M211.88,-154.4C227.8,-143.64 247.11,-130.58 262.88,-119.91" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "210.05,-151.42 203.72,-159.92 213.97,-157.22 210.05,-151.42" />
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
<!-- Node3->Node4 -->
<g id= "edge3_Node000003_Node000004" class= "edge" >
<title > Node3- > Node4</title>
<g id= "a_edge3_Node000003_Node000004" > <a xlink:title= " " >
2026-05-18 10:08:43 -04:00
<path fill= "none" stroke= "#63b8ff" d= "M134.05,-75.96C149.94,-63.29 169.57,-47.64 183.61,-36.44" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "132.01,-73.11 126.38,-82.08 136.38,-78.58 132.01,-73.11" />
</a>
</g>
</g>
<!-- Node3->Node5 -->
<g id= "edge4_Node000003_Node000005" class= "edge" >
<title > Node3- > Node5</title>
<g id= "a_edge4_Node000003_Node000005" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M88.91,-74.17C79.47,-61.84 68.2,-47.11 60.02,-36.44" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "85.91,-76.01 94.77,-81.82 91.47,-71.75 85.91,-76.01" />
</a>
</g>
</g>
<!-- Node6->Node4 -->
<g id= "edge6_Node000006_Node000004" class= "edge" >
<title > Node6- > Node4</title>
<g id= "a_edge6_Node000006_Node000004" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M259.8,-70.09C246.13,-58.71 230.84,-45.98 219.4,-36.46" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "257.4,-72.65 267.33,-76.36 261.88,-67.27 257.4,-72.65" />
</a>
</g>
</g>
<!-- Node7 -->
<g id= "Node000007" class= "node" >
<title > Node7</title>
<g id= "a_Node000007" > <a xlink:href= "composition__masked_8cpp.html" target= "_top" xlink:title= " " >
<polygon fill= "white" stroke= "#666666" points= "449,-41.75 328.75,-41.75 328.75,0 449,0 449,-41.75" />
<text xml:space= "preserve" text-anchor= "start" x= "336.75" y= "-28.25" font-family= "Helvetica,sans-Serif" font-size= "10.00" > src/composition/lib</text>
<text xml:space= "preserve" text-anchor= "start" x= "336.75" y= "-17" font-family= "Helvetica,sans-Serif" font-size= "10.00" > /decorators/composition</text>
<text xml:space= "preserve" text-anchor= "middle" x= "388.88" y= "-5.75" font-family= "Helvetica,sans-Serif" font-size= "10.00" > _masked.cpp</text>
</a>
</g>
</g>
<!-- Node6->Node7 -->
<g id= "edge7_Node000006_Node000007" class= "edge" >
<title > Node6- > Node7</title>
<g id= "a_edge7_Node000006_Node000007" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M327.33,-70.44C339.12,-61.14 352.09,-50.9 363.08,-42.23" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "325.47,-67.45 319.79,-76.39 329.81,-72.94 325.47,-67.45" />
</a>
</g>
</g>
<!-- Node8->Node9 -->
<g id= "edge11_Node000008_Node000009" class= "edge" >
<title > Node8- > Node9</title>
<g id= "a_edge11_Node000008_Node000009" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M422.06,-145.43C427.24,-136.89 432.77,-127.8 437.51,-119.98" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "419.19,-143.42 416.99,-153.78 425.17,-147.05 419.19,-143.42" />
</a>
</g>
</g>
<!-- Node9->Node7 -->
<g id= "edge12_Node000009_Node000007" class= "edge" >
<title > Node9- > Node7</title>
<g id= "a_edge12_Node000009_Node000007" > <a xlink:title= " " >
<path fill= "none" stroke= "#63b8ff" d= "M426.43,-68.51C419.37,-59.74 411.77,-50.3 405.27,-42.23" />
<polygon fill= "#63b8ff" stroke= "#63b8ff" points= "423.58,-70.55 432.58,-76.15 429.03,-66.16 423.58,-70.55" />
2026-05-18 10:04:49 -04:00
</a>
</g>
</g>
</g>
</svg>
2026-05-18 10:08:43 -04:00
<g id= "navigator" transform= "translate(0 0)" fill= "#404254" >
<rect fill= "#f2f5e9" fill-opacity= "0.5" stroke= "#606060" stroke-width= ".5" x= "0" y= "0" width= "60" height= "60" />
<use id= "zoomplus" xlink:href= "#zoomPlus" x= "17" y= "9" onmousedown= "handleZoom(evt,'in')" />
<use id= "zoomminus" xlink:href= "#zoomMin" x= "42" y= "9" onmousedown= "handleZoom(evt,'out')" />
<use id= "reset" xlink:href= "#resetDef" x= "30" y= "36" onmousedown= "handleReset()" />
<use id= "arrowup" xlink:href= "#arrowUp" x= "0" y= "0" onmousedown= "handlePan(0,-1)" />
<use id= "arrowright" xlink:href= "#arrowRight" x= "0" y= "0" onmousedown= "handlePan(1,0)" />
<use id= "arrowdown" xlink:href= "#arrowDown" x= "0" y= "0" onmousedown= "handlePan(0,1)" />
<use id= "arrowleft" xlink:href= "#arrowLeft" x= "0" y= "0" onmousedown= "handlePan(-1,0)" />
</g>
<svg viewBox= "0 0 15 15" width= "100%" height= "30px" preserveAspectRatio= "xMaxYMin meet" >
<g id= "arrow_out" transform= "scale(0.3 0.3)" >
<a xlink:href= "composition__abstract_8h__dep__incl_org.svg" target= "_base" >
<rect id= "button" ry= "5" rx= "5" y= "6" x= "6" height= "38" width= "38"
fill="#f2f5e9" fill-opacity="0.5" stroke="#606060" stroke-width="1.0"/>
<path id= "arrow"
d="M 11.500037,31.436501 C 11.940474,20.09759 22.043105,11.32322 32.158766,21.979434 L 37.068811,17.246167 C 37.068811,17.246167 37.088388,32 37.088388,32 L 22.160133,31.978069 C 22.160133,31.978069 26.997745,27.140456 26.997745,27.140456 C 18.528582,18.264221 13.291696,25.230495 11.500037,31.436501 z"
style="fill:#404040;"/>
</a>
</g>
2026-05-18 10:04:49 -04:00
</svg>
<style type= 'text/css' >
< ![CDATA[
[data-mouse-over-selected='false'] { opacity: 0.7; }
[data-mouse-over-selected='true'] { opacity: 1.0; }
]]>
</style>
<script type= "application/ecmascript" > < ![CDATA[
document.addEventListener('DOMContentLoaded', (event) => {
highlightEdges();
highlightAdjacentNodes();
});
]]></script>
</svg>