public FloorList Upslope(float radius, float startTheta, float endTheta) { Vector3 startPosition = (Last.RightForward + Last.LeftForward) / 2f; Vector3 center = startPosition + Vector3.up * radius; Vector3 right = (Last.RightForward - Last.LeftForward).normalized; Floor floor = new OrbitXInsideFloor (center, right, Vector3.up, Last.Width, radius, 50, startTheta, endTheta); Last.Next = floor; floor.Prev = Last; Last = floor; floor.Order = floor.Prev.Order + 1; return this; }
public FloorList Cup(float radius) { Vector3 startPosition = (Last.RightForward + Last.LeftForward) / 2f; Vector3 right = (Last.RightForward - Last.LeftForward).normalized; Vector3 up = -Vector3.Cross (right, Vector3.up).normalized; Vector3 center = startPosition + up * radius; Floor floor = new OrbitXInsideFloor (center, right, Vector3.up, Last.Width, radius, 50, 0, -Mathf.PI); Last.Next = floor; floor.Prev = Last; Last = floor; floor.Order = floor.Prev.Order + 1; return this; }