diff options
Diffstat (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/CommentaryNode.cs')
-rw-r--r-- | Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/CommentaryNode.cs | 692 |
1 files changed, 692 insertions, 0 deletions
diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/CommentaryNode.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/CommentaryNode.cs new file mode 100644 index 00000000..141fea0d --- /dev/null +++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Nodes/CommentaryNode.cs @@ -0,0 +1,692 @@ +// Amplify Shader Editor - Visual Shader Editing Tool +// Copyright (c) Amplify Creations, Lda <info@amplify.pt> + +using System; +using UnityEngine; +using System.Collections.Generic; +using UnityEditor; + +namespace AmplifyShaderEditor +{ + public enum eResizeAxis + { + X_AXIS, + Y_AXIS, + ALL + } + + [Serializable] + public sealed class CommentaryNode : ParentNode, ISerializationCallbackReceiver + { + private const string InfoText = "Press Alt + Left Mouse Click/Drag to make all Comment node area interactable.\nDouble click on the Comment at the node body to modify it directly from there."; + + private const string CommentaryTitle = "Comment"; + private const float BORDER_SIZE_X = 50; + private const float BORDER_SIZE_Y = 50; + private const float MIN_SIZE_X = 100; + private const float MIN_SIZE_Y = 100; + private const float COMMENTARY_BOX_HEIGHT = 30; + + private readonly Vector2 ResizeButtonPos = new Vector2( 1, 1 ); + + [SerializeField] + private string m_commentText = "Comment"; + + [SerializeField] + private string m_titleText = string.Empty; + + [SerializeField] + private eResizeAxis m_resizeAxis = eResizeAxis.ALL; + + [SerializeField] + private List<ParentNode> m_nodesOnCommentary = new List<ParentNode>(); + private Dictionary<int, ParentNode> m_nodesOnCommentaryDict = new Dictionary<int, ParentNode>(); + private bool m_reRegisterNodes = false; + + [SerializeField] + private Rect m_resizeLeftIconCoords; + + [SerializeField] + private Rect m_resizeRightIconCoords; + + [SerializeField] + private Rect m_auxHeaderPos; + + [SerializeField] + private Rect m_commentArea; + + private Texture2D m_resizeIconTex; + + private bool m_isResizingRight = false; + private bool m_isResizingLeft = false; + + private Vector2 m_resizeStartPoint = Vector2.zero; + + private string m_focusName = "CommentaryNode"; + private bool m_focusOnTitle = false; + private bool m_graphDepthAnalized = false; + + private bool m_checkCommentText = true; + private bool m_checkTitleText = true; + + public Color m_frameColor = Color.white; + + private List<int> m_nodesIds = new List<int>(); + private bool m_checkContents = false; + + private bool m_isEditing; + private bool m_stopEditing; + private bool m_startEditing; + private double m_clickTime; + private double m_doubleClickTime = 0.3; + + + protected override void CommonInit( int uniqueId ) + { + base.CommonInit( uniqueId ); + m_reorderLocked = true; + m_rmbIgnore = true; + m_defaultInteractionMode = InteractionMode.Both; + m_headerColor = UIUtils.GetColorFromCategory( "Commentary" ); + m_connStatus = NodeConnectionStatus.Island; + m_textLabelWidth = 90; + } + + protected override void OnUniqueIDAssigned() + { + base.OnUniqueIDAssigned(); + m_focusName = CommentaryTitle + OutputId; + } + + public void CreateFromSelectedNodes( Vector2 mousePosOnCanvasCoords, ParentNode[] selectedNodes ) + { + if ( selectedNodes.Length == 0 ) + { + m_position = new Rect( mousePosOnCanvasCoords, new Vector2( 100, 100 ) ); + return; + } + + Vector2 minPos = new Vector2( float.MaxValue, float.MaxValue ); + Vector2 maxPos = new Vector2( float.MinValue, float.MinValue ); + + for ( int i = 0; i < selectedNodes.Length; i++ ) + { + //Check min + if ( selectedNodes[ i ].Position.x < minPos.x ) + minPos.x = selectedNodes[ i ].Position.x; + + if ( selectedNodes[ i ].Position.y < minPos.y ) + minPos.y = selectedNodes[ i ].Position.y; + + //check max + float nodeXMax = selectedNodes[ i ].Position.x + selectedNodes[ i ].Position.width; + if ( nodeXMax > maxPos.x ) + { + maxPos.x = nodeXMax; + } + + float nodeYMax = selectedNodes[ i ].Position.y + selectedNodes[ i ].Position.height; + if ( nodeYMax > maxPos.y ) + { + maxPos.y = nodeYMax; + } + + //_nodesOnCommentary.Add( selectedNodes[ i ] ); + //selectedNodes[ i ].OnNodeStoppedMovingEvent += NodeStoppedMoving; + AddNodeToCommentary( selectedNodes[ i ] ); + } + + Vector2 dims = maxPos - minPos + new Vector2( 2 * BORDER_SIZE_X, 2 * BORDER_SIZE_Y ); + m_position = new Rect( minPos.x - BORDER_SIZE_X, minPos.y - BORDER_SIZE_Y, dims.x, dims.y ); + } + + public override void Move( Vector2 delta, bool snap ) + { + if ( m_isResizingRight || m_isResizingLeft ) + return; + + base.Move( delta, snap ); + for ( int i = 0; i < m_nodesOnCommentary.Count; i++ ) + { + if ( !m_nodesOnCommentary[ i ].Selected ) + { + m_nodesOnCommentary[ i ].RecordObject( Constants.UndoMoveNodesId ); + m_nodesOnCommentary[ i ].Move( delta, snap ); + } + } + } + + public void NodeStoppedMoving( ParentNode node, bool testOnlySelected, InteractionMode useTargetInteraction ) + { + if ( !m_position.Contains( node.Vec2Position ) && !m_position.Contains( node.Corner ) ) + { + RemoveNode( node ); + } + } + + public void NodeDestroyed( ParentNode node ) + { + RemoveNode( node ); + } + + public void RemoveNode( ParentNode node ) + { + if ( m_nodesOnCommentaryDict.ContainsKey( node.UniqueId ) ) + { + UIUtils.MarkUndoAction(); + RecordObject( Constants.UndoRemoveNodeFromCommentaryId ); + node.RecordObject( Constants.UndoRemoveNodeFromCommentaryId ); + m_nodesOnCommentary.Remove( node ); + m_nodesOnCommentaryDict.Remove( node.UniqueId ); + node.OnNodeStoppedMovingEvent -= NodeStoppedMoving; + node.OnNodeDestroyedEvent -= NodeDestroyed; + node.CommentaryParent = -1; + } + } + + public void RemoveAllNodes() + { + UIUtils.MarkUndoAction(); + for ( int i = 0; i < m_nodesOnCommentary.Count; i++ ) + { + RecordObject( Constants.UndoRemoveNodeFromCommentaryId ); + m_nodesOnCommentary[ i ].RecordObject( Constants.UndoRemoveNodeFromCommentaryId ); + m_nodesOnCommentary[ i ].OnNodeStoppedMovingEvent -= NodeStoppedMoving; + m_nodesOnCommentary[ i ].OnNodeDestroyedEvent -= NodeDestroyed; + m_nodesOnCommentary[ i ].CommentaryParent = -1; + } + m_nodesOnCommentary.Clear(); + m_nodesOnCommentaryDict.Clear(); + } + + public override void Destroy() + { + base.Destroy(); + RemoveAllNodes(); + } + + public void AddNodeToCommentary( ParentNode node ) + { + if( node.UniqueId == UniqueId ) + return; + + if ( !m_nodesOnCommentaryDict.ContainsKey( node.UniqueId ) ) + { + bool addToNode = false; + + if ( node.CommentaryParent < 0 ) + { + addToNode = true; + if ( node.Depth <= m_depth ) + { + ActivateNodeReordering( node.Depth ); + } + } + else + { + CommentaryNode other = UIUtils.GetNode( node.CommentaryParent ) as CommentaryNode; + if ( other != null ) + { + if ( other.Depth < Depth ) + { + other.RemoveNode( node ); + addToNode = true; + } + + } + } + + if ( addToNode ) + { + UIUtils.MarkUndoAction(); + RecordObject( Constants.UndoAddNodeToCommentaryId ); + node.RecordObject( Constants.UndoAddNodeToCommentaryId ); + + m_nodesOnCommentary.Add( node ); + m_nodesOnCommentaryDict.Add( node.UniqueId, node ); + node.OnNodeStoppedMovingEvent += NodeStoppedMoving; + node.OnNodeDestroyedEvent += NodeDestroyed; + node.CommentaryParent = UniqueId; + } + } + } + + public override void DrawProperties() + { + base.DrawProperties(); + NodeUtils.DrawPropertyGroup( ref m_propertiesFoldout, Constants.ParameterLabelStr,()=> + { + EditorGUI.BeginChangeCheck(); + m_titleText = EditorGUILayoutTextField( "Frame Title", m_titleText ); + if ( EditorGUI.EndChangeCheck() ) + { + m_checkTitleText = true; + } + EditorGUI.BeginChangeCheck(); + m_commentText = EditorGUILayoutTextField( CommentaryTitle, m_commentText ); + if ( EditorGUI.EndChangeCheck() ) + { + m_checkCommentText = true; + } + + m_frameColor = EditorGUILayoutColorField( "Frame Color", m_frameColor ); + } ); + EditorGUILayout.HelpBox( InfoText, MessageType.Info ); + } + + public override void OnNodeLayout( DrawInfo drawInfo ) + { + if ( m_nodesIds.Count > 0 ) + { + for ( int i = 0; i < m_nodesIds.Count; i++ ) + { + ParentNode node = ContainerGraph.GetNode( m_nodesIds[ i ] ); + if ( node ) + { + AddNodeToCommentary( node ); + } + } + m_nodesIds.Clear(); + } + + if ( m_reRegisterNodes ) + { + m_reRegisterNodes = false; + m_nodesOnCommentaryDict.Clear(); + for ( int i = 0; i < m_nodesOnCommentary.Count; i++ ) + { + if ( m_nodesOnCommentary[ i ] != null ) + { + m_nodesOnCommentary[ i ].OnNodeStoppedMovingEvent += NodeStoppedMoving; + m_nodesOnCommentary[ i ].OnNodeDestroyedEvent += NodeDestroyed; + m_nodesOnCommentaryDict.Add( m_nodesOnCommentary[ i ].UniqueId, m_nodesOnCommentary[ i ] ); + } + } + } + + //base.OnLayout( drawInfo ); + CalculatePositionAndVisibility( drawInfo ); + + m_headerPosition = m_globalPosition; + m_headerPosition.height = UIUtils.CurrentHeaderHeight; + + m_auxHeaderPos = m_position; + m_auxHeaderPos.height = UIUtils.HeaderMaxHeight; + + m_commentArea = m_globalPosition; + m_commentArea.height = COMMENTARY_BOX_HEIGHT * drawInfo.InvertedZoom; + m_commentArea.xMin += 10 * drawInfo.InvertedZoom; + m_commentArea.xMax -= 10 * drawInfo.InvertedZoom; + + if ( m_resizeIconTex == null ) + { + m_resizeIconTex = UIUtils.GetCustomStyle( CustomStyle.CommentaryResizeButton ).normal.background; + } + + // LEFT RESIZE BUTTON + m_resizeLeftIconCoords = m_globalPosition; + m_resizeLeftIconCoords.x = m_globalPosition.x + 2; + m_resizeLeftIconCoords.y = m_globalPosition.y + m_globalPosition.height - 2 - ( m_resizeIconTex.height + ResizeButtonPos.y ) * drawInfo.InvertedZoom; + m_resizeLeftIconCoords.width = m_resizeIconTex.width * drawInfo.InvertedZoom; + m_resizeLeftIconCoords.height = m_resizeIconTex.height * drawInfo.InvertedZoom; + + // RIGHT RESIZE BUTTON + m_resizeRightIconCoords = m_globalPosition; + m_resizeRightIconCoords.x = m_globalPosition.x + m_globalPosition.width - 1 - ( m_resizeIconTex.width + ResizeButtonPos.x ) * drawInfo.InvertedZoom; + m_resizeRightIconCoords.y = m_globalPosition.y + m_globalPosition.height - 2 - ( m_resizeIconTex.height + ResizeButtonPos.y ) * drawInfo.InvertedZoom; + m_resizeRightIconCoords.width = m_resizeIconTex.width * drawInfo.InvertedZoom; + m_resizeRightIconCoords.height = m_resizeIconTex.height * drawInfo.InvertedZoom; + } + + public override void OnNodeRepaint( DrawInfo drawInfo ) + { + if ( !m_isVisible ) + return; + + m_colorBuffer = GUI.color; + // Background + GUI.color = Constants.NodeBodyColor * m_frameColor; + GUI.Label( m_globalPosition, string.Empty, UIUtils.GetCustomStyle( CustomStyle.CommentaryBackground ) ); + + // Header + GUI.color = m_headerColor * m_headerColorModifier * m_frameColor; + GUI.Label( m_headerPosition, string.Empty, UIUtils.GetCustomStyle( CustomStyle.NodeHeader ) ); + GUI.color = m_colorBuffer; + + // Fixed Title ( only renders when not editing ) + if ( !m_isEditing && !m_startEditing && ContainerGraph.LodLevel <= ParentGraph.NodeLOD.LOD3 ) + { + GUI.Label( m_commentArea, m_commentText, UIUtils.CommentaryTitle ); + } + + // Buttons + GUI.Label( m_resizeLeftIconCoords, string.Empty, UIUtils.GetCustomStyle( CustomStyle.CommentaryResizeButtonInv ) ); + GUI.Label( m_resizeRightIconCoords, string.Empty, UIUtils.GetCustomStyle( CustomStyle.CommentaryResizeButton ) ); + + // Selection Box + if ( m_selected ) + { + GUI.color = Constants.NodeSelectedColor; + RectOffset cache = UIUtils.GetCustomStyle( CustomStyle.NodeWindowOn ).border; + UIUtils.GetCustomStyle( CustomStyle.NodeWindowOn ).border = UIUtils.RectOffsetSix; + GUI.Label( m_globalPosition, string.Empty, UIUtils.GetCustomStyle( CustomStyle.NodeWindowOn ) ); + UIUtils.GetCustomStyle( CustomStyle.NodeWindowOn ).border = cache; + GUI.color = m_colorBuffer; + } + + if ( !string.IsNullOrEmpty( m_titleText ) ) + { + Rect titleRect = m_globalPosition; + titleRect.y -= 24; + titleRect.height = 24; + GUI.Label( titleRect, m_titleText, UIUtils.GetCustomStyle( CustomStyle.CommentarySuperTitle ) ); + } + } + + public override void Draw( DrawInfo drawInfo ) + { + base.Draw( drawInfo ); + + // Custom Editable Title + if ( ContainerGraph.LodLevel <= ParentGraph.NodeLOD.LOD3 ) + { + if ( !m_isEditing && ( ( !ContainerGraph.ParentWindow.MouseInteracted && drawInfo.CurrentEventType == EventType.MouseDown && m_commentArea.Contains( drawInfo.MousePosition ) ) ) ) + { + if ( ( EditorApplication.timeSinceStartup - m_clickTime ) < m_doubleClickTime ) + m_startEditing = true; + else + GUI.FocusControl( null ); + m_clickTime = EditorApplication.timeSinceStartup; + } + else if ( m_isEditing && ( ( drawInfo.CurrentEventType == EventType.MouseDown && !m_commentArea.Contains( drawInfo.MousePosition ) ) || !EditorGUIUtility.editingTextField ) ) + { + m_stopEditing = true; + } + + if ( m_isEditing || m_startEditing ) + { + EditorGUI.BeginChangeCheck(); + GUI.SetNextControlName( m_focusName ); + m_commentText = EditorGUITextField( m_commentArea, string.Empty, m_commentText, UIUtils.CommentaryTitle ); + if ( EditorGUI.EndChangeCheck() ) + { + m_checkCommentText = true; + } + + if ( m_startEditing ) + EditorGUI.FocusTextInControl( m_focusName ); + } + + if ( drawInfo.CurrentEventType == EventType.Repaint ) + { + if ( m_startEditing ) + { + m_startEditing = false; + m_isEditing = true; + } + + if ( m_stopEditing ) + { + m_stopEditing = false; + m_isEditing = false; + GUI.FocusControl( null ); + } + } + } + + if ( drawInfo.CurrentEventType == EventType.MouseDown && drawInfo.LeftMouseButtonPressed ) + { + // Left Button + if( m_resizeLeftIconCoords.Contains( drawInfo.MousePosition ) && ContainerGraph.ParentWindow.CurrentEvent.modifiers != EventModifiers.Shift ) + { + if ( !m_isResizingLeft ) + { + m_isResizingLeft = true; + ContainerGraph.ParentWindow.ForceAutoPanDir = true; + m_resizeStartPoint = drawInfo.TransformedMousePos; + } + } + + // Right Button + if ( m_resizeRightIconCoords.Contains( drawInfo.MousePosition ) && ContainerGraph.ParentWindow.CurrentEvent.modifiers != EventModifiers.Shift ) + { + if ( !m_isResizingRight ) + { + m_isResizingRight = true; + ContainerGraph.ParentWindow.ForceAutoPanDir = true; + m_resizeStartPoint = drawInfo.TransformedMousePos; + } + } + } + + if ( drawInfo.CurrentEventType == EventType.Repaint || drawInfo.CurrentEventType == EventType.MouseUp ) + { + // Left Button + EditorGUIUtility.AddCursorRect( m_resizeLeftIconCoords, MouseCursor.ResizeUpRight ); + if ( m_isResizingLeft ) + { + if ( drawInfo.CurrentEventType == EventType.MouseUp ) + { + m_isResizingLeft = false; + ContainerGraph.ParentWindow.ForceAutoPanDir = false; + RemoveAllNodes(); + FireStoppedMovingEvent( false, InteractionMode.Target ); + } + else + { + Vector2 currSize = ( drawInfo.TransformedMousePos - m_resizeStartPoint ) /*/ drawInfo.InvertedZoom*/; + m_resizeStartPoint = drawInfo.TransformedMousePos; + if ( m_resizeAxis != eResizeAxis.Y_AXIS ) + { + m_position.x += currSize.x; + m_position.width -= currSize.x; + if ( m_position.width < MIN_SIZE_X ) + { + m_position.x -= ( MIN_SIZE_X - m_position.width ); + m_position.width = MIN_SIZE_X; + } + } + + if ( m_resizeAxis != eResizeAxis.X_AXIS ) + { + m_position.height += currSize.y; + if ( m_position.height < MIN_SIZE_Y ) + { + m_position.height = MIN_SIZE_Y; + } + } + } + } + + // Right Button + EditorGUIUtility.AddCursorRect( m_resizeRightIconCoords, MouseCursor.ResizeUpLeft ); + if ( m_isResizingRight ) + { + if ( drawInfo.CurrentEventType == EventType.MouseUp ) + { + m_isResizingRight = false; + ContainerGraph.ParentWindow.ForceAutoPanDir = false; + RemoveAllNodes(); + FireStoppedMovingEvent( false, InteractionMode.Target ); + } + else + { + Vector2 currSize = ( drawInfo.TransformedMousePos - m_resizeStartPoint ) /*/ drawInfo.InvertedZoom*/; + m_resizeStartPoint = drawInfo.TransformedMousePos; + if ( m_resizeAxis != eResizeAxis.Y_AXIS ) + { + m_position.width += currSize.x; + if ( m_position.width < MIN_SIZE_X ) + { + m_position.width = MIN_SIZE_X; + } + } + + if ( m_resizeAxis != eResizeAxis.X_AXIS ) + { + m_position.height += currSize.y; + if ( m_position.height < MIN_SIZE_Y ) + { + m_position.height = MIN_SIZE_Y; + } + } + } + } + } + + if ( m_checkCommentText ) + { + m_checkCommentText = false; + m_commentText = m_commentText.Replace( IOUtils.FIELD_SEPARATOR, ' ' ); + } + + if ( m_checkTitleText ) + { + m_checkTitleText = false; + m_titleText = m_titleText.Replace( IOUtils.FIELD_SEPARATOR, ' ' ); + } + + if ( m_focusOnTitle && drawInfo.CurrentEventType == EventType.KeyUp ) + { + m_focusOnTitle = false; + m_startEditing = true; + } + } + + public void Focus() + { + m_focusOnTitle = true; + } + + public override void OnAfterDeserialize() + { + base.OnAfterDeserialize(); + m_reRegisterNodes = true; + } + + public override bool OnNodeInteraction( ParentNode node ) + { + if ( node == null || UniqueId == node.UniqueId ) + return false; + + for( int i = 0; i < m_nodesOnCommentary.Count; i++ ) + { + if( m_nodesOnCommentary[ i ] && m_nodesOnCommentary[ i ] != this && m_nodesOnCommentary[ i ].OnNodeInteraction( node ) ) + { + return false; + } + } + + if( m_position.Contains( node.Vec2Position ) && m_position.Contains( node.Corner ) ) + { + AddNodeToCommentary( node ); + return true; + } + return false; + } + + public override void OnSelfStoppedMovingEvent() + { + FireStoppedMovingEvent( false, InteractionMode.Both ); + } + + public override void ReadFromString( ref string[] nodeParams ) + { + base.ReadFromString( ref nodeParams ); + m_position.width = Convert.ToSingle( GetCurrentParam( ref nodeParams ) ); + m_position.height = Convert.ToSingle( GetCurrentParam( ref nodeParams ) ); + m_commentText = GetCurrentParam( ref nodeParams ); + int count = Convert.ToInt32( GetCurrentParam( ref nodeParams ) ); + for ( int i = 0; i < count; i++ ) + { + m_nodesIds.Add( Convert.ToInt32( GetCurrentParam( ref nodeParams ) ) ); + } + + if ( UIUtils.CurrentShaderVersion() > 5004 ) + m_titleText = GetCurrentParam( ref nodeParams ); + + if ( UIUtils.CurrentShaderVersion() > 12002 ) + { + string[] colorChannels = GetCurrentParam( ref nodeParams ).Split( IOUtils.VECTOR_SEPARATOR ); + if ( colorChannels.Length == 4 ) + { + m_frameColor.r = Convert.ToSingle( colorChannels[ 0 ] ); + m_frameColor.g = Convert.ToSingle( colorChannels[ 1 ] ); + m_frameColor.b = Convert.ToSingle( colorChannels[ 2 ] ); + m_frameColor.a = Convert.ToSingle( colorChannels[ 3 ] ); + } + else + { + UIUtils.ShowMessage( UniqueId, "Incorrect number of color values", MessageSeverity.Error ); + } + } + } + + public override void WriteToString( ref string nodeInfo, ref string connectionsInfo ) + { + base.WriteToString( ref nodeInfo, ref connectionsInfo ); + IOUtils.AddFieldValueToString( ref nodeInfo, m_position.width ); + IOUtils.AddFieldValueToString( ref nodeInfo, m_position.height ); + IOUtils.AddFieldValueToString( ref nodeInfo, m_commentText ); + IOUtils.AddFieldValueToString( ref nodeInfo, m_nodesOnCommentary.Count ); + for ( int i = 0; i < m_nodesOnCommentary.Count; i++ ) + { + IOUtils.AddFieldValueToString( ref nodeInfo, m_nodesOnCommentary[ i ].UniqueId ); + } + + IOUtils.AddFieldValueToString( ref nodeInfo, m_titleText ); + IOUtils.AddFieldValueToString( ref nodeInfo, m_frameColor.r.ToString() + IOUtils.VECTOR_SEPARATOR + m_frameColor.g.ToString() + IOUtils.VECTOR_SEPARATOR + m_frameColor.b.ToString() + IOUtils.VECTOR_SEPARATOR + m_frameColor.a.ToString() ); + } + + public override void ResetNodeData() + { + base.ResetNodeData(); + m_graphDepthAnalized = false; + } + + public override void ReadAdditionalClipboardData( ref string[] nodeParams ) + { + base.ReadAdditionalClipboardData( ref nodeParams ); + m_nodesIds.Clear(); + m_checkContents = true; + } + + public override void RefreshExternalReferences() + { + base.RefreshExternalReferences(); + if( m_checkContents ) + { + m_checkContents = false; + OnSelfStoppedMovingEvent(); + } + } + + public override void CalculateCustomGraphDepth() + { + if ( m_graphDepthAnalized ) + return; + + m_graphDepth = int.MinValue; + int count = m_nodesOnCommentary.Count; + for ( int i = 0; i < count; i++ ) + { + if ( m_nodesOnCommentary[ i ].ConnStatus == NodeConnectionStatus.Island ) + { + m_nodesOnCommentary[ i ].CalculateCustomGraphDepth(); + } + + if ( m_nodesOnCommentary[ i ].GraphDepth >= m_graphDepth ) + { + m_graphDepth = m_nodesOnCommentary[ i ].GraphDepth + 1; + } + } + m_graphDepthAnalized = true; + } + + public override Rect Position { get { return Event.current.alt ? m_position : m_auxHeaderPos; } } + public override bool Contains( Vector3 pos ) + { + return Event.current.alt ? m_globalPosition.Contains( pos ) : ( m_headerPosition.Contains( pos ) || m_resizeRightIconCoords.Contains( pos ) || m_resizeLeftIconCoords.Contains( pos ) ); + } + } +} |