コード例 #1
0
        /// <summary>
        /// X軸上のポイントを設定する
        /// </summary>
        /// <param name="rect">設定したいRect</param>
        private void SetLeftOneRect(PlacableRect rect)
        {
            var conflicts = GetConflictRects(rect, placedRects);

            rect.rect.X = _minPos;

            SetPlacableRect(ref rect.rect, conflicts);
        }
コード例 #2
0
        /// <summary>
        /// 2つのRectを比較してコンフリクトする可能性のあるRectのリストを返す
        /// </summary>
        /// <param name="placable">判定対象のRect</param>
        /// <param name="cmpList">コンフリクト判定するRectのリスト</param>
        /// <returns>コンフリクト可能性のあるRectのリスト</returns>
        private List <PlacableRect> GetConflictRects(PlacableRect placable, List <PlacableRect> cmpList)
        {
            List <PlacableRect> retRects = new List <PlacableRect>();

            if (placable.rect.Height == 0)
            {
                return(retRects);
            }

            foreach (var rect in cmpList)
            {
                if (IsConflictRectVertical(ref placable.rect, ref rect.rect))
                {
                    if (rect.rect.Height == 0)
                    {
                        continue;
                    }
                    retRects.Add(rect);
                }
            }

            return(retRects);
        }
コード例 #3
0
        /// <summary>
        /// X軸上のポイントを設定する
        /// </summary>
        /// <param name="rect">設定したいRect</param>
        private void SetLeftOneRect(PlacableRect rect)
        {
            var conflicts = GetConflictRects(rect, placedRects);

            rect.rect.X = _minPos;

            SetPlacableRect(ref rect.rect, conflicts);
        }
コード例 #4
0
        /// <summary>
        /// 2つのRectを比較してコンフリクトする可能性のあるRectのリストを返す
        /// </summary>
        /// <param name="placable">判定対象のRect</param>
        /// <param name="cmpList">コンフリクト判定するRectのリスト</param>
        /// <returns>コンフリクト可能性のあるRectのリスト</returns>
        private List<PlacableRect> GetConflictRects(PlacableRect placable, List<PlacableRect> cmpList)
        {
            List<PlacableRect> retRects = new List<PlacableRect>();
            if (placable.rect.Height == 0)
            {
                return retRects;
            }

            foreach (var rect in cmpList)
            {
                if (IsConflictRectVertical(ref placable.rect, ref rect.rect))
                {
                    if (rect.rect.Height == 0)
                    {
                        continue;
                    }
                    retRects.Add(rect);
                }
            }

            return retRects;
        }