From ee0bc1094e03ce5d96f828fe03c18cf4ec6453be Mon Sep 17 00:00:00 2001 From: wuyize Date: Mon, 10 Apr 2023 19:17:06 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=E5=9B=BE=E5=B1=82=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E5=90=8E=E6=9C=AA=E5=88=B7=E6=96=B0=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 4_L0.json | 493 ------------------ .../data.json | 0 .../src/Editor/EditorWidget.cpp | 2 +- .../src/Editor/RightBar/LayerTreeWidget.cpp | 1 + .../svg}/0.svg | 0 .../svg}/1.svg | 0 .../svg}/12(1).svg | 0 .../svg}/12.svg | 0 .../svg}/2.svg | 0 .../svg}/3.svg | 0 .../svg}/3_2.svg | 0 .../svg}/4.svg | 0 .../svg}/4_L0-fill.svg | 0 .../svg}/4_L0.svg | 0 .../svg}/5.svg | 0 .../svg}/6.svg | 0 .../svg}/T.svg | 0 .../svg}/ex.json | 0 .../svg}/test.svg | 0 .../svg}/原图.png | Bin .../svg}/正方形.svg | 0 .../svg}/线段.svg | 0 data - 副本.json | 111 ---- data.back.json | 96 ---- test.json | 172 ------ 元素改变导致结构性变化是否安全的证明.md | 60 --- 26 files changed, 2 insertions(+), 933 deletions(-) delete mode 100644 4_L0.json rename data.json => ArchitectureColoredPainting/data.json (100%) rename {svg => ArchitectureColoredPainting/svg}/0.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/1.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/12(1).svg (100%) rename {svg => ArchitectureColoredPainting/svg}/12.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/2.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/3.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/3_2.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/4.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/4_L0-fill.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/4_L0.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/5.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/6.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/T.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/ex.json (100%) rename {svg => ArchitectureColoredPainting/svg}/test.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/原图.png (100%) rename {svg => ArchitectureColoredPainting/svg}/正方形.svg (100%) rename {svg => ArchitectureColoredPainting/svg}/线段.svg (100%) delete mode 100644 data - 副本.json delete mode 100644 data.back.json delete mode 100644 test.json delete mode 100644 元素改变导致结构性变化是否安全的证明.md diff --git a/4_L0.json b/4_L0.json deleted file mode 100644 index 3b2d983..0000000 --- a/4_L0.json +++ /dev/null @@ -1,493 +0,0 @@ -{ - "background-color": "#ae9f86", - "elements": [ - { - "data": { - "include": "/svg/2.svg" - }, - "name": "ababa", - "type": "svg-file" - }, - { - "data": { - "include": "/svg/0.svg" - }, - "name": "ababa2", - "type": "svg-file" - }, - { - "data": { - "include": "/svg/4_L0.svg" - }, - "name": "4_L0.svg", - "type": "svg-file" - }, - { - "data": { - "reference-layer": "0.0" - }, - "name": "图源工", - "type": "group" - }, - { - "data": { - "reference-layer": "0.0" - }, - "name": "图源万", - "type": "group" - } - ], - "height": 1080, - "project-name": "样例1", - "root-layer": { - "children": [ - { - "children": [ - { - "children": [ - { - "element": 2, - "is-folder": false, - "name": "4_L0", - "styles": [ - { - "material": "AH8A/1JOff8=", - "type": "fill" - }, - { - "enableEachSideIndependent": true, - "left": "AAAAQAEAJJwAf///9c19/w==", - "right": "AADgQAAACpw=", - "type": "stroke" - } - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 0, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - } - ], - "is-folder": true, - "name": "工", - "referenced-by": 3, - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 0, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 3, - "is-folder": false, - "name": "1", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 103, - "y": -1 - }, - "rotation": 90, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 3, - "is-folder": false, - "name": "2", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 104, - "y": 100 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 3, - "is-folder": false, - "name": "3", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 3, - "y": 102 - }, - "rotation": 90, - "scale": { - "x": 1, - "y": 1 - } - } - } - ], - "is-folder": true, - "name": "子图层-1", - "referenced-by": 4, - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 0, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-2", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 204, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-3", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 3, - "y": 205 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-4", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 207, - "y": 203 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-5", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 407, - "y": -2 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-6", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 411, - "y": 201 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-7", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 6, - "y": 408 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-8", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 210, - "y": 408 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-9", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 414, - "y": 405 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-10", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 610, - "y": -3 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-11", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 614, - "y": 200 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-12", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 617, - "y": 405 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-13", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": -3, - "y": -202 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-14", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 200, - "y": -203 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-15", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 402, - "y": -205 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 4, - "is-folder": false, - "name": "子图层-16", - "styles": [ - ], - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 606, - "y": -206 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - } - ], - "is-folder": true, - "name": "root", - "referenced-by": null, - "transform": { - "filpX": false, - "filpY": false, - "offset": { - "x": 116, - "y": 288 - }, - "rotation": 60, - "scale": { - "x": 1.85202, - "y": 1.85202 - } - } - }, - "width": 1080 -} diff --git a/data.json b/ArchitectureColoredPainting/data.json similarity index 100% rename from data.json rename to ArchitectureColoredPainting/data.json diff --git a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp index 93ac817..5c31da6 100644 --- a/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/EditorWidget.cpp @@ -76,7 +76,7 @@ void EditorWidget::initFileMenu() connect(actionCreate, &QAction::triggered, [this] { static int count = 0; const int prevCount = this->tabWidget->count(); - this->tabWidget->addTab(new EditorWidgetItem("../data.json", this), "untitled" + QString::number(count++)); + this->tabWidget->addTab(new EditorWidgetItem("./data.json", this), "untitled" + QString::number(count++)); const int nowCount = this->tabWidget->count(); emit tabCountChanged(prevCount, nowCount); diff --git a/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp b/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp index b364f02..12877c8 100644 --- a/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp +++ b/ArchitectureColoredPainting/src/Editor/RightBar/LayerTreeWidget.cpp @@ -134,6 +134,7 @@ void LayerTreeWidget::onRenameEvent() this->selectedItem->setText(0, sName); this->selectedItem->data(0, Qt::UserRole).value()->property.name = sName; } + emit triggerCentralRefresh(); emit displayLayerChange(this->selectedItem->data(0, Qt::UserRole).value()); } diff --git a/svg/0.svg b/ArchitectureColoredPainting/svg/0.svg similarity index 100% rename from svg/0.svg rename to ArchitectureColoredPainting/svg/0.svg diff --git a/svg/1.svg b/ArchitectureColoredPainting/svg/1.svg similarity index 100% rename from svg/1.svg rename to ArchitectureColoredPainting/svg/1.svg diff --git a/svg/12(1).svg b/ArchitectureColoredPainting/svg/12(1).svg similarity index 100% rename from svg/12(1).svg rename to ArchitectureColoredPainting/svg/12(1).svg diff --git a/svg/12.svg b/ArchitectureColoredPainting/svg/12.svg similarity index 100% rename from svg/12.svg rename to ArchitectureColoredPainting/svg/12.svg diff --git a/svg/2.svg b/ArchitectureColoredPainting/svg/2.svg similarity index 100% rename from svg/2.svg rename to ArchitectureColoredPainting/svg/2.svg diff --git a/svg/3.svg b/ArchitectureColoredPainting/svg/3.svg similarity index 100% rename from svg/3.svg rename to ArchitectureColoredPainting/svg/3.svg diff --git a/svg/3_2.svg b/ArchitectureColoredPainting/svg/3_2.svg similarity index 100% rename from svg/3_2.svg rename to ArchitectureColoredPainting/svg/3_2.svg diff --git a/svg/4.svg b/ArchitectureColoredPainting/svg/4.svg similarity index 100% rename from svg/4.svg rename to ArchitectureColoredPainting/svg/4.svg diff --git a/svg/4_L0-fill.svg b/ArchitectureColoredPainting/svg/4_L0-fill.svg similarity index 100% rename from svg/4_L0-fill.svg rename to ArchitectureColoredPainting/svg/4_L0-fill.svg diff --git a/svg/4_L0.svg b/ArchitectureColoredPainting/svg/4_L0.svg similarity index 100% rename from svg/4_L0.svg rename to ArchitectureColoredPainting/svg/4_L0.svg diff --git a/svg/5.svg b/ArchitectureColoredPainting/svg/5.svg similarity index 100% rename from svg/5.svg rename to ArchitectureColoredPainting/svg/5.svg diff --git a/svg/6.svg b/ArchitectureColoredPainting/svg/6.svg similarity index 100% rename from svg/6.svg rename to ArchitectureColoredPainting/svg/6.svg diff --git a/svg/T.svg b/ArchitectureColoredPainting/svg/T.svg similarity index 100% rename from svg/T.svg rename to ArchitectureColoredPainting/svg/T.svg diff --git a/svg/ex.json b/ArchitectureColoredPainting/svg/ex.json similarity index 100% rename from svg/ex.json rename to ArchitectureColoredPainting/svg/ex.json diff --git a/svg/test.svg b/ArchitectureColoredPainting/svg/test.svg similarity index 100% rename from svg/test.svg rename to ArchitectureColoredPainting/svg/test.svg diff --git a/svg/原图.png b/ArchitectureColoredPainting/svg/原图.png similarity index 100% rename from svg/原图.png rename to ArchitectureColoredPainting/svg/原图.png diff --git a/svg/正方形.svg b/ArchitectureColoredPainting/svg/正方形.svg similarity index 100% rename from svg/正方形.svg rename to ArchitectureColoredPainting/svg/正方形.svg diff --git a/svg/线段.svg b/ArchitectureColoredPainting/svg/线段.svg similarity index 100% rename from svg/线段.svg rename to ArchitectureColoredPainting/svg/线段.svg diff --git a/data - 副本.json b/data - 副本.json deleted file mode 100644 index 150cb6c..0000000 --- a/data - 副本.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "height": 1080, - "width": 1080, - "elements": [ - { - "name": "ababa", - "type": "svg-file", - "data": { - "include": "./svg/2.svg" - } - }, - { - "name": "ababa-group", - "type": "group", - "data": { - "reference-layer": "0.0" - } - } - ], - "root-layer": { - "name": "root", - "transform": { - "offset": { - "x": 0, - "y": 0 - }, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "rotation": 0.0 - }, - "effects": [], - "is-folder": true, - "referenced-by": null, - "children": [ - - { - "name": "GroupFolderExample", - "transform": { - "offset": { - "x": 50, - "y": 50 - }, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "rotation": 0.0 - }, - "effects": [], - "is-folder": true, - "referenced-by": 1, - "children": [ - { - "name": "Leaf1", - "transform": { - "offset": { - "x": 0, - "y": 0 - }, - "scale": { - "x": 1.0, - "y": 1.0 - }, - "rotation": 0.0 - }, - "effects": [], - "is-folder": false, - "element": 0 - }, - { - "name": "Leaf2", - "transform": { - "offset": { - "x": 150, - "y": 0 - }, - "scale": { - "x": 1.5, - "y": 1.5 - }, - "rotation": 0.0 - }, - "effects": [], - "is-folder": false, - "element": 0 - } - ] - }, - - { - "name": "ReferencingGroupLayer", - "transform": { - "offset": { - "x": 100, - "y": 0 - }, - "scale": { - "x": 1, - "y": 1 - }, - "rotation": 45 - }, - "effects": [], - "is-folder": false, - "element": 1 - } - ] - } -} \ No newline at end of file diff --git a/data.back.json b/data.back.json deleted file mode 100644 index bf590e5..0000000 --- a/data.back.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "elements": [ - { - "name": "" - }, - { - "name": "" - } - ], - "height": 1080, - "root-layer": { - "children": [ - { - "children": [ - { - "element": 0, - "is-folder": false, - "name": "Leaf1", - "transform": { - "offset": { - "x": 0, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 0, - "is-folder": false, - "name": "Leaf2", - "transform": { - "offset": { - "x": 150, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1.5, - "y": 1.5 - } - } - } - ], - "is-folder": true, - "name": "GroupFolderExample", - "referenced-by": 1, - "transform": { - "offset": { - "x": 50, - "y": 50 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 1, - "is-folder": false, - "name": "ReferencingGroupLayer", - "transform": { - "offset": { - "x": 100, - "y": 0 - }, - "rotation": 45, - "scale": { - "x": 1, - "y": 1 - } - } - } - ], - "is-folder": true, - "name": "root", - "referenced-by": null, - "transform": { - "offset": { - "x": 0, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - "width": 1080 -} diff --git a/test.json b/test.json deleted file mode 100644 index ea5c1ae..0000000 --- a/test.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "background-color": "#ffffff", - "elements": [ - { - "data": { - "include": "/svg/2.svg" - }, - "name": "ababa", - "type": "svg-file" - }, - { - "data": { - "reference-layer": "0.0" - }, - "name": "ababa-group", - "type": "group" - }, - { - "data": { - "include": "/svg/0.svg" - }, - "name": "ababa2", - "type": "svg-file" - }, - { - "data": { - "include": "/svg/4_L0.svg" - }, - "name": "4_L0.svg", - "type": "svg-file" - } - ], - "height": 1080, - "project-name": "样例1", - "root-layer": { - "children": [ - { - "children": [ - { - "element": 0, - "is-folder": false, - "name": "Leaf2", - "styles": [ - { - "enableEachSideIndependent": true, - "left": "AABAQAEAIZwAf///AFqe/w==", - "right": "AABAQAAACJw=", - "type": "stroke" - } - ], - "transform": { - "offset": { - "x": 501, - "y": -3 - }, - "rotation": 0, - "scale": { - "x": 1.5, - "y": 1.5 - } - } - } - ], - "is-folder": true, - "name": "GroupFolderExample", - "referenced-by": 1, - "transform": { - "offset": { - "x": 503, - "y": 36 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 1, - "is-folder": false, - "name": "子图层-2", - "styles": [ - ], - "transform": { - "offset": { - "x": 1, - "y": 986 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 1, - "is-folder": false, - "name": "子图层-3", - "styles": [ - ], - "transform": { - "offset": { - "x": -959, - "y": -5 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 1, - "is-folder": false, - "name": "子图层-4", - "styles": [ - ], - "transform": { - "offset": { - "x": -958, - "y": 980 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - { - "element": 3, - "is-folder": false, - "name": "子图层-5", - "styles": [ - { - "material": "AH8A/wBanv8=", - "type": "fill" - } - ], - "transform": { - "offset": { - "x": 473, - "y": 419 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - } - ], - "is-folder": true, - "name": "root", - "referenced-by": null, - "transform": { - "offset": { - "x": 0, - "y": 0 - }, - "rotation": 0, - "scale": { - "x": 1, - "y": 1 - } - } - }, - "width": 1080 -} diff --git a/元素改变导致结构性变化是否安全的证明.md b/元素改变导致结构性变化是否安全的证明.md deleted file mode 100644 index e51b861..0000000 --- a/元素改变导致结构性变化是否安全的证明.md +++ /dev/null @@ -1,60 +0,0 @@ -# 图层删除 -当删除一个节点时,该节点一定满足且只满足以下条件中的一条: -1. 是一个Leaf节点,引用了其他的Element; -2. 是一个Folder节点,没有GroupElement引用,没有引用任何其他节点(因为是Folder); -3. 是一个Folder节点,存在对应的GroupElement引用。 - -其中,对于第1条,由于Leaf节点被删除只影响其父亲Folder的属性,所以显然在删除Leaf节点时是绝对安全的。 - -对于第2条,对于其父亲Folder,其被删除只影响其父亲Folder的属性,所以不会影响其父亲;对于其孩子,有可能存在以下情况: -1. 孩子中不存在任何被引用的情况:删除安全; -2. 孩子中存在Folder节点被GroupElement引用,不安全,需要手动将情况转换为第1条后才可以删除。 - -对于第3条,必须首先手动解除其本身的引用,然后将转变为第2条。 - -# 图元删除 -**显然**,无论是什么种类的图元,删除一个图元会影响到的元素只有引用它的图层,所以我们将SimpleElement与GroupElement合并成一种情况讨论。 - -当删除一个图元时,该图元一定满足且只满足以下条件中的一条: -1. 是一个GraphicElement,未被其他图层引用; -2. 是一个GraphicElement,被其他图层引用。 - -对于第1条,删除绝对安全。 - -对于第2条,将引用关系手动解除后,删除安全。 - -# 图层移动 -## 条件分析 -图层移动时,显然,被移动的节点只影响它本身及它的子图层, -移动的目标节点只影响它本身及它的父图层,那么: - -(1) 被移动的图层一定满足且只满足以下条件中的一条: -1. 是一个Folder节点,无对应的GroupElement引用,子节点无引用GroupElement; -2. 是一个Folder节点,无对应的GroupElement引用,子节点存在引用GroupElement; -3. 是一个Folder节点,存在对应的GroupElement引用; -4. 是一个Leaf节点,引用了GroupElement; -5. 是一个Leaf节点,未引用GroupElement。 - -(2) 目标FolderLayer一定满足且只满足以下条件中的一条: -1. 自身无对应的GroupElement引用,无父节点有GroupElement引用; -2. 自身无对应的GroupElement引用,存在父节点有GroupElement引用; -3. 自身存在对应的GroupElement引用。 - -显然,以上条件的全组合可以覆盖所有情况。 -由于: -- `(1) 1` 与 `(2) 中的任一条件`进行组合显然是绝对安全的; -- `(1) 3` 中自身提供的GroupElement并不会影响移动; -- `(1) 5` 与 `(2) 中的任一条件`进行组合显然是绝对安全的; -- `(1) 中的任一条件` 与 `(2) 1` 进行组合显然是绝对安全的。 - -所以接下来对于除去以上情况的所有组合情况进行讨论。 -## 讨论证明 -### `(1) 2` - `(2) 2` -当且仅当被移动的图层的子节点引用的GroupElement 与 目标图层父节点提供的GroupElement 相同时,移动不安全。 -### `(1) 4` - `(2) 2` -当且仅当被移动的图层引用的GroupElement 与 目标图层父节点提供的 GroupElement 相同时,移动不安全。 -### `(2) 3` 的特殊讨论 -当且仅当自身提供的GroupElement 被 被移动图层或其子节点引用时,需要处理其自身情况,否则无视其自身提供的GroupElement,与 `(2) 1` 或 `(2) 2` 视为同情况处理。 - -## 结论 -当且仅当被移动的图层或其子节点所引用的GroupElement 与 目标图层或其父节点所提供的GroupElement 相同时,移动不安全;其余情况均安全。 \ No newline at end of file