@@ -12,8 +12,10 @@ namespace GBG.PlayableGraphMonitor.Editor.Node
1212 public enum NodeFlag : uint
1313 {
1414 None = 0 ,
15+
1516 Active = 1 << 0 ,
16- //Dirty = 1 << 1,
17+
18+ HierarchyDirty = 1 << 1 ,
1719 }
1820
1921 public readonly struct NodeInput
@@ -52,7 +54,7 @@ public abstract class GraphViewNode : UNode
5254
5355 protected List < NodeInput > InternalInputs { get ; } = new List < NodeInput > ( ) ;
5456
55- // protected GraphViewNode Parent { get; private set; }
57+ protected GraphViewNode Parent { get ; private set ; }
5658
5759
5860 public virtual void Update ( ) { }
@@ -90,13 +92,14 @@ public override void BuildContextualMenu(ContextualMenuPopulateEvent evt)
9092
9193 #region Hierarchy
9294
93- public void AddToContainer ( UGraphView container )
95+ public void AddToView ( UGraphView container , GraphViewNode parentNode )
9496 {
9597 Container = container ;
9698 Container . AddElement ( this ) ;
99+ Parent = parentNode ;
97100 }
98101
99- public void RemoveFromContainer ( )
102+ public void RemoveFromView ( )
100103 {
101104 // self
102105 Container . RemoveElement ( this ) ;
@@ -106,12 +109,13 @@ public void RemoveFromContainer()
106109 {
107110 var input = InternalInputs [ i ] ;
108111 Container . RemoveElement ( input . Edge ) ;
109- input . Node . RemoveFromContainer ( ) ;
112+ input . Node . RemoveFromView ( ) ;
110113 }
111114
112115 InternalInputs . Clear ( ) ;
113116
114117 Container = null ;
118+ Parent = null ;
115119 }
116120
117121
@@ -209,11 +213,25 @@ public bool CheckFlag(NodeFlag flag)
209213 public void AddFlag ( NodeFlag flag )
210214 {
211215 _flags |= ( uint ) flag ;
216+ OnFlagsChanged ( ) ;
212217 }
213218
214219 public void RemoveFlag ( NodeFlag flag )
215220 {
216221 _flags &= ~ ( uint ) flag ;
222+ OnFlagsChanged ( ) ;
223+ }
224+
225+
226+ protected virtual void OnFlagsChanged ( )
227+ {
228+ if ( CheckFlag ( NodeFlag . HierarchyDirty ) )
229+ {
230+ _hierarchySize = null ;
231+ RemoveFlag ( NodeFlag . HierarchyDirty ) ;
232+
233+ Parent ? . AddFlag ( NodeFlag . HierarchyDirty ) ;
234+ }
217235 }
218236
219237 #endregion
0 commit comments