-
- using Godot;
-
- /// <summary>
- /// 交叉过道数据
- /// </summary>
- public class CrossAisleRectData
- {
- /// <summary>
- /// 第一道门连接的过道区域
- /// </summary>
- public Rect2I Rect1;
- /// <summary>
- /// 交叉点区域
- /// </summary>
- public Rect2I Cross;
- /// <summary>
- /// 第二道门连接的过道区域
- /// </summary>
- public Rect2I Rect2;
-
- /// <summary>
- /// 计算并返回过道所占矩形大小
- /// </summary>
- public Rect2I CalcAisleRect()
- {
- int x, y, w, h;
- if (Rect1.Position.X < Rect2.Position.X)
- {
- x = Rect1.Position.X;
- w = Rect2.Position.X - Rect1.Position.X + Rect2.Size.X;
- }
- else
- {
- x = Rect2.Position.X;
- w = Rect1.Position.X - Rect2.Position.X + Rect1.Size.X;
- }
- if (Rect1.Position.Y < Rect2.Position.Y)
- {
- y = Rect1.Position.Y;
- h = Rect2.Position.Y - Rect1.Position.Y + Rect2.Size.Y;
- }
- else
- {
- y = Rect2.Position.Y;
- h = Rect1.Position.Y - Rect2.Position.Y + Rect1.Size.Y;
- }
-
- return new Rect2I(x, y, w, h);
- }
- }