Relative-Hook: decide on coordinate system usage

...and resolve associated problems with overal canvas size
This commit is contained in:
Fischlurch 2020-02-28 23:13:53 +01:00
parent 99d0f0a0ae
commit 2bbbcf36bc
3 changed files with 128 additions and 38 deletions

View file

@ -486,9 +486,9 @@ namespace timeline {
{
setupAdditionalTrackPadding_fromCSS();
layout_.triggerDisplayEvaluation();
uint overallHeight = rootBody_->establishTrackSpace (profile_);
uint contentHeight = rootBody_->establishTrackSpace (profile_);
uint rulerHeight = rootBody_->calcRulerHeight() + TrackBody::decoration.topMar;
adjustCanvasSize(layout_.getPixSpan().delta(), overallHeight, rulerHeight);
adjustCanvasSize(layout_.getPixSpan().delta(), contentHeight, rulerHeight);
ENSURE (not isnil (profile_));
}
}
@ -502,7 +502,7 @@ namespace timeline {
* pane to accommodate an arbitrary number of tracks
*/
void
BodyCanvasWidget::adjustCanvasSize(int canvasWidth, int totalHeight, int rulerHeight)
BodyCanvasWidget::adjustCanvasSize(int canvasWidth, int contentHeight, int rulerHeight)
{
auto adjust = [](Gtk::Layout& canvas, guint newWidth, guint newHeight) -> void
{
@ -516,7 +516,7 @@ namespace timeline {
};
adjust (rulerCanvas_, canvasWidth, rulerHeight);
adjust (mainCanvas_, canvasWidth, max(0, totalHeight-rulerHeight));
adjust (mainCanvas_, canvasWidth, contentHeight);
}
TimelineCanvas&

View file

@ -49,6 +49,23 @@
** As result, some new widgets may be injected, existing widgets might be removed or
** hidden, and other widgets may be relocated to different virtual canvas coordinates.
**
** ## Coordinate systems
** When drawing onto a canvas, we need to define the coordinate system. This task is
** complicated here, since -- on implementation level -- we end up with several `Gtk::Layout`
** elements (the actual canvas widget). This is necessary to accommodate for the display
** "mechanics": part of the timeline has to stay "pinned" on top, including the time
** overview ruler and possible further marker displays. Based on practical considerations
** we decide to handle this situation as follows
** - Each drawing canvas gets its own coordinate system; its extension is defined to
** match the size of the scrolling area, and coordinates are adjusted so to match
** drawing primitives and coordinates of attached sub-widgets
** - However, the timeline as a whole constitutes a global coordinate system on its own.
** It is the actual drawing codes's responsibility to translate into canvas coordinates.
** - To hide those complexities from the display management code, we introduce an abstraction
** model::ViewHook. This allows to place sub-widgets _relative_ to each track locally.
** So effectively, from the view point of (sub)widget management, we thus get virtual
** canvas coordinates per (sub)track.
**
** @todo WIP-WIP-WIP as of 6/2019
**
*/
@ -103,6 +120,23 @@ namespace timeline {
/**
* Presentation of the timeline workspace by custom drawing on a canvas.
* This widget allows for uniform access and handling of that body area;
* however, in fact we need several TimelineCanvas spaces, since part of
* the display needs to stay "pinned" on top (the overview rulers), while
* the majority of the track body area is packaged into a scrolling pane.
*
* ## Interface
* We have to distinguish two kinds of drawing access to this BodyCanvasWidget:
* - painting of areas for background, profile and for overlays
* - relative attachment of widgets onto this canvas
* For the former, we use the TrackProfile as a drawing Visitor (double dispatch):
* The layout code identifies a sequence of spaces (horizontally extended) corresponding
* to tracks and rulers. This is abstracted into the profile, and can then be (re)rendered
* as often as necessary by "playback" of this profile.
* On the other hand, for attachment of sub-widgets onto the canvas (Clips, Effects, Markers)
* we use the Interface model::ViewHook, which allows us to break down the access hierarchically.
* Each sub-Track can be outfitted with its own "virtual canvas", exposed as delegating ViewHook.
* @todo WIP-WIP as of 6/2019
*/
class BodyCanvasWidget

View file

@ -18420,8 +18420,8 @@
</node>
</node>
</node>
<node CREATED="1573751565872" ID="ID_274573678" MODIFIED="1575580655106" TEXT="Vertiefte Design-Analyse">
<linktarget COLOR="#2e1d90" DESTINATION="ID_274573678" ENDARROW="Default" ENDINCLINATION="-1890;235;" ID="Arrow_ID_1905963364" SOURCE="ID_1007243980" STARTARROW="None" STARTINCLINATION="532;69;"/>
<node CREATED="1573751565872" ID="ID_274573678" MODIFIED="1582926752028" TEXT="Vertiefte Design-Analyse">
<linktarget COLOR="#2e1d90" DESTINATION="ID_274573678" ENDARROW="Default" ENDINCLINATION="-1890;235;" ID="Arrow_ID_1905963364" SOURCE="ID_1007243980" STARTARROW="None" STARTINCLINATION="537;68;"/>
<node CREATED="1575580479206" ID="ID_871786644" MODIFIED="1576282358093" TEXT="Frage: kann das zu einem Konstruktionsschema ausgebaut werden">
<richcontent TYPE="NOTE"><html>
<head>
@ -21685,7 +21685,7 @@
</node>
</node>
</node>
<node CREATED="1575063986126" ID="ID_237283777" MODIFIED="1576282358068" TEXT="konkretisiert: als ViewHook-Mechanismus">
<node COLOR="#338800" CREATED="1575063986126" FOLDED="true" ID="ID_237283777" MODIFIED="1582926808921" TEXT="konkretisiert: als ViewHook-Mechanismus">
<richcontent TYPE="NOTE"><html>
<head>
@ -21697,6 +21697,7 @@
</body>
</html></richcontent>
<linktarget COLOR="#261eb7" DESTINATION="ID_237283777" ENDARROW="Default" ENDINCLINATION="396;-703;" ID="Arrow_ID_119083900" SOURCE="ID_1018000905" STARTARROW="None" STARTINCLINATION="-962;0;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1575064318098" ID="ID_293965279" MODIFIED="1575064328652" TEXT="Fall Track-Head">
<node CREATED="1575064338701" ID="ID_415507995" MODIFIED="1575064375893" TEXT="DisplayFrame hat einen ViewHook in das korrespondierende TrackHeadWidget"/>
<node CREATED="1575064401006" ID="ID_1441033648" MODIFIED="1575064462745" TEXT="nach Struktur-&#xc4;nderung dekoriert der TrackPresenter einen Subtrack-Iterator"/>
@ -21765,6 +21766,9 @@
<node COLOR="#435e98" CREATED="1575064564486" ID="ID_1502992527" MODIFIED="1575132210050" TEXT="TODO kl&#xe4;ren">
<arrowlink COLOR="#4880c1" DESTINATION="ID_1865914633" ENDARROW="Default" ENDINCLINATION="259;77;" ID="Arrow_ID_1022537409" STARTARROW="None" STARTINCLINATION="206;43;"/>
</node>
<node CREATED="1582926781626" ID="ID_1990000066" MODIFIED="1582926793526" TEXT="&#xfc;ber ein spezielles Interface vom Parent her">
<icon BUILTIN="idea"/>
</node>
</node>
<node CREATED="1575065047103" ID="ID_949577790" MODIFIED="1575065064472" TEXT="dieses pullt und ruft auf jedem ViewHooked...."/>
<node CREATED="1575065065436" ID="ID_870630036" MODIFIED="1575065068376" TEXT="reHook()">
@ -21808,8 +21812,8 @@
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1575579955362" ID="ID_931838684" MODIFIED="1575670594063" STYLE="fork" TEXT="strukturell-generische Implementierung">
<icon BUILTIN="pencil"/>
<node COLOR="#435e98" CREATED="1575579987443" ID="ID_1007243980" MODIFIED="1575580655105" TEXT="Analyse allgemein">
<arrowlink COLOR="#2e1d90" DESTINATION="ID_274573678" ENDARROW="Default" ENDINCLINATION="-1890;235;" ID="Arrow_ID_1905963364" STARTARROW="None" STARTINCLINATION="532;69;"/>
<node COLOR="#435e98" CREATED="1575579987443" ID="ID_1007243980" MODIFIED="1582926752028" TEXT="Analyse allgemein">
<arrowlink COLOR="#2e1d90" DESTINATION="ID_274573678" ENDARROW="Default" ENDINCLINATION="-1890;235;" ID="Arrow_ID_1905963364" STARTARROW="None" STARTINCLINATION="537;68;"/>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1575580660604" ID="ID_932505699" MODIFIED="1576441760509" TEXT="Change-Listener auf dem Diff-System notwendig">
@ -21820,9 +21824,9 @@
<arrowlink COLOR="#507b9b" DESTINATION="ID_1193961919" ENDARROW="Default" ENDINCLINATION="-877;88;" ID="Arrow_ID_624713040" STARTARROW="None" STARTINCLINATION="706;62;"/>
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1576757730509" ID="ID_1816490333" MODIFIED="1576876200239" TEXT="Thema &#xbb;Widget-Position&#xab;">
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1576757730509" ID="ID_1816490333" MODIFIED="1582926717705" TEXT="Thema &#xbb;Widget-Position&#xab;">
<arrowlink COLOR="#605bb8" DESTINATION="ID_1949130658" ENDARROW="Default" ENDINCLINATION="204;611;" ID="Arrow_ID_993970158" STARTARROW="None" STARTINCLINATION="512;51;"/>
<linktarget COLOR="#15bcc9" DESTINATION="ID_1816490333" ENDARROW="Default" ENDINCLINATION="-785;86;" ID="Arrow_ID_408864676" SOURCE="ID_1121301646" STARTARROW="None" STARTINCLINATION="-225;17;"/>
<linktarget COLOR="#15bcc9" DESTINATION="ID_1816490333" ENDARROW="Default" ENDINCLINATION="-454;46;" ID="Arrow_ID_408864676" SOURCE="ID_1121301646" STARTARROW="None" STARTINCLINATION="-235;17;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1576758030604" HGAP="54" ID="ID_1869378616" MODIFIED="1576876023320" TEXT="entsprechende Erweiterung f&#xfc;r delegating-ViewHook notwendig" VSHIFT="26">
<icon BUILTIN="button_ok"/>
@ -22090,8 +22094,8 @@
<node CREATED="1576705779910" ID="ID_968522268" MODIFIED="1576705792920" TEXT="damit ViewHook&lt;Clip&gt;"/>
<node CREATED="1576705802515" ID="ID_674496871" MODIFIED="1576705809765" TEXT="und ViewHook&lt;Marker&gt;"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1576855620250" ID="ID_1121301646" MODIFIED="1582833388440" TEXT="relatives Positionieren erm&#xf6;glichen">
<arrowlink COLOR="#15bcc9" DESTINATION="ID_1816490333" ENDARROW="Default" ENDINCLINATION="-785;86;" ID="Arrow_ID_408864676" STARTARROW="None" STARTINCLINATION="-225;17;"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1576855620250" ID="ID_1121301646" MODIFIED="1582926717704" TEXT="relatives Positionieren erm&#xf6;glichen">
<arrowlink COLOR="#15bcc9" DESTINATION="ID_1816490333" ENDARROW="Default" ENDINCLINATION="-454;46;" ID="Arrow_ID_408864676" STARTARROW="None" STARTINCLINATION="-235;17;"/>
<linktarget COLOR="#6780d3" DESTINATION="ID_1121301646" ENDARROW="Default" ENDINCLINATION="551;-498;" ID="Arrow_ID_229033893" SOURCE="ID_1642579599" STARTARROW="None" STARTINCLINATION="-477;21;"/>
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1582410135584" ID="ID_969058360" MODIFIED="1582410320625" TEXT="#1207 relative attachment and (custom) drawing of sub-widgets">
@ -22112,10 +22116,24 @@
</body>
</html></richcontent>
<icon BUILTIN="clanbomber"/>
<node CREATED="1582926631295" ID="ID_1387833468" MODIFIED="1582926643826">
<richcontent TYPE="NODE"><html>
<head>
</head>
<body>
<p>
<i>wenn</i>&#160;das so relevant werden sollte
</p>
</body>
</html>
</richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1576974796984" ID="ID_680399486" MODIFIED="1576975266927" TEXT="wenn nein wird die Sache einfach....">
<node CREATED="1582926644653" ID="ID_365029590" MODIFIED="1582926660863" TEXT="...dann mu&#xdf; wohl an beide Sub-Canvas delegiert werden"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1576974796984" ID="ID_680399486" MODIFIED="1582926930308" TEXT="wenn nein wird die Sache einfach....">
<arrowlink COLOR="#efd0af" DESTINATION="ID_364410899" ENDARROW="Default" ENDINCLINATION="1299;64;" ID="Arrow_ID_1373879262" STARTARROW="None" STARTINCLINATION="477;28;"/>
<linktarget COLOR="#ec6f0c" DESTINATION="ID_680399486" ENDARROW="Default" ENDINCLINATION="172;6;" ID="Arrow_ID_465598539" SOURCE="ID_1473334633" STARTARROW="None" STARTINCLINATION="196;20;"/>
<linktarget COLOR="#ec6f0c" DESTINATION="ID_680399486" ENDARROW="Default" ENDINCLINATION="172;6;" ID="Arrow_ID_465598539" SOURCE="ID_1473334633" STARTARROW="None" STARTINCLINATION="198;19;"/>
<icon BUILTIN="ksmiletris"/>
</node>
</node>
@ -22153,23 +22171,24 @@
<linktarget COLOR="#5e57bd" DESTINATION="ID_1792139654" ENDARROW="Default" ENDINCLINATION="-2065;214;" ID="Arrow_ID_1917645572" SOURCE="ID_178738138" STARTARROW="None" STARTINCLINATION="-949;44;"/>
<icon BUILTIN="flag-yellow"/>
<node CREATED="1576974190516" ID="ID_1324645925" MODIFIED="1582836038184" TEXT="welche Offsets treten konkret auf?"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1582835948615" ID="ID_75969285" MODIFIED="1582836030572" TEXT="Kind-Offsets sind falsch">
<arrowlink COLOR="#d3384d" DESTINATION="ID_1855510589" ENDARROW="Default" ENDINCLINATION="-764;-101;" ID="Arrow_ID_1877663178" STARTARROW="None" STARTINCLINATION="570;60;"/>
<node COLOR="#435e98" CREATED="1582835948615" ID="ID_75969285" MODIFIED="1582926572549" TEXT="Kind-Offsets sind falsch">
<arrowlink COLOR="#38acd3" DESTINATION="ID_1855510589" ENDARROW="Default" ENDINCLINATION="-764;-101;" ID="Arrow_ID_1877663178" STARTARROW="None" STARTINCLINATION="570;60;"/>
<icon BUILTIN="broken-line"/>
</node>
<node CREATED="1576974515950" ID="ID_1628336999" MODIFIED="1576974623765" TEXT="gibt es ein gemeinsames Koordinatensystem?">
<arrowlink COLOR="#474293" DESTINATION="ID_1222461806" ENDARROW="Default" ENDINCLINATION="-912;90;" ID="Arrow_ID_890343372" STARTARROW="None" STARTINCLINATION="-1540;96;"/>
<node CREATED="1576975245489" ID="ID_1473334633" MODIFIED="1576975295363" TEXT="es l&#xe4;uft auf &quot;nein&quot; hinaus....">
<arrowlink COLOR="#ec6f0c" DESTINATION="ID_680399486" ENDARROW="Default" ENDINCLINATION="172;6;" ID="Arrow_ID_465598539" STARTARROW="None" STARTINCLINATION="196;20;"/>
<node CREATED="1576975245489" ID="ID_1473334633" MODIFIED="1582926930308" TEXT="es l&#xe4;uft auf &quot;nein&quot; hinaus....">
<arrowlink COLOR="#ec6f0c" DESTINATION="ID_680399486" ENDARROW="Default" ENDINCLINATION="172;6;" ID="Arrow_ID_465598539" STARTARROW="None" STARTINCLINATION="198;19;"/>
<icon BUILTIN="forward"/>
</node>
<node CREATED="1576975314849" ID="ID_504699963" MODIFIED="1576975336570" TEXT="dann mu&#xdf; aber das relative-attachment hier adaptieren">
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1576975078209" ID="ID_272168913" MODIFIED="1576975242072" TEXT="suche L&#xf6;sung f&#xfc;r Koordinaten pro Canvas">
<node COLOR="#435e98" CREATED="1576975078209" ID="ID_272168913" MODIFIED="1582926869860" TEXT="suche L&#xf6;sung f&#xfc;r Koordinaten pro Canvas">
<linktarget COLOR="#c9405c" DESTINATION="ID_272168913" ENDARROW="Default" ENDINCLINATION="-1471;82;" ID="Arrow_ID_1415590908" SOURCE="ID_1095950959" STARTARROW="None" STARTINCLINATION="-1695;79;"/>
<icon BUILTIN="flag-pink"/>
<node CREATED="1582503867646" ID="ID_1320872157" MODIFIED="1582503952812" TEXT="versuchen, das ViewHook-Konzept daf&#xfc;r nutzbar zu machen">
<icon BUILTIN="yes"/>
<node COLOR="#338800" CREATED="1582503867646" ID="ID_1320872157" MODIFIED="1582926877646" TEXT="versuchen, das ViewHook-Konzept daf&#xfc;r nutzbar zu machen">
<richcontent TYPE="NOTE"><html>
<head>
@ -22184,6 +22203,12 @@
</body>
</html>
</richcontent>
<icon BUILTIN="button_ok"/>
</node>
<node COLOR="#338800" CREATED="1582926842105" ID="ID_41570451" MODIFIED="1582926860190" TEXT="geht eigentlich ganz glatt auf">
<icon BUILTIN="idea"/>
<node CREATED="1582926889589" ID="ID_452794094" MODIFIED="1582926901582" TEXT="Ankerpunkt bereits im Basis-Interface ViewHook&lt;WID&gt;"/>
<node CREATED="1582926902478" ID="ID_1289395901" MODIFIED="1582926913092" TEXT="das Verketten wird damit Teil des Prinzips"/>
</node>
</node>
</node>
@ -24277,8 +24302,8 @@
<arrowlink COLOR="#524b74" DESTINATION="ID_1316730142" ENDARROW="Default" ENDINCLINATION="530;-50;" ID="Arrow_ID_1561193123" STARTARROW="Default" STARTINCLINATION="424;0;"/>
</node>
</node>
<node CREATED="1566955786323" ID="ID_1411864272" MODIFIED="1568577537819" TEXT="Alternative: jeder sub-Canvas hat seinen eigenen Origin">
<linktarget COLOR="#9675ba" DESTINATION="ID_1411864272" ENDARROW="Default" ENDINCLINATION="-1041;0;" ID="Arrow_ID_1078761950" SOURCE="ID_309596538" STARTARROW="None" STARTINCLINATION="-507;-27;"/>
<node CREATED="1566955786323" ID="ID_1411864272" MODIFIED="1582926979997" TEXT="Alternative: jeder sub-Canvas hat seinen eigenen Origin">
<linktarget COLOR="#5d3885" DESTINATION="ID_1411864272" ENDARROW="Default" ENDINCLINATION="-1041;0;" ID="Arrow_ID_1078761950" SOURCE="ID_309596538" STARTARROW="None" STARTINCLINATION="-506;23;"/>
<icon BUILTIN="forward"/>
<node CREATED="1568384149932" ID="ID_364410899" MODIFIED="1576974893896" TEXT="inzwischen erscheint mit diese L&#xf6;sung immer attraktiver...">
<linktarget COLOR="#efd0af" DESTINATION="ID_364410899" ENDARROW="Default" ENDINCLINATION="1299;64;" ID="Arrow_ID_1373879262" SOURCE="ID_680399486" STARTARROW="None" STARTINCLINATION="477;28;"/>
@ -24297,6 +24322,10 @@
</html></richcontent>
</node>
<node CREATED="1568577575631" ID="ID_1451371313" MODIFIED="1568577585114" TEXT="..und &#xfc;bersetzt werden mu&#xdf; ohnehin"/>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1582926994758" ID="ID_392725300" MODIFIED="1582926998672" TEXT="so mach&apos;mas">
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
</node>
</node>
</node>
</node>
@ -26521,14 +26550,14 @@
</body>
</html></richcontent>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1567876399531" ID="ID_1578713642" MODIFIED="1567876412481" TEXT="genau.... jetzt hamma den Salat">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#435e98" CREATED="1567876399531" ID="ID_1578713642" MODIFIED="1582926955027" TEXT="genau.... jetzt hamma den Salat">
<icon BUILTIN="smiley-oh"/>
<node CREATED="1567876413663" ID="ID_1376431800" MODIFIED="1567876429537" TEXT="alle Content-Labels erscheinen nach untern verschoben">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1567876430941" ID="ID_1855510589" MODIFIED="1582836000650" TEXT="Ursache untersuchen">
<linktarget COLOR="#d3384d" DESTINATION="ID_1855510589" ENDARROW="Default" ENDINCLINATION="-764;-101;" ID="Arrow_ID_1877663178" SOURCE="ID_75969285" STARTARROW="None" STARTINCLINATION="570;60;"/>
<icon BUILTIN="flag-pink"/>
<node COLOR="#338800" CREATED="1567876430941" FOLDED="true" ID="ID_1855510589" MODIFIED="1582926556111" TEXT="Ursache untersuchen">
<linktarget COLOR="#38acd3" DESTINATION="ID_1855510589" ENDARROW="Default" ENDINCLINATION="-764;-101;" ID="Arrow_ID_1877663178" SOURCE="ID_75969285" STARTARROW="None" STARTINCLINATION="570;60;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1582845817042" ID="ID_317035495" MODIFIED="1582901732132" TEXT="nebenbei aufgefallen">
<node CREATED="1582845824385" ID="ID_1853554200" MODIFIED="1582845841960" TEXT="Denkfehler beim Z&#xe4;hlen der Anzahl Pr&#xe4;fix-Elemente"/>
<node CREATED="1582845855165" ID="ID_1657667532" MODIFIED="1582845856441" TEXT="TrackBody::establishTrackSpace">
@ -26578,14 +26607,15 @@
<node CREATED="1582902494453" ID="ID_986992726" MODIFIED="1582902504457" TEXT="CanvasOffsetHook::hookAdjY"/>
<node CREATED="1582902510004" ID="ID_1627491014" MODIFIED="1582902518936" TEXT="technische Details delegiert">
<node CREATED="1582902540815" ID="ID_857717809" MODIFIED="1582902540815" TEXT="TrackBody::establishTrackSpace"/>
<node COLOR="#338800" CREATED="1582902544283" ID="ID_76600735" MODIFIED="1582902584265" TEXT="dort versteckt: line nach Overview-Ruler auf 0 zur&#xfc;cksetzen">
<node COLOR="#338800" CREATED="1582902544283" ID="ID_76600735" MODIFIED="1582925563094" TEXT="dort versteckt: line nach Overview-Ruler auf 0 zur&#xfc;cksetzen">
<linktarget COLOR="#22376a" DESTINATION="ID_76600735" ENDARROW="Default" ENDINCLINATION="1007;48;" ID="Arrow_ID_984706037" SOURCE="ID_330989158" STARTARROW="None" STARTINCLINATION="325;16;"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1582902593784" ID="ID_984846963" MODIFIED="1582902611866" TEXT="damit bekommen die sub-Tracks die real korrekten Start-Koordinaten"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1582902653211" ID="ID_1818419302" MODIFIED="1582902777541" TEXT="ab 2. Sub-Ebene immer noch falsch positioniert">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1582902653211" ID="ID_1818419302" MODIFIED="1582926411285" TEXT="ab 2. Sub-Ebene immer noch falsch positioniert">
<icon BUILTIN="button_ok"/>
<node CREATED="1582903546261" ID="ID_1725318843" MODIFIED="1582903552175" TEXT="beobachte(Debugger)">
<node CREATED="1582903562092" ID="ID_510339383" MODIFIED="1582904078739" TEXT="establishTrackSpace">
<node CREATED="1582904081457" ID="ID_1429267862" MODIFIED="1582907004900" TEXT="ruler-Prefix(after) = 107">
@ -26688,9 +26718,9 @@
<node COLOR="#338800" CREATED="1582908797551" ID="ID_1600925226" MODIFIED="1582908821787" TEXT="unteren Canvas durchverfolgt: alle globalen Zeilen korrekt">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1582908823851" ID="ID_1086427567" MODIFIED="1582923789123" TEXT="danach: H&#xf6;he weicht ab">
<node COLOR="#435e98" CREATED="1582908823851" ID="ID_1086427567" MODIFIED="1582926407709" TEXT="danach: H&#xf6;he weicht ab">
<arrowlink COLOR="#4f4bb1" DESTINATION="ID_407125396" ENDARROW="Default" ENDINCLINATION="59;-200;" ID="Arrow_ID_902537277" STARTARROW="None" STARTINCLINATION="-179;19;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="messagebox_warning"/>
<node CREATED="1582908842568" ID="ID_528889024" MODIFIED="1582908844275" TEXT="TimelineCanvas::drawGrounding"/>
<node CREATED="1582908852313" ID="ID_1725810299" MODIFIED="1582908890292" TEXT="(w,h) == (248,936)">
<icon BUILTIN="broken-line"/>
@ -26746,18 +26776,44 @@
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1582902750166" ID="ID_407125396" MODIFIED="1582923789123" TEXT="Canvas-H&#xf6;he insgesamt falsch (zu gering)">
<node COLOR="#338800" CREATED="1582902750166" ID="ID_407125396" MODIFIED="1582926396858" TEXT="Canvas-H&#xf6;he insgesamt falsch (zu gering)">
<linktarget COLOR="#4f4bb1" DESTINATION="ID_407125396" ENDARROW="Default" ENDINCLINATION="59;-200;" ID="Arrow_ID_902537277" SOURCE="ID_1086427567" STARTARROW="None" STARTINCLINATION="-179;19;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1582925333183" ID="ID_370690048" MODIFIED="1582925346001" TEXT="liegt an der Unklarheit der Bezugsssysteme">
<node CREATED="1582925351805" ID="ID_1047753842" MODIFIED="1582925363463" TEXT="936 = 1043 - 107"/>
<node CREATED="1582925395639" ID="ID_604617266" MODIFIED="1582925408105" TEXT="also: wann/wo gelten die absoluten Koordinaten"/>
</node>
<node CREATED="1582925410396" ID="ID_1772952996" MODIFIED="1582925421631" TEXT="Beschlu&#xdf;: alle Berechnungen im Canvas sind relativ">
<node CREATED="1582925422715" ID="ID_543762048" MODIFIED="1582925436017" TEXT="sinnvoll, da ich mich jetzt f&#xfc;r relative Koordinaten entschieden haben"/>
<node CREATED="1582925436929" ID="ID_509859650" MODIFIED="1582925449096" TEXT="d.h. jeder Canvas hat sein eigenes Bezugssystem"/>
<node CREATED="1582925449892" ID="ID_1269496698" MODIFIED="1582925470344" TEXT="und auch die Zeile in establishTrackSpace sollte relativ zum Canvas gelten">
<node CREATED="1582925471236" ID="ID_288322254" MODIFIED="1582925476432" TEXT="was sie jetzt bereits tut"/>
<node CREATED="1582925477248" ID="ID_330989158" MODIFIED="1582926537321" TEXT="mein &quot;versteckter Trick&quot; ist mithin sogar logisch konsistent">
<arrowlink COLOR="#22376a" DESTINATION="ID_76600735" ENDARROW="Default" ENDINCLINATION="1007;48;" ID="Arrow_ID_984706037" STARTARROW="None" STARTINCLINATION="325;16;"/>
<linktarget COLOR="#1d40c9" DESTINATION="ID_330989158" ENDARROW="Default" ENDINCLINATION="-289;13;" ID="Arrow_ID_420585761" SOURCE="ID_103638255" STARTARROW="None" STARTINCLINATION="219;13;"/>
</node>
</node>
</node>
<node CREATED="1582925575929" ID="ID_1677196860" MODIFIED="1582925590560" TEXT="damit mu&#xdf; auch jede H&#xf6;he separat als Ganzes auf den Canvas angewendet werden"/>
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1582926428346" ID="ID_1968205234" MODIFIED="1582926440570" TEXT="Restrukturierung: lokale und absolute Koordinaten">
<icon BUILTIN="button_ok"/>
<node COLOR="#435e98" CREATED="1582926442161" ID="ID_33511214" MODIFIED="1582926545738" TEXT="Beschlu&#xdf;: Canvas verwendet seine eigenen lokalen Koordinaten">
<icon BUILTIN="yes"/>
</node>
<node COLOR="#338800" CREATED="1582926466421" ID="ID_103638255" MODIFIED="1582926537321" TEXT="establishTrackSpace mu&#xdf; in diesen arbeiten">
<arrowlink COLOR="#1d40c9" DESTINATION="ID_330989158" ENDARROW="Default" ENDINCLINATION="-289;13;" ID="Arrow_ID_420585761" STARTARROW="None" STARTINCLINATION="219;13;"/>
<icon BUILTIN="button_ok"/>
</node>
</node>
</node>
</node>
</node>
<node CREATED="1566955936904" ID="ID_925495886" MODIFIED="1566955942099" TEXT="vertikale Koordinaten">
<node CREATED="1566955943327" ID="ID_309596538" MODIFIED="1568384224104" TEXT="&quot;nat&#xfc;rlich&quot; ist es, wenn jeder Canvas eigene Koordinaten hat">
<arrowlink COLOR="#9675ba" DESTINATION="ID_1411864272" ENDARROW="Default" ENDINCLINATION="-1041;0;" ID="Arrow_ID_1078761950" STARTARROW="None" STARTINCLINATION="-507;-27;"/>
<node CREATED="1566955943327" ID="ID_309596538" MODIFIED="1582926985844" TEXT="&quot;nat&#xfc;rlich&quot; ist es, wenn jeder Canvas eigene Koordinaten hat">
<arrowlink COLOR="#5d3885" DESTINATION="ID_1411864272" ENDARROW="Default" ENDINCLINATION="-1041;0;" ID="Arrow_ID_1078761950" STARTARROW="None" STARTINCLINATION="-506;23;"/>
<linktarget COLOR="#da5073" DESTINATION="ID_309596538" ENDARROW="Default" ENDINCLINATION="40;-34;" ID="Arrow_ID_46419716" SOURCE="ID_1434222749" STARTARROW="None" STARTINCLINATION="58;33;"/>
<icon BUILTIN="idea"/>
<node CREATED="1566955975338" ID="ID_1779775058" MODIFIED="1566955999837">