You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently we only forbid to add an instance to the node as a direct child (which means that parent !== base should stand for all nodes), but we not check for more distant relations.
The containment hierarchy and the inheritance chain of a node should never cross each other.
The text was updated successfully, but these errors were encountered:
now the gme concepts checks for every level of containment to avoid crossings in the containment hierarchy and the inheritance chain
it is still possible to create loops / crossings in the inheritance chain and containment hierarchy as not all elements can be checked at the time of modification
As some generic UI pieces depend on the fact, that there is only the FCO (and the ROOT) which doesn't have a base, we prohibit its copy.
This restriction however exsits only on the UI as in theory the core layer can handle multiple objects without base.
We also checks for situations which cause unloadable nodes. More precisely when a node contains its base.
As not all situation can be avoided beforehand we remove such nodes during their load.
This issue is the opposite of #563
A possible scenario:
1. create typeA and typeB
2. create an instance of typeA (instA)
3. move typeB inside instA
4. move typeA inside typeB (at this point we are unable to prohibit the move as we not necessarily know about instA being a descendant of typeA)
-> instA become unloadable
As some generic UI pieces depend on the fact, that there is only the FCO (and the ROOT) which doesn't have a base, we prohibit its copy.
This restriction however exsits only on the UI as in theory the core layer can handle multiple objects without base.
We also checks for situations which cause unloadable nodes. More precisely when a node contains its base.
As not all situation can be avoided beforehand we remove such nodes during their load.
This issue is the opposite of #563
A possible scenario:
1. create typeA and typeB
2. create an instance of typeA (instA)
3. move typeA inside typeB
4. move typeB inside instA (at this point we are unable to prohibit the move as we not necessarily know about typeA and that it is the base of instA)
-> instA become unloadable
Currently we only forbid to add an instance to the node as a direct child (which means that parent !== base should stand for all nodes), but we not check for more distant relations.
The containment hierarchy and the inheritance chain of a node should never cross each other.
The text was updated successfully, but these errors were encountered: