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;
 }