Feat: 改变结点层级 #22

Closed
opened 2023-03-21 00:59:21 +08:00 by wuyize · 1 comment

使得选定的若干同一层级的结点能够移入某个组合结点中

使得选定的若干同一层级的结点能够移入某个组合结点中
wuyize added the
enhancement
P2
labels 2023-03-21 00:59:21 +08:00
ArgonarioD was assigned by wuyize 2023-03-21 00:59:21 +08:00
Karlis was assigned by wuyize 2023-03-21 00:59:21 +08:00

条件分析

图层移动时,显然,被移动的节点只影响它本身及它的子图层,
移动的目标节点只影响它本身及它的父图层,那么:

(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 相同时,移动不安全;其余情况均安全。
FIX:"当且仅当被移动的图层或其子节点所引用的GroupElement"及GroupElement传递后的图层及...

## 条件分析 图层移动时,显然,被移动的节点只影响它本身及它的子图层, 移动的目标节点只影响它本身及它的父图层,那么: (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 相同时,移动不安全;其余情况均安全。 FIX:"当且仅当被移动的图层或其子节点所引用的GroupElement"及GroupElement传递后的图层及...
wuyize added
P1
and removed
P2
labels 2023-03-22 11:29:09 +08:00
Karlis started working 2023-03-27 13:58:58 +08:00
Karlis stopped working 2023-03-27 14:49:43 +08:00
50min 45s
Sign in to join this conversation.
No Milestone
No project
2 Participants
Notifications
Total Time Spent: 50 minutes 45 seconds
Karlis
50 minutes 45 seconds
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: BigC/ArchitectureColoredPainting#22
There is no content yet.