public FloorList Flat(float depth) { Vector3 forward = Last.Forward; Vector3 startPosition = (Last.RightForward + Last.LeftForward) / 2f; Vector3 position = startPosition + forward * (depth / 2f); Vector3 right = (Last.RightForward - Last.LeftForward).normalized; Vector3 normal = Vector3.Cross (forward, right).normalized; float width = Last.Width; Floor floor = new FlatFloor (normal, position, forward, depth, width); Last.Next = floor; floor.Prev = Last; Last = floor; floor.Order = floor.Prev.Order + 1; return this; }
public FloorList Close() { Floor floor = new FlatFloor (Head.RightBack, Head.LeftBack, Last.LeftForward, Last.RightForward); Last.Next = floor; floor.Prev = Last; Last = floor; floor.Next = Head; Head.Prev = floor; floor.Order = floor.Prev.Order + 1; return this; }