aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--figs.drawio2432
-rw-r--r--img/theme.ipuml10
-rw-r--r--notulen/wk8-1.txt57
-rw-r--r--readme.md25
-rw-r--r--research.tex68
-rw-r--r--time.txt25
7 files changed, 1943 insertions, 675 deletions
diff --git a/.gitignore b/.gitignore
index 74caed0..7b7818a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,7 @@
*.nav
*.snm
*-SAVE-ERROR
+*.bkp
# output files
*.pdf
diff --git a/figs.drawio b/figs.drawio
index 5082752..e385c5e 100644
--- a/figs.drawio
+++ b/figs.drawio
@@ -1,6 +1,1499 @@
-<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.8 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.8" pages="3">
- <diagram id="C5RBs43oDa-KdzZeNtuy" name="Main diagram">
- <mxGraphModel dx="2062" dy="731" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17" pages="7">
+ <diagram id="ehgrrEZq6aIl9GSG0JpL" name="Main">
+ <mxGraphModel dx="1368" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="3300" pageHeight="2339" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-10" value="&lt;&lt;abstract&gt;&gt;&#xa;Scene" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=39;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="926" y="1055" width="160" height="115" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-11" value="+name : string" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
+ <mxGeometry y="39" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-12" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
+ <mxGeometry y="56" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-13" value="+Scene(string name)" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
+ <mxGeometry y="64" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-25" value="+~Scene() : virtual" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
+ <mxGeometry y="81" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-24" value="+load_scene() : virtual void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
+ <mxGeometry y="98" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-14" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-10" target="ZHgyX9xX1EySbdOx-EKd-46" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1290" y="1040" as="sourcePoint" />
+ <mxPoint x="1350" y="1084" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1120" y="1120" />
+ <mxPoint x="1120" y="1120" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-15" value="+contents" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-14" vertex="1" connectable="0">
+ <mxGeometry x="-0.1405" y="-1" relative="1" as="geometry">
+ <mxPoint x="-9" y="-11" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-16" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-14" vertex="1" connectable="0">
+ <mxGeometry x="-0.7119" y="-1" relative="1" as="geometry">
+ <mxPoint x="-3" y="14" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-17" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-14" vertex="1" connectable="0">
+ <mxGeometry x="0.6214" y="-1" relative="1" as="geometry">
+ <mxPoint x="3" y="14" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=diamondThin;endFill=1;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-56" target="5-8bWhzpOWirDYeo3-Cj-170" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="2180" y="870" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-55" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-54" vertex="1" connectable="0">
+ <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
+ <mxPoint x="-7" y="-6" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-56" value="Transform" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="2100" y="545" width="160" height="102" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-57" value="+position : Point" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-58" value="+rotation : double" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-59" value="+scale : double" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-60" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
+ <mxGeometry y="77" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-61" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
+ <mxGeometry y="85" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-62" value="iMouseListener" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1670" y="1350" width="160" height="119" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-63" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-64" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-65" value="+OnMouseMoved()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-66" value="+OnMouseClicked()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-67" value="+OnMousePressed()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
+ <mxGeometry y="85" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-68" value="+OnMouseReleased()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
+ <mxGeometry y="102" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-69" value="iKeyListener" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1870" y="1350" width="160" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-70" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-71" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-72" value="+OnKeyPressed()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-73" value="+OnKeyReleased()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-74" value="Color" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="320" y="1282" width="160" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-75" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-74" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-76" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-74" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-77" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-74" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-78" value="Point" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="320" y="1172" width="160" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-79" value="+x : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-69" value="+y : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-80" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
+ <mxGeometry y="60" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-81" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-82" value="Debug" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
+ <mxGeometry x="320" y="1082" width="70" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-83" value="Time" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
+ <mxGeometry x="320" y="1012" width="70" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-84" value="Input" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
+ <mxGeometry x="320" y="942" width="70" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-85" value="AudioSource" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="806" y="560" width="160" height="136" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-86" value="+audioClip : Resource" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#ff0000;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-87" value="+playOnAwake : bool" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-88" value="+loop : bool" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-89" value="+volume" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-90" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="94" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-91" value="+set_play(looping) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="102" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-92" value="+set_stop() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
+ <mxGeometry y="119" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-93" value="Collider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1086" y="560" width="160" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-94" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-93" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-95" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-93" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-23" value="+~Collider() : virtual" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-93" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-97" value="CircleCollider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="996" y="666" width="160" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-98" value="+radius" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-30" value="+position" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-99" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
+ <mxGeometry y="60" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-100" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-101" value="BoxCollider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1190" y="664" width="160" height="102" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-102" value="+width" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-103" value="+height" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-31" value="+position" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-104" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
+ <mxGeometry y="77" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-105" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
+ <mxGeometry y="85" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-106" value="Component" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1400" y="170" width="200" height="102" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-107" value="+active : bool" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
+ <mxGeometry y="26" width="200" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-108" value="+gameObjectId : uint32_t" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
+ <mxGeometry y="43" width="200" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-109" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
+ <mxGeometry y="60" width="200" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-110" value="+~Component() : virtual" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
+ <mxGeometry y="68" width="200" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-20" value="+get_instances_max() : virtual int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
+ <mxGeometry y="85" width="200" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-111" value="Rigidbody" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1370" y="341" width="160" height="306" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-112" value="+mass" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-113" value="+gravityScale" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-114" value="+bodyType" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-4" value="+angularDamping" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-3" value="+angularVelocity" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="94" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-2" value="+collisionDetectionMode" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="111" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-1" value="+constraints" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="128" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-9" value="+detectCollisions " style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="145" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-8" value="+includedCollisionLayers" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="162" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-7" value="+excludedCollisionLayers" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="179" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-6" value="+linearDamping" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="196" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-5" value="+linearVelocity" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="213" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-12" value="+maxAngularVelocity" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="230" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-11" value="+maxLinearVelocity" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="247" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-13" value="+useGravity" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000ff;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="264" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-115" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="281" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-116" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
+ <mxGeometry y="289" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-117" value="BehaviorScript" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1520" y="663" width="160" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-118" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-119" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-120" value="+on_start() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-121" value="+on_update() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-122" value="Sprite" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="1710" y="500" width="160" height="170" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-123" value="+ shared_ptr&lt;Texture&gt; sprite_image" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#000000;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-124" value="+ color : Color" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-125" value="flip : FlipSettings" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-127" value="+sortingLayer : uint8_t" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-128" value="+orderInLayer : uint8_t" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="94" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-129" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="111" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-65" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
+ <mxGeometry y="119" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-131" value="Animator" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#FF0000;" parent="1" vertex="1">
+ <mxGeometry x="1880" y="653" width="170" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-132" value="+fps" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
+ <mxGeometry y="26" width="170" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-133" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
+ <mxGeometry y="43" width="170" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-134" value="+set_play(bool looping) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
+ <mxGeometry y="51" width="170" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-135" value="+set_stop() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
+ <mxGeometry y="68" width="170" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-136" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-85" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1350" y="980" as="sourcePoint" />
+ <mxPoint x="1190" y="870" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="880" y="870" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-137" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-136" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-17" y="-35" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-138" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-97" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1340" y="870" as="sourcePoint" />
+ <mxPoint x="1209" y="828" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1076" y="860" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-139" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-138" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-16" y="-9" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-140" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-101" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1330" y="820" as="sourcePoint" />
+ <mxPoint x="1219" y="838" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1270" y="800" />
+ <mxPoint x="1270" y="800" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-141" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-140" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-12" y="-1" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-142" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-111" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1394" y="1040" as="sourcePoint" />
+ <mxPoint x="1229" y="848" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1450" y="790" />
+ <mxPoint x="1450" y="790" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-143" value="&lt;font color=&quot;#ff3333&quot;&gt;0..1&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-142" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-16" y="-11" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-144" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-117" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1404" y="1050" as="sourcePoint" />
+ <mxPoint x="1239" y="858" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1600" y="820" />
+ <mxPoint x="1600" y="820" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-145" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-144" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-12" y="1" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-146" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-122" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1414" y="1060" as="sourcePoint" />
+ <mxPoint x="1249" y="868" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1790" y="850" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-147" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-146" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-16" y="-20" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-148" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-131" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1340" y="890" as="sourcePoint" />
+ <mxPoint x="1259" y="878" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1960" y="860" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-149" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-148" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-16" y="-32" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-150" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-131" target="5-8bWhzpOWirDYeo3-Cj-122" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1830" y="784.38" as="sourcePoint" />
+ <mxPoint x="2090" y="785" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1950" y="577" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-151" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-150" vertex="1" connectable="0">
+ <mxGeometry x="-0.7119" y="-1" relative="1" as="geometry">
+ <mxPoint x="-21" y="14" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-152" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-150" vertex="1" connectable="0">
+ <mxGeometry x="0.6214" y="-1" relative="1" as="geometry">
+ <mxPoint x="3" y="14" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-153" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="866.0434782608697" y="560" as="sourcePoint" />
+ <mxPoint x="1350" y="460.0000000000001" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="866" y="250" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-154" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-93" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1410" y="708" as="sourcePoint" />
+ <mxPoint x="1537" y="620" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1160" y="320" />
+ <mxPoint x="1410" y="320" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-155" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" target="5-8bWhzpOWirDYeo3-Cj-93" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1115.9999999999998" y="666" as="sourcePoint" />
+ <mxPoint x="1115.9999999999998" y="628.0000000000002" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1116" y="650" />
+ <mxPoint x="1116" y="650" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-156" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-101" target="5-8bWhzpOWirDYeo3-Cj-93" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1096" y="808" as="sourcePoint" />
+ <mxPoint x="1223" y="720" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1216" y="648" />
+ <mxPoint x="1216" y="648" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-157" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-111" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1540" y="698" as="sourcePoint" />
+ <mxPoint x="1667" y="610" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1430" y="300" />
+ <mxPoint x="1430" y="300" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-158" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-117" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1630" y="786" as="sourcePoint" />
+ <mxPoint x="1757" y="698" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1570" y="470" />
+ <mxPoint x="1570" y="470" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-159" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-122" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1950" y="490" as="sourcePoint" />
+ <mxPoint x="1600" y="474" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1790" y="320" />
+ <mxPoint x="1590" y="320" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-160" value="ParticleSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="2210" y="1114.5" width="160" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-161" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-160" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-162" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-160" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-163" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-160" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-168" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;fontColor=#FF0000;strokeColor=#fa0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-56" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2000" y="645" as="sourcePoint" />
+ <mxPoint x="1610" y="596" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2180" y="230" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-169" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=open;endFill=0;strokeColor=#0000FF;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="ZHgyX9xX1EySbdOx-EKd-46" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="1430" y="1030" />
+ <mxPoint x="1430" y="1030" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-170" value="&lt;&lt;singleton&gt;&gt;&#xa;ComponentManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;fontColor=#0000FF;strokeColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="1190" y="840" width="480" height="184" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-171" value="+components : unorded_map&lt;type_index, vector&lt;vector&lt;unique_ptr&lt;Component&gt;&gt;&gt;&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontFamily=Helvetica;fontSize=12;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="40" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-172" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="57" width="480" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-173" value="+add_component&lt;T&gt;(uint32_t id, Args&amp;&amp;... args) : T&amp;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="65" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-174" value="+delete_components_by_id&lt;T&gt;(uint32_t id) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="82" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-70" value="+delete_components&lt;T&gt;() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="99" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="qlvXf-Lmlshk3J5vVLe--1" value="+delete_all_components_of_id(uint32_t id) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="116" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="qlvXf-Lmlshk3J5vVLe--2" value="+delete_all_components() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="133" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-175" value="+get_components_by_id&lt;T&gt;(uint32_t id) : vector&lt;T&amp;&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="150" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="qlvXf-Lmlshk3J5vVLe--3" value="+get_components_by_type&lt;T&gt;() : vector&lt;T&amp;&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
+ <mxGeometry y="167" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-176" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;startArrow=open;startFill=0;endArrow=none;endFill=0;strokeColor=#0000FF;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-177" target="5-8bWhzpOWirDYeo3-Cj-170" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="1330" y="945" />
+ <mxPoint x="1330" y="945" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="5-8bWhzpOWirDYeo3-Cj-177" value="&lt;font color=&quot;#0000ff&quot;&gt;Systems&lt;/font&gt;" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;strokeColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="1080" y="925" width="70" height="40" as="geometry" />
+ </mxCell>
+ <mxCell id="3iqK6Q-Owgr1maHwc76Q-3" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-131" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1840" y="520" as="sourcePoint" />
+ <mxPoint x="1614" y="480" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1990" y="250" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-1" value="ParticleEmitter" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="2290" y="545" width="160" height="187" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-13" value="+position" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-17" value="+maxParticles" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-16" value="+emissionRate" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-15" value="+speed" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-20" value="+speedOffset" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="94" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-19" value="+angle" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="111" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-18" value="+angleOffset" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="128" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-22" value="+endLifespan" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="145" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-5" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="162" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-6" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#000000;" parent="V-ZVI1K5bxIVrfWjpJuH-1" vertex="1">
+ <mxGeometry y="170" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-7" value="Particles" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="2510" y="562" width="220" height="153" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-14" value="+position" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="26" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-25" value="+velocity" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="43" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-24" value="+endLifespan" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="60" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-23" value="+active" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="77" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-29" value="+lifespan" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="94" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-11" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="111" width="220" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-12" value="+reset(lifespan, position, velocity) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="119" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="QpFLp5RZX1MbUHJJD-iN-27" value="+update(deltaTime) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="V-ZVI1K5bxIVrfWjpJuH-7" vertex="1">
+ <mxGeometry y="136" width="220" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-19" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;strokeColor=#2020ff;" parent="1" source="V-ZVI1K5bxIVrfWjpJuH-1" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2426" y="573" as="sourcePoint" />
+ <mxPoint x="2370" y="410" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2360" y="210" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-21" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;edgeStyle=orthogonalEdgeStyle;fontColor=#0000ff;labelBackgroundColor=#0000ff;strokeColor=#0000FF;" parent="1" source="V-ZVI1K5bxIVrfWjpJuH-1" target="V-ZVI1K5bxIVrfWjpJuH-7" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2510" y="826" as="sourcePoint" />
+ <mxPoint x="2420" y="749" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-23" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#000000;" parent="V-ZVI1K5bxIVrfWjpJuH-21" connectable="0" vertex="1">
+ <mxGeometry x="0.6214" y="-1" relative="1" as="geometry">
+ <mxPoint x="-39" y="8" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=diamondThin;endFill=1;strokeColor=#0000FF;" parent="1" source="V-ZVI1K5bxIVrfWjpJuH-1" target="5-8bWhzpOWirDYeo3-Cj-170" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="2190" y="657" as="sourcePoint" />
+ <mxPoint x="1510" y="927" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2370" y="880" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="V-ZVI1K5bxIVrfWjpJuH-25" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#000000;" parent="V-ZVI1K5bxIVrfWjpJuH-24" connectable="0" vertex="1">
+ <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
+ <mxPoint x="-17" y="-6" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-1" value="Camera" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="600" y="577" width="160" height="153" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-2" value="+ bg_color : Color" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-1" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-3" value="+ aspect_width : double" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-1" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="xyZsm_uoETzsuu8GtZ24-1" value="+ aspect_height : double" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" vertex="1" parent="ZHgyX9xX1EySbdOx-EKd-1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="xyZsm_uoETzsuu8GtZ24-2" value="+ x,y : double" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" vertex="1" parent="ZHgyX9xX1EySbdOx-EKd-1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="xyZsm_uoETzsuu8GtZ24-3" value="+ zoom : double" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" vertex="1" parent="ZHgyX9xX1EySbdOx-EKd-1">
+ <mxGeometry y="94" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-5" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="ZHgyX9xX1EySbdOx-EKd-1" vertex="1">
+ <mxGeometry y="111" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-66" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-1" vertex="1">
+ <mxGeometry y="119" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-7" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;fontColor=#FF0000;strokeColor=#fa0000;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-1" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2190" y="555" as="sourcePoint" />
+ <mxPoint x="1590" y="220" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="680" y="230" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-8" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="ZHgyX9xX1EySbdOx-EKd-1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1370" y="880" as="sourcePoint" />
+ <mxPoint x="890" y="706" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="680" y="880" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-9" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-8" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-16" y="-60" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-10" value="UIObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="330" y="530" width="160" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-11" value="+width" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-10" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-12" value="+height" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-10" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-13" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="ZHgyX9xX1EySbdOx-EKd-10" vertex="1">
+ <mxGeometry y="60" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-21" value="+~UIObject() : virtual" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-10" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-15" value="Button" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="240" y="670" width="160" height="85" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-16" value="+interactable&#xa;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-15" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-17" value="+onClick" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-15" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-18" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="ZHgyX9xX1EySbdOx-EKd-15" vertex="1">
+ <mxGeometry y="60" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-19" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-15" vertex="1">
+ <mxGeometry y="68" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-20" value="Text" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="424" y="670" width="160" height="136" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-21" value="+text" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-22" value="+font : string" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-23" value="+size : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-24" value="+allignment" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-25" value="+color" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="94" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-26" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="111" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-27" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-20" vertex="1">
+ <mxGeometry y="119" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-28" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-20" target="ZHgyX9xX1EySbdOx-EKd-10" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1125.9999999999998" y="676" as="sourcePoint" />
+ <mxPoint x="1125.9999999999998" y="638.0000000000002" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="470" y="650" />
+ <mxPoint x="470" y="650" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-29" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-15" target="ZHgyX9xX1EySbdOx-EKd-10" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="480" y="680" as="sourcePoint" />
+ <mxPoint x="480" y="625" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="370" y="660" />
+ <mxPoint x="370" y="660" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-30" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;fontColor=#FF0000;strokeColor=#fa0000;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-10" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="690" y="587" as="sourcePoint" />
+ <mxPoint x="1430" y="210" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="410" y="210" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-31" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="ZHgyX9xX1EySbdOx-EKd-20" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1370" y="890" as="sourcePoint" />
+ <mxPoint x="690" y="689" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="500" y="890" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-32" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-31" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-29" y="-68" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-33" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="ZHgyX9xX1EySbdOx-EKd-15" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1370" y="900" as="sourcePoint" />
+ <mxPoint x="510" y="816" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="320" y="900" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-34" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-33" vertex="1" connectable="0">
+ <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
+ <mxPoint x="-22" y="-89" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-35" value="Metadata" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="2780" y="562" width="160" height="136" as="geometry">
+ <mxRectangle x="990" y="673.5" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-36" value="+name : string" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-37" value="+tag : string" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="43" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-39" value="+layer : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="60" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-55" value="+parent : uint32_t" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="77" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-56" value="+childs : vector&lt;uint32_t&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="94" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-44" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="111" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-45" value="+get_instances_max() : int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-35" vertex="1">
+ <mxGeometry y="119" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-46" value="GameObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#000000;fontColor=#000000;" parent="1" vertex="1">
+ <mxGeometry x="1163" y="1065" width="534" height="102" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-63" value="+id : uint32_t" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-46" vertex="1">
+ <mxGeometry y="26" width="534" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-50" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#000000;" parent="ZHgyX9xX1EySbdOx-EKd-46" vertex="1">
+ <mxGeometry y="43" width="534" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-67" value="+GameObject(uint32_t id, string naam, string tag, int layer, Point position, Point rotation, int scale)" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-46" vertex="1">
+ <mxGeometry y="51" width="534" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-51" value="+add_component&lt;T&gt;(Args&amp;&amp;... args) : T&amp;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#000000;" parent="ZHgyX9xX1EySbdOx-EKd-46" vertex="1">
+ <mxGeometry y="68" width="534" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-57" value="+set_parent(GameObject&amp; gameObject) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-46" vertex="1">
+ <mxGeometry y="85" width="534" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-52" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;strokeColor=#2020ff;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-35" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2370" y="555" as="sourcePoint" />
+ <mxPoint x="1590" y="220" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2860" y="190" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=diamondThin;endFill=1;strokeColor=#0000FF;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-35" target="5-8bWhzpOWirDYeo3-Cj-170" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="2380" y="742" as="sourcePoint" />
+ <mxPoint x="1510" y="910" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2860" y="890" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-54" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#0000FF;" parent="ZHgyX9xX1EySbdOx-EKd-53" connectable="0" vertex="1">
+ <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
+ <mxPoint x="-7" y="-16" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-58" value="" style="endArrow=open;html=1;rounded=0;strokeColor=#FF0000;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=#FF0000;labelBackgroundColor=default;resizable=1;endFill=0;endSize=8;edgeStyle=orthogonalEdgeStyle;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-35" target="ZHgyX9xX1EySbdOx-EKd-35" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="2990" y="611" as="sourcePoint" />
+ <mxPoint x="2990" y="641" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2990" y="611" />
+ <mxPoint x="2990" y="641" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-60" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-58" vertex="1" connectable="0">
+ <mxGeometry x="-0.0905" y="1" relative="1" as="geometry">
+ <mxPoint x="-41" y="1" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="ZHgyX9xX1EySbdOx-EKd-61" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#FF0000;" parent="ZHgyX9xX1EySbdOx-EKd-58" vertex="1" connectable="0">
+ <mxGeometry y="1" relative="1" as="geometry">
+ <mxPoint x="-31" y="25" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-5" value="&lt;&lt;singleton&gt;&gt;&#xa;SceneManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=40;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;fontColor=#0000FF;strokeColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="570" y="1049.5" width="310" height="133" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-6" value="+scenes : vector&lt;Scene&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontFamily=Helvetica;fontSize=12;fontColor=#0000FF;strokeColor=none;" parent="uXPUMNlN59CLM5qzZz-l-5" vertex="1">
+ <mxGeometry y="40" width="310" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-17" value="+nextScene : queue&lt;string&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontFamily=Helvetica;fontSize=12;fontColor=#0000FF;strokeColor=none;" parent="uXPUMNlN59CLM5qzZz-l-5" vertex="1">
+ <mxGeometry y="57" width="310" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-7" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=#0000FF;" parent="uXPUMNlN59CLM5qzZz-l-5" vertex="1">
+ <mxGeometry y="74" width="310" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-8" value="+add_scene(string name) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="uXPUMNlN59CLM5qzZz-l-5" vertex="1">
+ <mxGeometry y="82" width="310" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-14" value="+load_scene(string name) : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="uXPUMNlN59CLM5qzZz-l-5" vertex="1">
+ <mxGeometry y="99" width="310" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-18" value="+empty_queue() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="uXPUMNlN59CLM5qzZz-l-5" vertex="1">
+ <mxGeometry y="116" width="310" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=diamondThin;endFill=1;strokeColor=#0000FF;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-10" target="uXPUMNlN59CLM5qzZz-l-5" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1570" y="1230" as="sourcePoint" />
+ <mxPoint x="1680" y="900" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="900" y="1120" />
+ <mxPoint x="900" y="1120" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-16" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#0000FF;" parent="uXPUMNlN59CLM5qzZz-l-15" connectable="0" vertex="1">
+ <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
+ <mxPoint x="-7" y="-5" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-32" value="ConcreteScene" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" parent="1" vertex="1">
+ <mxGeometry x="920" y="1210" width="170" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-41" value=" " style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="uXPUMNlN59CLM5qzZz-l-32" vertex="1">
+ <mxGeometry y="26" width="170" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-38" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" parent="uXPUMNlN59CLM5qzZz-l-32" vertex="1">
+ <mxGeometry y="43" width="170" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-39" value="+load_scene() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" parent="uXPUMNlN59CLM5qzZz-l-32" vertex="1">
+ <mxGeometry y="51" width="170" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-42" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;fontColor=#0000FF;strokeColor=#0000FF;" parent="1" source="uXPUMNlN59CLM5qzZz-l-32" target="5-8bWhzpOWirDYeo3-Cj-10" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="1110" y="1226" as="sourcePoint" />
+ <mxPoint x="1110" y="1190" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1005" y="1190" />
+ <mxPoint x="1005" y="1190" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-45" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="uXPUMNlN59CLM5qzZz-l-44" target="uXPUMNlN59CLM5qzZz-l-18" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="740" y="1180" />
+ <mxPoint x="740" y="1180" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-44" value="The game programmer creates ConcreteScenes (e.g. each game level might be a seperate ConcreteScene). Each ConcreteScene consists of GameObject(s) with Component(s). The ConcreteScene describes the Scene&#39;s state at the start of the Scene. Components like Physics and Scripts allow the game programmer to change the Scene&#39;s state during runtime.&lt;br&gt;The game programmer must add her/his ConcreteScene(s) to the SceneManager, after creating the ConcreteScene.&lt;div&gt;The first Scene of the game, is the Scene which is firstly added to the SceneManager.&lt;br&gt;&lt;div&gt;The next Scene can be loaded using a Script. The Script can call load_scene() to load a new Scene. The next Scene is loaded (and the previous one is deleted), at the end of the frame.&lt;/div&gt;&lt;/div&gt;" style="shape=note;size=20;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="600" y="1210" width="280" height="260" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-46" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="uXPUMNlN59CLM5qzZz-l-32" target="uXPUMNlN59CLM5qzZz-l-44" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="750" y="1220" as="sourcePoint" />
+ <mxPoint x="750" y="1193" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="890" y="1244" />
+ <mxPoint x="890" y="1244" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-47" value="The ComponentManager is the key player within the game engine.&lt;br&gt;The ComponentManager manages and takes care of all Components. The ComponentManager is the only owner of a Component.&lt;div&gt;The ComponentManager offers an easy way to add and delete a Component. It&#39;s also possible to delete all Components of the same type or id. However, the best feature of the ComponentManager is that it&#39;s very easy to retrieve the references to all Components of the same type. This last feature is constantly used at the Systems.&lt;/div&gt;" style="shape=note;size=20;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="1720" y="920" width="300" height="190" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-48" value="&lt;div&gt;&lt;div&gt;The GameObject is used as a dummy object for the game programmer. The GameObject&#39;s only goal is to create an easy/understandable interface for the game programmer. The GameObject&amp;nbsp;&lt;/div&gt;&lt;/div&gt;" style="shape=note;size=20;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="1397" y="1200" width="300" height="70" as="geometry" />
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-49" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-46" target="uXPUMNlN59CLM5qzZz-l-48" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="930" y="1254" as="sourcePoint" />
+ <mxPoint x="890" y="1254" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1547" y="1180" />
+ <mxPoint x="1547" y="1180" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uXPUMNlN59CLM5qzZz-l-50" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="uXPUMNlN59CLM5qzZz-l-47" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1557" y="1177" as="sourcePoint" />
+ <mxPoint x="1557" y="1210" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1680" y="950" />
+ <mxPoint x="1680" y="950" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="zPw24jWEZLqpMGPXK7nM-1" value="&lt;div&gt;&lt;div&gt;The Metadata Component stores metadata such as name, tag and layer. This data can be used in various systems and scripts.&lt;br&gt;The Metadata Component also store its parent and child(s). An empty childs vector means that the GameObject has no childs. A parent of UINT32_MAX means that the GameObject has no parent.&lt;/div&gt;&lt;/div&gt;" style="shape=note;size=20;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="2980" y="670" width="300" height="111" as="geometry" />
+ </mxCell>
+ <mxCell id="zPw24jWEZLqpMGPXK7nM-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="ZHgyX9xX1EySbdOx-EKd-35" target="zPw24jWEZLqpMGPXK7nM-1" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="2900" y="732" as="sourcePoint" />
+ <mxPoint x="2950" y="732" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2960" y="690" />
+ <mxPoint x="2960" y="690" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="zPw24jWEZLqpMGPXK7nM-3" value="&lt;div&gt;&lt;div&gt;All Components inherits from the Component class.&lt;/div&gt;&lt;div&gt;The GameObjectId tells at which GameObject this Component belongs. The get_instantes_max() method returns the maximum amount of instances of a specific Component type per GameObject. A value of -1 is returned by default, meaning that there is not maximum.&lt;/div&gt;&lt;/div&gt;" style="shape=note;size=20;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" parent="1" vertex="1">
+ <mxGeometry x="1350" y="30" width="300" height="100" as="geometry" />
+ </mxCell>
+ <mxCell id="zPw24jWEZLqpMGPXK7nM-4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-106" target="zPw24jWEZLqpMGPXK7nM-3" edge="1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1320" y="150" as="sourcePoint" />
+ <mxPoint x="1410" y="100" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1500" y="150" />
+ <mxPoint x="1500" y="150" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+ <diagram id="VIHL7wQS8aPE5ZAyjLTS" name="Systems">
+ <mxGraphModel dx="-560" dy="596" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-1" value="ReplaySystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" vertex="1" parent="1">
+ <mxGeometry x="1760" y="79" width="260" height="119" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-6" value="UI : vector&lt;UIMemento&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry y="26" width="260" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="CHqShTNGYbQWy_1IoP_C-2" value="Components : vector&lt;ComponentsMemento&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry y="43" width="260" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-7" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry y="60" width="260" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-8" value="+save() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry y="68" width="260" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-9" value="+update() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry y="85" width="260" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="CHqShTNGYbQWy_1IoP_C-1" value="+restore() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry y="102" width="260" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-10" value="UIMemento" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" vertex="1" parent="1">
+ <mxGeometry x="2080" y="59.5" width="160" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-11" value="???" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-10">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-12" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-10">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-13" value="+save() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-10">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-15" value="ComponentsMemento" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;strokeColor=#0000FF;fontColor=#0000FF;" vertex="1" parent="1">
+ <mxGeometry x="2080" y="149.5" width="480" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-16" value="+components : unorded_map&lt;type_index, vector&lt;vector&lt;unique_ptr&lt;Component&gt;&gt;&gt;&gt;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-15">
+ <mxGeometry y="26" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-17" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;fontColor=#0000FF;strokeColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-15">
+ <mxGeometry y="43" width="480" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="cXXxZzA9SX6n7JXDILWO-18" value="+save() : void" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;" vertex="1" parent="cXXxZzA9SX6n7JXDILWO-15">
+ <mxGeometry y="51" width="480" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="X9CSDB0Mfs1c3MEAbiBr-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=diamondThin;endFill=1;strokeColor=#0000FF;" edge="1" parent="1" source="cXXxZzA9SX6n7JXDILWO-15" target="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="2630" y="140" as="sourcePoint" />
+ <mxPoint x="1440" y="332" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2060" y="170" />
+ <mxPoint x="2060" y="170" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="X9CSDB0Mfs1c3MEAbiBr-2" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#0000FF;" connectable="0" vertex="1" parent="X9CSDB0Mfs1c3MEAbiBr-1">
+ <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
+ <mxPoint x="-7" y="-11" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="X9CSDB0Mfs1c3MEAbiBr-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=diamondThin;endFill=1;strokeColor=#0000FF;" edge="1" parent="1" source="cXXxZzA9SX6n7JXDILWO-10" target="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="2090" y="180" as="sourcePoint" />
+ <mxPoint x="2030" y="180" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2070" y="100" />
+ <mxPoint x="2070" y="100" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="X9CSDB0Mfs1c3MEAbiBr-4" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#0000FF;" connectable="0" vertex="1" parent="X9CSDB0Mfs1c3MEAbiBr-3">
+ <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
+ <mxPoint x="-7" y="-11" as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="qdE3wgv1g5p_rn1gBNF2-1" value="The ReplaySystem takes care of the replay functionality of the game. The game programmer can create a deep copy of all the Component using the save() method of the ReplaySystem. Calling this method, will instruct the ComponentsMemento to make a deep copy. Each update, the user inputs are saved using the UIMemento.&lt;br&gt;It&#39;s now possible to restore a saved ComponentsMemento and replay the game using the saved UIMementos." style="shape=note;size=20;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" vertex="1" parent="1">
+ <mxGeometry x="1770" y="230" width="290" height="160" as="geometry" />
+ </mxCell>
+ <mxCell id="PqfyOcDjqIgEyB7C-kU8-1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" edge="1" parent="1" source="qdE3wgv1g5p_rn1gBNF2-1" target="cXXxZzA9SX6n7JXDILWO-1">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1500" y="170" as="sourcePoint" />
+ <mxPoint x="1500" y="130" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="1900" y="210" />
+ <mxPoint x="1900" y="210" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="PqfyOcDjqIgEyB7C-kU8-2" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" edge="1" parent="1" source="qdE3wgv1g5p_rn1gBNF2-1" target="cXXxZzA9SX6n7JXDILWO-15">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="1910" y="240" as="sourcePoint" />
+ <mxPoint x="1910" y="208" as="targetPoint" />
+ <Array as="points">
+ <mxPoint x="2120" y="260" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+ <diagram id="HarpljWlc_V1SPs2e7iR" name="Debug">
+ <mxGraphModel dx="1368" dy="715" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ </root>
+ </mxGraphModel>
+ </diagram>
+ <diagram id="hmS379YNZ-lkRr77CXku" name="Fixed loop">
+ <mxGraphModel dx="1434" dy="706" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="6kGKwBqryAZ-5GoWzS5M-5" value="Has Script" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="6kGKwBqryAZ-5GoWzS5M-1" target="6kGKwBqryAZ-5GoWzS5M-4">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-3" value="No Script" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="6kGKwBqryAZ-5GoWzS5M-1" target="uyKTVYCHPqaCLTrU0X7D-2">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="6kGKwBqryAZ-5GoWzS5M-1" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="270" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="6kGKwBqryAZ-5GoWzS5M-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="6kGKwBqryAZ-5GoWzS5M-2" target="6kGKwBqryAZ-5GoWzS5M-1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="6kGKwBqryAZ-5GoWzS5M-2" value="Begin Fixed loop" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="280" y="170" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="6kGKwBqryAZ-5GoWzS5M-4" target="uyKTVYCHPqaCLTrU0X7D-2">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="560" y="490" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="6kGKwBqryAZ-5GoWzS5M-4" value="On update" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="500" y="280" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="uyKTVYCHPqaCLTrU0X7D-2" target="uyKTVYCHPqaCLTrU0X7D-9">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-2" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="450" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-17" value="No rigidbody" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="uyKTVYCHPqaCLTrU0X7D-9" target="uyKTVYCHPqaCLTrU0X7D-14">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-19" value="Has RigidBody" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="uyKTVYCHPqaCLTrU0X7D-9" target="JXiLtSR4Z3VAab4H5BO8-5">
+ <mxGeometry relative="1" as="geometry">
+ <mxPoint x="340" y="730" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-9" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="600" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-14" value="" style="ellipse;html=1;shape=endState;fillColor=strokeColor;" vertex="1" parent="1">
+ <mxGeometry x="545" y="625" width="30" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="uyKTVYCHPqaCLTrU0X7D-15" target="6kGKwBqryAZ-5GoWzS5M-2">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="uyKTVYCHPqaCLTrU0X7D-15" value="" style="ellipse;fillColor=strokeColor;html=1;" vertex="1" parent="1">
+ <mxGeometry x="325" y="90" width="30" height="30" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-1" value="Event System" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="280" width="120" height="230" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-2" value="Collision System" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="610" width="120" height="490" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-7" value="Has Collider" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-5" target="JXiLtSR4Z3VAab4H5BO8-6">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-5" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="760" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-6" target="JXiLtSR4Z3VAab4H5BO8-8">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-39" value="No Collider" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-6" target="JXiLtSR4Z3VAab4H5BO8-36">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="510" y="940" />
+ <mxPoint x="510" y="1200" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-6" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="900" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-37" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-8" target="JXiLtSR4Z3VAab4H5BO8-36">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-8" value="detect Collision" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="280" y="1050" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-16" value="No collision" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-10" target="JXiLtSR4Z3VAab4H5BO8-15">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-20" value="Has collision" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-10" target="JXiLtSR4Z3VAab4H5BO8-19">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-10" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="1730" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-12" target="JXiLtSR4Z3VAab4H5BO8-15">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="530" y="1950" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-12" value="On collision Static" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="470" y="1860" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-14" value="Event System" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="1710" width="120" height="280" as="geometry" />
+ </mxCell>
+ <mxCell id="rDM5npk4WMzzq9nIs2zg-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-15" target="rDM5npk4WMzzq9nIs2zg-1">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-15" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="1910" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-18" target="JXiLtSR4Z3VAab4H5BO8-15">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="730" y="1950" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-18" value="On collision User" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="670" y="1860" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-21" value="Collide with static" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-19" target="JXiLtSR4Z3VAab4H5BO8-12">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-22" value="else" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-19" target="JXiLtSR4Z3VAab4H5BO8-18">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-19" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="490" y="1730" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-45" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-26" target="JXiLtSR4Z3VAab4H5BO8-44">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-26" value="move object" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="280" y="1465" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-29" value="Physics System" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="90" y="1280" width="120" height="370" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-32" value="Script System" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="680" y="280" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-33" value="Script System" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="840" y="1860" width="120" height="60" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-41" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-36" target="JXiLtSR4Z3VAab4H5BO8-40">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-36" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="1160" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-42" value="else" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-40" target="JXiLtSR4Z3VAab4H5BO8-26">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-47" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-40" target="JXiLtSR4Z3VAab4H5BO8-44">
+ <mxGeometry relative="1" as="geometry">
+ <Array as="points">
+ <mxPoint x="510" y="1340" />
+ <mxPoint x="510" y="1630" />
+ </Array>
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-48" value="Static object" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="JXiLtSR4Z3VAab4H5BO8-47">
+ <mxGeometry x="-0.0218" y="2" relative="1" as="geometry">
+ <mxPoint as="offset" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-40" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="1300" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-46" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="JXiLtSR4Z3VAab4H5BO8-44" target="JXiLtSR4Z3VAab4H5BO8-10">
+ <mxGeometry relative="1" as="geometry" />
+ </mxCell>
+ <mxCell id="JXiLtSR4Z3VAab4H5BO8-44" value="" style="rhombus;whiteSpace=wrap;html=1;" vertex="1" parent="1">
+ <mxGeometry x="300" y="1590" width="80" height="80" as="geometry" />
+ </mxCell>
+ <mxCell id="rDM5npk4WMzzq9nIs2zg-1" value="" style="ellipse;html=1;shape=endState;fillColor=strokeColor;" vertex="1" parent="1">
+ <mxGeometry x="325" y="2100" width="30" height="30" as="geometry" />
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+ <diagram id="YIiIl2IRF6RgPQzV_9jG" name="Example">
+ <mxGraphModel dx="1434" dy="706" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
+ <root>
+ <mxCell id="0" />
+ <mxCell id="1" parent="0" />
+ <mxCell id="rDWCdEblCpn9XmIhacVI-1" value="example&#xa;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
+ <mxGeometry x="160" y="70" width="160" height="68" as="geometry">
+ <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="rDWCdEblCpn9XmIhacVI-2" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="rDWCdEblCpn9XmIhacVI-1" vertex="1">
+ <mxGeometry y="26" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="rDWCdEblCpn9XmIhacVI-3" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="rDWCdEblCpn9XmIhacVI-1" vertex="1">
+ <mxGeometry y="43" width="160" height="8" as="geometry" />
+ </mxCell>
+ <mxCell id="rDWCdEblCpn9XmIhacVI-4" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="rDWCdEblCpn9XmIhacVI-1" vertex="1">
+ <mxGeometry y="51" width="160" height="17" as="geometry" />
+ </mxCell>
+ <mxCell id="INcigVm9b0TAH9v99pnO-1" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="200" y="200" as="sourcePoint" />
+ <mxPoint x="160" y="160" as="targetPoint" />
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="BdnN9X1UdPwwrvRyySie-1" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="280" y="200" as="sourcePoint" />
+ <mxPoint x="240" y="160" as="targetPoint" />
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="wr2JkJuTEkJ5C-UpQk8J-1" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="360" y="200" as="sourcePoint" />
+ <mxPoint x="320" y="160" as="targetPoint" />
+ <Array as="points" />
+ </mxGeometry>
+ </mxCell>
+ <mxCell id="oRUFz-RLu-avQMRJHf4n-1" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
+ <mxPoint x="440" y="200" as="sourcePoint" />
+ <mxPoint x="400" y="160" as="targetPoint" />
+ </mxGeometry>
+ </mxCell>
+ </root>
+ </mxGraphModel>
+ </diagram>
+ <diagram id="C5RBs43oDa-KdzZeNtuy" name="Old">
+ <mxGraphModel dx="2195" dy="715" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
@@ -721,7 +2214,7 @@
</Array>
</mxGeometry>
</mxCell>
- <mxCell id="R9gNofyh4d_rq5U6zAVz-0" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="PVU13nk45NJB4w4DQgDw-185" target="PVU13nk45NJB4w4DQgDw-165">
+ <mxCell id="R9gNofyh4d_rq5U6zAVz-0" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="PVU13nk45NJB4w4DQgDw-185" target="PVU13nk45NJB4w4DQgDw-165" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="970" y="175" as="sourcePoint" />
<mxPoint x="620" y="130" as="targetPoint" />
@@ -735,814 +2228,407 @@
</root>
</mxGraphModel>
</diagram>
- <diagram id="ehgrrEZq6aIl9GSG0JpL" name="Main diagram 2">
- <mxGraphModel dx="1400" dy="828" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="3300" pageHeight="2339" math="0" shadow="0">
+ <diagram id="HwAwsUWtoMPbd-VC63Ug" name="Rendering/AssetManager">
+ <mxGraphModel dx="3068" dy="1938" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-1" value="GameObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="710" y="730" width="160" height="153" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-1" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=none;" vertex="1" parent="1">
+ <mxGeometry x="-1670" y="-610" width="2470" height="560" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-2" value="+name" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-3" value="+tag" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-2" value="" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;fillColor=none;" vertex="1" parent="1">
+ <mxGeometry x="-1673" y="-37" width="2470" height="1160" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-4" value="+active" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-5" value="+layer" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="77" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-6" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="94" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-7" value="+AddComponent()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="102" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-8" value="+IsActiveInWorld()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="119" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-9" value="+IsActiveSelf()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=0;resizable=0;deletable=0;editable=0;locked=1;connectable=0;" parent="5-8bWhzpOWirDYeo3-Cj-1" vertex="1">
- <mxGeometry y="136" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-10" value="Scene" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="430" y="780" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-3" value="Texture" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-1250" y="234.32" width="240" height="164" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-11" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-4" value="+ Texture(path, reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-3">
+ <mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-12" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-5" value="+ Texture(unique_ptr&lt;Resource&gt;, reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-3">
+ <mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-13" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-10" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-6" value="~Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-3">
+ <mxGeometry y="78" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-14" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-10" target="5-8bWhzpOWirDYeo3-Cj-1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="650" y="770" as="sourcePoint" />
- <mxPoint x="680" y="780" as="targetPoint" />
- <Array as="points">
- <mxPoint x="710" y="815" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-7" value="- &#x9;void load(std::unique_ptr&lt;api::Resource&gt; res);&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-3">
+ <mxGeometry y="104" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-15" value="+contents" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-14" vertex="1" connectable="0">
- <mxGeometry x="-0.1405" y="-1" relative="1" as="geometry">
- <mxPoint y="-17" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-8" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-3">
+ <mxGeometry y="130" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-16" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-14" vertex="1" connectable="0">
- <mxGeometry x="-0.7119" y="-1" relative="1" as="geometry">
- <mxPoint y="14" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-9" value="- SDL_texture unique_ptr" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-3">
+ <mxGeometry y="138" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-17" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-14" vertex="1" connectable="0">
- <mxGeometry x="0.6214" y="-1" relative="1" as="geometry">
- <mxPoint x="3" y="14" as="offset" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-10" value="&lt;&lt;singleton&gt;&gt;&#xa;AssetManager" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=38;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-1620" y="-440" width="380" height="247" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-18" value="Camera" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="430" y="950" width="160" height="102" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-11" value="- static AssetManager &amp; get_instance();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="38" width="380" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-19" value="+backgroundColor" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-18" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-12" value="- AssetManager();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="64" width="380" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-20" value="+ascpectWidth" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-18" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-13" value="- virtual ~AssetManager()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="90" width="380" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-21" value="+ascpectHeight" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-18" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-14" value="template &lt;typename resource&gt;&#xa;std::shared_ptr&lt;resource&gt; cache(path, bool reload)" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="116" width="380" height="35" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-22" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-18" vertex="1">
- <mxGeometry y="77" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-15" value="- virtual ~AssetManager()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="151" width="380" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-23" value="-" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-18" vertex="1">
- <mxGeometry y="85" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-16" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="177" width="380" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-24" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-18" target="5-8bWhzpOWirDYeo3-Cj-10" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="600" y="825" as="sourcePoint" />
- <mxPoint x="530" y="850" as="targetPoint" />
- <Array as="points" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-17" value="template &lt;typename resource&gt;&#xa;- map&lt;path, shared_ptr&lt;resource&gt;&gt; cache" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="185" width="380" height="35" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-25" value="+renderScene" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-24" vertex="1" connectable="0">
- <mxGeometry x="-0.1405" y="-1" relative="1" as="geometry">
- <mxPoint x="-41" y="-6" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-18" value="- friend class Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry y="220" width="380" height="27" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-26" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-24" vertex="1" connectable="0">
- <mxGeometry x="-0.7119" y="-1" relative="1" as="geometry">
- <mxPoint x="-21" y="4" as="offset" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-19" value="Sprite" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-534.06" y="220" width="240" height="190" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-27" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-24" vertex="1" connectable="0">
- <mxGeometry x="0.6214" y="-1" relative="1" as="geometry">
- <mxPoint x="9" y="-9" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-20" value="+ &#x9;Sprite(crepe::Texture&amp; image, const Color&amp; color, const flip_settings&amp; flip ) :  sprite_image(&amp;image), color(color), flip(flip){}&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-28" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-18" target="5-8bWhzpOWirDYeo3-Cj-1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="520" y="960" as="sourcePoint" />
- <mxPoint x="680" y="860" as="targetPoint" />
- <Array as="points" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-21" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="52" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-29" value="UIObject" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="710" y="930" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-22" value="shared_ptr&lt;Texture&gt; image" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="60" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-30" value="+width" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-29" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-23" value="+ Color color" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="86" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-31" value="+height" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-29" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-24" value="+ flip_settings flip" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="112" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-32" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-29" vertex="1">
- <mxGeometry y="60" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-25" value="+ uint8_t sortingLayer" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="138" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-33" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-29" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-26" value="+ uint8_t orderInLayer" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry y="164" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-34" value="Button" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="620" y="1070" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-27" value="&lt;&lt;singleton&gt;&gt;&#xa;SdlContext" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=37;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-1160" y="-440" width="450" height="361" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-35" value="+interactable&#xa;" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-34" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-28" value="- SdlContext();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="37" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-36" value="+onClick" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-34" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-29" value="virtual ~SdlContext();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="63" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-37" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-34" vertex="1">
- <mxGeometry y="60" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-30" value="- static SdlContext &amp; get_instance();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="89" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-38" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-34" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-31" value="- void draw(const api::Sprite&amp;, const api::Transform&amp;);&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="115" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-39" value="Text" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="804" y="1070" width="160" height="136" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-32" value="- void presentScreen();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="141" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-40" value="+text" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-33" value="- void clearScreen();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="167" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-41" value="+font: String" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-34" value="- void draw(const api::Sprite&amp;, const api::Transform&amp;);&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="193" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-42" value="+size: int" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-43" value="+allignment" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="77" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-44" value="+color" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="94" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-35" value="- SDL_Texture* setTextureFromPath(const char*);" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="219" width="450" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-45" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="111" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-36" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="245" width="450" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-46" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-39" vertex="1">
- <mxGeometry y="119" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-37" value="- friend class Texture" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="253" width="450" height="27" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-47" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-29" target="5-8bWhzpOWirDYeo3-Cj-1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="600" y="960" as="sourcePoint" />
- <mxPoint x="720" y="868" as="targetPoint" />
- <Array as="points" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-38" value="- friend class RenderSystem" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="280" width="450" height="27" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-48" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-34" target="5-8bWhzpOWirDYeo3-Cj-29" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="585" y="970" as="sourcePoint" />
- <mxPoint x="774" y="1000" as="targetPoint" />
- <Array as="points" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-39" value="- SDL_Window* window" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="307" width="450" height="27" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-49" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-39" target="5-8bWhzpOWirDYeo3-Cj-29" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="595" y="980" as="sourcePoint" />
- <mxPoint x="740" y="888" as="targetPoint" />
- <Array as="points" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-40" value="- SDL_Renderer* renderer" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry y="334" width="450" height="27" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-50" value="" style="endArrow=open;html=1;rounded=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;resizable=1;endFill=0;endSize=8;" parent="1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="870" y="830" as="sourcePoint" />
- <mxPoint x="870" y="870" as="targetPoint" />
- <Array as="points">
- <mxPoint x="910" y="830" />
- <mxPoint x="910" y="870" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-41" value="RenderSystem" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=25;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-520" y="-324.5" width="240" height="130" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-51" value="+parent &amp;gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-50" vertex="1" connectable="0">
- <mxGeometry x="-0.719" y="3" relative="1" as="geometry">
- <mxPoint x="13" y="-4" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-42" value="- RenderSystem()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-41">
+ <mxGeometry y="25" width="240" height="22" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-52" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-50" vertex="1" connectable="0">
- <mxGeometry x="-0.0905" y="1" relative="1" as="geometry">
- <mxPoint x="-31" y="-5" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-43" value="- ~ RenderSystem()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-41">
+ <mxGeometry y="47" width="240" height="22" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-53" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-50" vertex="1" connectable="0">
- <mxGeometry y="1" relative="1" as="geometry">
- <mxPoint x="-21" y="30" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-44" value="- void SortLayers()" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-41">
+ <mxGeometry y="69" width="240" height="22" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-54" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=diamondThin;endFill=1;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-56" target="5-8bWhzpOWirDYeo3-Cj-174" edge="1">
- <mxGeometry relative="1" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-45" value="+ void update() override" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-41">
+ <mxGeometry y="91" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-55" value="1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-54" vertex="1" connectable="0">
- <mxGeometry x="-0.9593" y="-3" relative="1" as="geometry">
- <mxPoint x="-7" y="-6" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-46" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-41">
+ <mxGeometry y="117" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-56" value="Transform" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1460" y="265" width="160" height="102" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-47" value="&lt;&lt;interface&gt;&gt;&#xa;&lt;&lt;singleton&gt;&gt;&#xa;System" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=50;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-520" y="-580" width="240" height="162" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-57" value="+position" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-48" value="+ static System &amp; get_instance();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-47">
+ <mxGeometry y="50" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-58" value="+rotation" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-49" value="+ virtual void update() = 0;&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-47">
+ <mxGeometry y="76" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-59" value="+scale" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-50" value="# System() {};&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-47">
+ <mxGeometry y="102" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-60" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
- <mxGeometry y="77" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-51" value="# virtual ~System() {};&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-47">
+ <mxGeometry y="128" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-61" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-56" vertex="1">
- <mxGeometry y="85" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-52" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-47">
+ <mxGeometry y="154" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-62" value="iMouseListener" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1030" y="1070" width="160" height="119" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-53" value="Color" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-610" y="480" width="400" height="580" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-63" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-54" value="+ Color(double red, double green, double blue, double alpha);&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="26" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-64" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-55" value=" + static const Color &amp; get_white();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="52" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-65" value="+OnMouseMoved()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-56" value=" + static const Color &amp; get_red();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="78" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-66" value="+OnMouseClicked()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-57" value=" + static const Color &amp; get_green();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="104" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-67" value="+OnMousePressed()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
- <mxGeometry y="85" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-58" value=" + static const Color &amp; get_blue();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="130" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-68" value="+OnMouseReleased()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-62" vertex="1">
- <mxGeometry y="102" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-59" value=" + static const Color &amp; get_cyan();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="156" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-69" value="iKeyListener" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1230" y="1070" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-60" value=" + static const Color &amp; get_magenta();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="182" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-70" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-61" value=" + static const Color &amp; get_yellow();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="208" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-71" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-62" value=" + static const Color &amp; get_black();&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="234" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-72" value="+OnKeyPressed()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-63" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="260" width="400" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-73" value="+OnKeyReleased()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-69" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-64" value="- double r" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="268" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-74" value="Color" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="190" y="950" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-65" value="- double g" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="294" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-75" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-74" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-66" value="- double b" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="320" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-76" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-74" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-67" value="- double a" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="346" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-77" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-74" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-68" value="- static Color white" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="372" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-78" value="Point" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="190" y="840" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-69" value="- static Color red" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="398" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-79" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-70" value="- static Color green" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="424" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-80" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-71" value="- static Color blue" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="450" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-81" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-78" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-72" value="- static Color cyan" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="476" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-82" value="Debug" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
- <mxGeometry x="190" y="750" width="70" height="40" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-73" value="- static Color magenta" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="502" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-83" value="Time" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
- <mxGeometry x="190" y="680" width="70" height="40" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-74" value="- static Color yellow" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="528" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-84" value="Input" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;" parent="1" vertex="1">
- <mxGeometry x="190" y="610" width="70" height="40" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-75" value="- static Color black" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-53">
+ <mxGeometry y="554" width="400" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-85" value="AudioSource" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="240" y="282" width="160" height="136" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-76" value="Point" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="139.9999999999999" y="154" width="240" height="90.71" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-86" value="+audioClip: Resource*" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#ff0000;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-87" value="+playOnAwake: Boolean" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-88" value="+loop: Boolean" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-89" value="+volume" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="77" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-90" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="94" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-91" value="+Play(looping)" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="102" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-92" value="+Stop()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-85" vertex="1">
- <mxGeometry y="119" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-93" value="Collider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="520" y="282" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-94" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-93" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-95" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-93" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-96" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-93" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-97" value="CircleCollider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="430" y="388" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-98" value="+radius" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-99" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-100" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-97" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-101" value="BoxCollider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="624" y="386" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-102" value="+width" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-103" value="+height" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-104" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
- <mxGeometry y="60" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-105" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-101" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-106" value="Component" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="804" y="140" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-107" value="+active: Boolean" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-108" value="+gameObjectId: uint32_t" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-109" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
- <mxGeometry y="60" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-110" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-106" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-111" value="Rigidbody" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="760" y="265" width="160" height="102" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-112" value="+mass" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-113" value="+gravityScale" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-114" value="+bodyType" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-115" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
- <mxGeometry y="77" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-116" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-111" vertex="1">
- <mxGeometry y="85" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-117" value="BehaviorScript" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="940" y="383" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-118" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-119" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-120" value="+OnStart()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-121" value="+OnUpdate()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-117" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-122" value="Sprite" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1110" y="230" width="160" height="153" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-123" value="+sprite:Resource*" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#ff0000;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-124" value="+color" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="43" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-125" value="+flipX" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="60" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-126" value="+flipY" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="77" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-127" value="+sortingLayer" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="94" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-128" value="+orderInLayer" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="111" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-129" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="128" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-130" value="+Render()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-122" vertex="1">
- <mxGeometry y="136" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-131" value="Animator" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1280" y="383" width="160" height="85" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
- </mxGeometry>
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-132" value="+fps" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-133" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-134" value="+Play(looping)" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-77" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-76">
+ <mxGeometry y="26" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-135" value="+Stop()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-131" vertex="1">
- <mxGeometry y="68" width="160" height="17" as="geometry" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-78" value="+ double x" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-76">
+ <mxGeometry y="34" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-136" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-85" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="710" y="700" as="sourcePoint" />
- <mxPoint x="550" y="590" as="targetPoint" />
- <Array as="points">
- <mxPoint x="320" y="615" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-79" value="+ double y" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-76">
+ <mxGeometry y="60" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-137" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-136" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-16" y="-4" as="offset" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-80" value="Component" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-534.06" width="240" height="90" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-138" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.25;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-97" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="700" y="590" as="sourcePoint" />
- <mxPoint x="569" y="548" as="targetPoint" />
- <Array as="points">
- <mxPoint x="510" y="588" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-81" value="+active: Boolean" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-80">
+ <mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-139" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-138" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-16" y="-4" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-82" value="+ gameId" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-80">
+ <mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-140" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.25;exitY=0;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-101" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="744" y="750" as="sourcePoint" />
- <mxPoint x="579" y="558" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-83" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-80">
+ <mxGeometry y="78" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-141" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-140" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-16" y="-4" as="offset" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-84" value="Transform" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-220" y="140.64" width="240" height="112" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-142" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.5;exitY=0;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-111" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="754" y="760" as="sourcePoint" />
- <mxPoint x="589" y="568" as="targetPoint" />
- <Array as="points">
- <mxPoint x="790" y="490" />
- <mxPoint x="840" y="490" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-85" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-84">
+ <mxGeometry y="26" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-143" value="&lt;font color=&quot;#ff3333&quot;&gt;0..1&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-142" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-16" y="-11" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-86" value="+ Point position; // Translation (shift)&#xa;&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-84">
+ <mxGeometry y="34" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-144" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=0.75;exitY=0;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-117" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="764" y="770" as="sourcePoint" />
- <mxPoint x="599" y="578" as="targetPoint" />
- <Array as="points">
- <mxPoint x="825" y="520" />
- <mxPoint x="1020" y="520" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-87" value="+ double rotation; // Rotation, in radians&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-84">
+ <mxGeometry y="60" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-145" value="*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-144" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-12" y="-21" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-88" value="+ double scale; // Multiplication factoh&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-84">
+ <mxGeometry y="86" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-146" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.25;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-122" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="774" y="780" as="sourcePoint" />
- <mxPoint x="609" y="588" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1190" y="588" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-89" value="Resource" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-1600" y="234.32" width="240" height="164" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-147" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-146" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-16" y="-45" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-90" value="+ Resource(const std::string &amp; src);" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry y="26" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-148" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;edgeStyle=orthogonalEdgeStyle;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#FF0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-131" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="700" y="610" as="sourcePoint" />
- <mxPoint x="619" y="598" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1360" y="615" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-91" value="+ const std::istream &amp; read();" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry y="52" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-149" value="0..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-148" vertex="1" connectable="0">
- <mxGeometry x="0.8037" y="-2" relative="1" as="geometry">
- <mxPoint x="-16" y="-50" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-92" value="+ const char * canonical()&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry y="78" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-150" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-131" target="5-8bWhzpOWirDYeo3-Cj-122" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="1190" y="504.38" as="sourcePoint" />
- <mxPoint x="1450" y="505" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1360" y="305" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-93" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry y="104" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-151" value="0..1" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-150" vertex="1" connectable="0">
- <mxGeometry x="-0.7119" y="-1" relative="1" as="geometry">
- <mxPoint x="-21" y="14" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-94" value="- &#x9;std::string src;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry y="112" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-152" value="1..*" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="5-8bWhzpOWirDYeo3-Cj-150" vertex="1" connectable="0">
- <mxGeometry x="0.6214" y="-1" relative="1" as="geometry">
- <mxPoint x="3" y="14" as="offset" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-95" value="- &#x9;std::ifstream file;&#xa;" style="text;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry y="138" width="240" height="26" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-153" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-85" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="593" y="840" as="sourcePoint" />
- <mxPoint x="720" y="752" as="targetPoint" />
- <Array as="points">
- <mxPoint x="320" y="180" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-96" value="TODO:Animator" style="swimlane;fontStyle=2;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;" vertex="1" parent="1">
+ <mxGeometry x="-940" y="234.32" width="240" height="49.36" as="geometry">
+ <mxRectangle x="230" y="140" width="160" height="26" as="alternateBounds" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-154" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-93" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="770" y="428" as="sourcePoint" />
- <mxPoint x="897" y="340" as="targetPoint" />
- <Array as="points">
- <mxPoint x="600" y="210" />
- </Array>
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-97" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;" vertex="1" parent="HgKoQxlyUx1tn9zsXLrm-96">
+ <mxGeometry y="26" width="240" height="8" as="geometry" />
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-155" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="549.9999999999998" y="388" as="sourcePoint" />
- <mxPoint x="549.9999999999998" y="350.0000000000002" as="targetPoint" />
- <Array as="points">
- <mxPoint x="550" y="380" />
- <mxPoint x="550" y="380" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-98" value="" style="endArrow=block;endSize=16;endFill=0;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-96" target="HgKoQxlyUx1tn9zsXLrm-80">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-740" y="440" as="sourcePoint" />
+ <mxPoint x="-570" y="439.99999999999994" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-156" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-101" target="5-8bWhzpOWirDYeo3-Cj-93" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="530" y="530" as="sourcePoint" />
- <mxPoint x="657" y="442" as="targetPoint" />
- <Array as="points">
- <mxPoint x="650" y="370" />
- <mxPoint x="650" y="370" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-99" value="" style="endArrow=block;endSize=16;endFill=0;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-84" target="HgKoQxlyUx1tn9zsXLrm-80">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-720" y="450" as="sourcePoint" />
+ <mxPoint x="-560" y="450" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-157" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-111" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="900" y="418" as="sourcePoint" />
- <mxPoint x="1027" y="330" as="targetPoint" />
- <Array as="points">
- <mxPoint x="870" y="250" />
- <mxPoint x="870" y="250" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-100" value="" style="endArrow=block;endSize=16;endFill=0;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-19" target="HgKoQxlyUx1tn9zsXLrm-80">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-710" y="460" as="sourcePoint" />
+ <mxPoint x="-550" y="460" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-158" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-117" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="990" y="506" as="sourcePoint" />
- <mxPoint x="1117" y="418" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1020" y="220" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-101" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-53" target="HgKoQxlyUx1tn9zsXLrm-19">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-827" y="550" as="sourcePoint" />
+ <mxPoint x="-667" y="550" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-159" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-122" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="1310" y="210" as="sourcePoint" />
- <mxPoint x="960" y="194" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1190" y="190" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-102" value="" style="endArrow=diamondThin;endFill=1;endSize=24;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-76" target="HgKoQxlyUx1tn9zsXLrm-84">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="110.62230769230791" y="360" as="sourcePoint" />
+ <mxPoint x="109.99769230769243" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-160" value="ParticleSystem" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1340" y="810" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-103" value="" style="endArrow=open;endFill=1;endSize=12;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-96" target="HgKoQxlyUx1tn9zsXLrm-20">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-770" y="340" as="sourcePoint" />
+ <mxPoint x="-540" y="290" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-161" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-160" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-162" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-160" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-163" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-160" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-164" value="PolygonCollider" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="1340" y="908" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-104" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffffff;" vertex="1" connectable="0" parent="HgKoQxlyUx1tn9zsXLrm-103">
+ <mxGeometry x="0.3336" y="-3" relative="1" as="geometry">
+ <mxPoint x="29.44" y="-12" as="offset" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-165" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-164" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-166" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="5-8bWhzpOWirDYeo3-Cj-164" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-167" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="5-8bWhzpOWirDYeo3-Cj-164" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-168" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;fontColor=#FF0000;strokeColor=#fa0000;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-56" target="5-8bWhzpOWirDYeo3-Cj-106" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="1360" y="365" as="sourcePoint" />
- <mxPoint x="970" y="316" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1540" y="150" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-105" value="0..1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=#ffffff;" vertex="1" connectable="0" parent="HgKoQxlyUx1tn9zsXLrm-103">
+ <mxGeometry x="-0.8674" y="1" relative="1" as="geometry">
+ <mxPoint y="-8" as="offset" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-169" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=open;endFill=0;strokeColor=#0000FF;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-170" target="5-8bWhzpOWirDYeo3-Cj-1" edge="1">
- <mxGeometry relative="1" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-170" value="ComponentManager" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;fontColor=#0000FF;strokeColor=#0000FF;" parent="1" vertex="1">
- <mxGeometry x="720" y="560" width="140" height="110" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-106" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-3" target="HgKoQxlyUx1tn9zsXLrm-89">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-1600" y="1080" as="sourcePoint" />
+ <mxPoint x="-1440" y="1080" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-171" value="+components" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontFamily=Helvetica;fontSize=12;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
- <mxGeometry y="26" width="140" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-172" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=#0000FF;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
- <mxGeometry y="43" width="140" height="8" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-173" value="+AddComponent()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
- <mxGeometry y="51" width="140" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-174" value="+DeleteComponent()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
- <mxGeometry y="68" width="140" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-175" value="+GetComponent()" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;fontSize=12;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;fontColor=#0000FF;strokeColor=none;" parent="5-8bWhzpOWirDYeo3-Cj-170" vertex="1">
- <mxGeometry y="85" width="140" height="17" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-176" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=open;startFill=0;endArrow=none;endFill=0;strokeColor=#0000FF;" parent="1" source="5-8bWhzpOWirDYeo3-Cj-177" target="5-8bWhzpOWirDYeo3-Cj-174" edge="1">
- <mxGeometry relative="1" as="geometry" />
- </mxCell>
- <mxCell id="5-8bWhzpOWirDYeo3-Cj-177" value="&lt;font color=&quot;#0000ff&quot;&gt;Systems&lt;/font&gt;" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;whiteSpace=wrap;strokeColor=#0000FF;" parent="1" vertex="1">
- <mxGeometry x="520" y="645" width="70" height="40" as="geometry" />
- </mxCell>
- <mxCell id="3iqK6Q-Owgr1maHwc76Q-3" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="5-8bWhzpOWirDYeo3-Cj-131" target="5-8bWhzpOWirDYeo3-Cj-106">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="1200" y="240" as="sourcePoint" />
- <mxPoint x="974" y="200" as="targetPoint" />
- <Array as="points">
- <mxPoint x="1400" y="170" />
- </Array>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-107" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-3" target="HgKoQxlyUx1tn9zsXLrm-10">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-1240" y="326.32000000000016" as="sourcePoint" />
+ <mxPoint x="-1350" y="326.32000000000016" as="targetPoint" />
</mxGeometry>
</mxCell>
- </root>
- </mxGraphModel>
- </diagram>
- <diagram id="YIiIl2IRF6RgPQzV_9jG" name="Example">
- <mxGraphModel dx="1050" dy="621" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
- <root>
- <mxCell id="0" />
- <mxCell id="1" parent="0" />
- <mxCell id="rDWCdEblCpn9XmIhacVI-1" value="example&#xa;" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;strokeWidth=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;direction=east;" parent="1" vertex="1">
- <mxGeometry x="160" y="70" width="160" height="68" as="geometry">
- <mxRectangle x="330" y="540" width="160" height="26" as="alternateBounds" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-108" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-3" target="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-1162.1648026738653" y="244.32000000000016" as="sourcePoint" />
+ <mxPoint x="-1371.0965419719755" y="-162" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="rDWCdEblCpn9XmIhacVI-2" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="rDWCdEblCpn9XmIhacVI-1" vertex="1">
- <mxGeometry y="26" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="rDWCdEblCpn9XmIhacVI-3" value="" style="line;html=1;strokeWidth=1;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=1;labelPosition=right;points=[];portConstraint=eastwest;fontSize=12;perimeterSpacing=0;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;verticalLabelPosition=middle;" parent="rDWCdEblCpn9XmIhacVI-1" vertex="1">
- <mxGeometry y="43" width="160" height="8" as="geometry" />
- </mxCell>
- <mxCell id="rDWCdEblCpn9XmIhacVI-4" style="text;align=left;verticalAlign=bottom;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=1;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;html=0;strokeWidth=1;horizontal=1;movable=1;resizable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="rDWCdEblCpn9XmIhacVI-1" vertex="1">
- <mxGeometry y="51" width="160" height="17" as="geometry" />
- </mxCell>
- <mxCell id="INcigVm9b0TAH9v99pnO-1" value="" style="endArrow=block;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;strokeWidth=1;endSize=14;" parent="1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="200" y="200" as="sourcePoint" />
- <mxPoint x="160" y="160" as="targetPoint" />
- <Array as="points" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-109" value="Extends" style="endArrow=block;endSize=16;endFill=0;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-41" target="HgKoQxlyUx1tn9zsXLrm-47">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-660" y="-320" as="sourcePoint" />
+ <mxPoint x="-500" y="-320" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="BdnN9X1UdPwwrvRyySie-1" value="" style="endArrow=none;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;startArrow=diamondThin;startFill=1;" parent="1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="280" y="200" as="sourcePoint" />
- <mxPoint x="240" y="160" as="targetPoint" />
- <Array as="points" />
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-110" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" edge="1" parent="1" source="HgKoQxlyUx1tn9zsXLrm-41" target="HgKoQxlyUx1tn9zsXLrm-27">
+ <mxGeometry width="160" relative="1" as="geometry">
+ <mxPoint x="-1092.867033190796" y="244.32000000000016" as="sourcePoint" />
+ <mxPoint x="-980.2586031358178" y="-96" as="targetPoint" />
</mxGeometry>
</mxCell>
- <mxCell id="wr2JkJuTEkJ5C-UpQk8J-1" value="" style="endArrow=open;html=1;rounded=0;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;endFill=0;endSize=8;" parent="1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="360" y="200" as="sourcePoint" />
- <mxPoint x="320" y="160" as="targetPoint" />
- <Array as="points" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-111" value="&lt;b&gt;&lt;font style=&quot;font-size: 50px&quot;&gt;API&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="1">
+ <mxGeometry x="684" y="11" width="93" height="31" as="geometry" />
</mxCell>
- <mxCell id="oRUFz-RLu-avQMRJHf4n-1" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
- <mxGeometry width="50" height="50" relative="1" as="geometry">
- <mxPoint x="440" y="200" as="sourcePoint" />
- <mxPoint x="400" y="160" as="targetPoint" />
- </mxGeometry>
+ <mxCell id="HgKoQxlyUx1tn9zsXLrm-112" value="&lt;b&gt;&lt;font style=&quot;font-size: 50px&quot;&gt;Engine&lt;/font&gt;&lt;/b&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" vertex="1" parent="1">
+ <mxGeometry x="612" y="-132" width="177" height="31" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
diff --git a/img/theme.ipuml b/img/theme.ipuml
index ae3b1c7..81391e2 100644
--- a/img/theme.ipuml
+++ b/img/theme.ipuml
@@ -1,6 +1,14 @@
' vim:ft=plantuml
-!theme plain
+<style>
+root {
+ BackgroundColor white
+ FontColor black
+ LineThickness 1
+ Margin 0
+}
+</style>
+
skinparam ClassAttributeIconSize 0
skinparam ClassFontStyle bold
skinparam DefaultFontName Inter
diff --git a/notulen/wk8-1.txt b/notulen/wk8-1.txt
new file mode 100644
index 0000000..7702dfd
--- /dev/null
+++ b/notulen/wk8-1.txt
@@ -0,0 +1,57 @@
+ Documents
+ Research Document
+ Continue adding research information
+ Project plan
+ -
+ Document standard
+ Add updates when needed
+ Requirement
+ physics sub-requirements -> Jaro write document
+ eventmanager sub-requirements -> Wouter write document
+ gameloop sub-requirements -> Wouter write document
+ ecs sub-requirements
+ particles sub-requirement -> Jaro write document
+ resourceManager sub-requirement -> Niels write document
+ rendering sub-requirement
+ script requirements added.
+ design document
+ [closed] Discussing top-down
+ API in design document
+ Game design
+ -
+ Git
+ Code standard -> LOEK update
+ Show updates
+ Code standard with examples not in main? -> niels
+ Environments
+ -
+ Research (POC)
+ research eventmanager -> Wouter POC (goede voortgang) knoppen uitlezen
+ [closed] resource manager -> POC check datatype for conversion (na meeting afgerond) alleen implementatie tiled
+ start research ui -> wouter
+ start research ai
+ start research playback -> Max
+ start research scenes -> Max
+ star research camera -> Niels
+ start research savedata -> loek
+ start research renderer -> niels (sprite & color & transform) POC simple (SDL_GPU voor efficiency verbetering)
+ [closed] start research scripting -> loek
+ start research physics Starting POC -> Jaro
+ More research about physics
+ start reasearch collision detection -> Jaro
+ [closed] research ecs -> Loek will add fix for derived class for scripts
+ start research particles Starting research -> Jaro (start lifetime. spawning area)
+ Design
+ Adding design asset class -> niels
+ Adding design resource holder -> niels
+ How does a game designer make a scene?
+ Product
+ -
+ Test
+ -
+ Question Bob
+ mag de API gewoon een interface worden voor wat onderliggend een ECS is.
+ Overig
+ Timers voor systems (profiler van systems)
+
+
diff --git a/readme.md b/readme.md
index ece6512..858d319 100644
--- a/readme.md
+++ b/readme.md
@@ -11,7 +11,7 @@ snippets for specific formatting.
Prerequisites:
- A LaTeX distribution that includes XeLaTeX and latexmk
-- PlantUML
+- PlantUML ([1.2024.7 or later](#plantuml)!)
- Python 3
- Fonts (see see [style.md](./style.md) for download links)
@@ -33,7 +33,30 @@ additional configuration files for the following editors:
- `sources.bib` contains all bibliography entries / references
- `glossary.bib` contains all glossary entries
+## PlantUML
+
+To check if your PlantUML version is recent enough, run:
+```
+$ plantuml -version
+```
+
+To upgrade PlantUML manually, download the latest (GPL) \.jar from
+[here][plantuml], and overwrite the \.jar file installed by your package
+manager:
+
+```
+$ curl -sLo- https://github.com/plantuml/plantuml/releases/download/v1.2024.7/plantuml-1.2024.7.jar > plantuml.jar
+# mv plantuml.jar /usr/share/plantuml/plantuml.jar
+```
+
+> [!NOTE]
+> Ubuntu, Debian and Mint all place PlantUML's \.jar file under
+> `/usr/share/plantuml/plantuml.jar`, while it's under
+> `/usr/share/java/plantuml/plantuml.jar` on Arch. Check the contents of the
+> file returned by `command -v plantuml` to confirm this.
+
[vscode]: https://code.visualstudio.com
[latexworkshop]: https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop
[vimtex]: https://github.com/lervag/vimtex
+[plantuml]: https://plantuml.com/en/download
diff --git a/research.tex b/research.tex
index 5dd01a6..6853d5f 100644
--- a/research.tex
+++ b/research.tex
@@ -663,6 +663,74 @@ an easier to use interface for the user and improve the efficiency of the physic
because the total forces can be calcualted ones and then applied to all dynamic
entities.
+\subsubsection{Components physics}
+
+This is a list that could be needed for additonal phisics components
+
+\begin{itemize}
+ \item Gravity
+ \begin{itemize}
+ \item Rigidbody (for mass, gravity scale, etc.)
+ \item Transform (to modify position based on gravity)
+ \end{itemize}
+
+ \item Directional Force (e.g.~wind or gravity in a specific direction)
+ \begin{itemize}
+ \item ForceComponent (for direction and magnitude of the force)
+ \item Rigidbody (for mass and velocity affected by force)
+ \item Transform (to update position based on force)
+ \end{itemize}
+
+ \item Collision (detection + handling)
+ \begin{itemize}
+ \item Rigidbody (for collision detection mode and velocity handling)
+ \item ColliderComponent (defines the shape and behavior of the collider, like bounce)
+ \item Transform (for object position, rotation updates)
+ \end{itemize}
+
+ \item Player Movement
+ \begin{itemize}
+ \item MovementComponent (for handling player input and movement speed)
+ \item Rigidbody (to handle physics-based movement, like velocity changes)
+ \item Transform (to apply movement to the object's position)
+ \end{itemize}
+
+ \item Bounce (elastic collisions)
+ \begin{itemize}
+ \item Rigidbody (for bounce coefficient and velocity adjustments)
+ \item ColliderComponent (to detect collisions and calculate bounce)
+ \item Transform (to adjust position after bouncing)
+ \end{itemize}
+
+ \item Rotation (torque or angular forces)
+ \begin{itemize}
+ \item Rigidbody (for rotational inertia and angular velocity)
+ \item Transform (to apply rotation to the object)
+ \end{itemize}
+
+ \item Directional Force (e.g.~explosions, pushing)
+ \begin{itemize}
+ \item ForceComponent (to apply the force in a direction with a magnitude)
+ \item Rigidbody (for velocity changes due to the force)
+ \item Transform (to update position based on the force)
+ \end{itemize}
+
+ \item Particles (e.g.~smoke, explosions)
+ \begin{itemize}
+ \item ParticleComponent (to define particle effects like lifetime, velocity)
+ \item Transform (to emit particles from the object’s position)
+ \end{itemize}
+\end{itemize}
+
+\begin{enumerate}
+ \item Input Processing
+ \item Run Scripts (custom logic, AI, player input, etc.)
+ \item Apply Forces (gravity, directional forces, user-applied forces)
+ \item Calculate Movement (update positions based on velocity)
+ \item Collision Detection and Resolution
+ \item Post-Collision Adjustments (e.g.~friction, constraints)
+\end{enumerate}
+
\subsection{Conclusion}
More components need te be created for both EC and ECS with the diagram provided by
diff --git a/time.txt b/time.txt
index d7e00b1..10bef7e 100644
--- a/time.txt
+++ b/time.txt
@@ -86,6 +86,11 @@ loek: 2024-10-24 30m review :: PR review (merge only, #8 and #11)
loek: 2024-10-25 30m implementation :: scripting interface
loek: 2024-10-25 20m review :: PR review (+errands, merge only, #12 and #13)
loek: 2024-10-26 3h20m implementation :: save manager
+loek: 2024-10-27 4h implementation :: save manager
+loek: 2024-10-29 10m tooling :: documentation (fix plantuml theme errors)
+loek: 2024-10-30 30m project meeting (min/max component count constraints)
+loek: 2024-10-24 10m review :: PR review (#40, #41 and #42)
+loek: 2024-10-31 3h45m project meeting
max: 2024-09-02 1h project kickoff
max: 2024-09-02 45m first project meeting
@@ -139,6 +144,15 @@ max: 2024-10-16 30m investigated whether or not EnTT can handle multiple inherit
max: 2024-10-16 3h rethinked scripting (to avoid mutliple inheritance)
max: 2024-10-16 20m added new scripting idea to ecs-homemade
max: 2024-10-17 1h thirteenth project meeting
+max: 2024-10-24 2h10m fourteenth project meeting
+max: 2024-10-25 3h started researching Scenes and Replay
+max: 2024-10-29 2h worked on UIObjects and Camera
+max: 2024-10-29 3h15m worked on Metadata Component, Camera and Scenes
+max: 2024-10-29 30m installing LaTeX on Linux
+max: 2024-10-29 30m discussing paricles/physics/colliders with Jaro
+max: 2024-10-30 4h refacting class diagram
+max: 2024-10-30 1h50m added SceneManager design to class diagram
+max: 2024-10-30 2h added ReplaySystem design to class diagram
wouter: 2024-09-02 1h project meeting :: project kickoff
wouter: 2024-09-02 45m project meeting
@@ -300,5 +314,16 @@ jaro: 2024-10-11 30m weekly update
jaro: 2024-10-14 2h knowledge sharing
jaro: 2024-10-14 1h30m project meeting
jaro: 2024-10-17 1h project discussion
+jaro: 2024-10-19 15m weeklyupdate
+jaro: 2024-10-20 3h components + physics + collision systems
+jaro: 2024-10-23 1h30m samenvoegen collision + physics en rendering
+jaro: 2024-10-24 1h20m project meeting
+jaro: 2024-10-24 3h30m physics and collision
+jaro: 2024-10-24 1h static collision handeling
+jaro: 2024-10-25 2h collision handeling and onderzoek collision event unity
+
+
+
+
# vim:ft=cfg