AssetBundleGraph.NodeGUI.UpdateNodeRect C# (CSharp) Method

UpdateNodeRect() public method

public UpdateNodeRect ( ) : void
return void
        public void UpdateNodeRect()
        {
            // UpdateNodeRect will be called outside OnGUI(), so it use inacurate but simple way to calcurate label width
            // instead of CalcSize()
            var contentLabelWordsLength = this.Name.Length;

            if(m_data.InputPoints.Count > 0) {
                var inputLabels = m_data.InputPoints.OrderByDescending(p => p.Label.Length).Select(p => p.Label.Length).ToList();
                if (inputLabels.Any()) {
                    contentLabelWordsLength = contentLabelWordsLength + 1 + inputLabels[0];
                }
            }

            if(m_data.OutputPoints.Count > 0) {
                var outputLabels = m_data.OutputPoints.OrderByDescending(p => p.Label.Length).Select(p => p.Label.Length).ToList();
                if (outputLabels.Any()) {
                    contentLabelWordsLength = contentLabelWordsLength + 1 + outputLabels[0];
                }
            }

            // update node height by number of output connectionPoint.
            var nPoints = Mathf.Max(m_data.OutputPoints.Count, m_data.InputPoints.Count);
            this.m_baseRect = new Rect(m_baseRect.x, m_baseRect.y,
                m_baseRect.width,
                AssetBundleGraphGUISettings.NODE_BASE_HEIGHT + (AssetBundleGraphGUISettings.FILTER_OUTPUT_SPAN * Mathf.Max(0, (nPoints - 1)))
            );

            var newWidth = Mathf.Max(AssetBundleGraphGUISettings.NODE_BASE_WIDTH, contentLabelWordsLength * 10.0f);
            m_baseRect = new Rect(m_baseRect.x, m_baseRect.y, newWidth, m_baseRect.height);

            RefreshConnectionPos();
        }

Usage Example

 protected override void CloseScope()
 {
     if (node != null)
     {
         node.UpdateNodeRect();
         node.ResetErrorStatus();
     }
     if (saveOnScopeEnd)
     {
         NodeGUIUtility.NodeEventHandler(new NodeEvent(NodeEvent.EventType.EVENT_SAVE));
     }
 }
All Usage Examples Of AssetBundleGraph.NodeGUI::UpdateNodeRect