FairyGUI.GList.GetIndexOnPos2 C# (CSharp) Method

GetIndexOnPos2() private method

private GetIndexOnPos2 ( float &pos, bool forceUpdate ) : int
pos float
forceUpdate bool
return int
        int GetIndexOnPos2(ref float pos, bool forceUpdate)
        {
            if (_realNumItems < _curLineItemCount)
            {
                pos = 0;
                return 0;
            }

            if (numChildren > 0 && !forceUpdate)
            {
                float pos2 = this.GetChildAt(0).x;
                if (pos2 > pos)
                {
                    for (int i = _firstIndex - _curLineItemCount; i >= 0; i -= _curLineItemCount)
                    {
                        pos2 -= (_virtualItems[i].size.x + _columnGap);
                        if (pos2 <= pos)
                        {
                            pos = pos2;
                            return i;
                        }
                    }

                    pos = 0;
                    return 0;
                }
                else
                {
                    for (int i = _firstIndex; i < _realNumItems; i += _curLineItemCount)
                    {
                        float pos3 = pos2 + _virtualItems[i].size.x + _columnGap;
                        if (pos3 > pos)
                        {
                            pos = pos2;
                            return i;
                        }
                        pos2 = pos3;
                    }

                    pos = pos2;
                    return _realNumItems - _curLineItemCount;
                }
            }
            else
            {
                float pos2 = 0;
                for (int i = 0; i < _realNumItems; i += _curLineItemCount)
                {
                    float pos3 = pos2 + _virtualItems[i].size.x + _columnGap;
                    if (pos3 > pos)
                    {
                        pos = pos2;
                        return i;
                    }
                    pos2 = pos3;
                }

                pos = pos2;
                return _realNumItems - _curLineItemCount;
            }
        }