public void AddPoints(Vector2Int[] newPoints) { if (!BuildrPolyClockwise.Check(newPoints)) { Array.Reverse(newPoints); } for (int i = 0; i < newPoints.Length; i++) { AddPoint(newPoints[i]); } CheckVolume(); MarkModified(); }
public IVolume AddPlan(Vector2Int[] points, IVolume abovePlan = null) { IVolume output = NewPlan(); Vector3 goPos = transform.position; Quaternion goInvRot = Quaternion.Inverse(transform.rotation); int pointCount = points.Length; if (!BuildrPolyClockwise.Check(points)) { Array.Reverse(points); } for (int p = 0; p < pointCount; p++) { output.AddPoint(goInvRot * (points[p].vector3XZ - goPos)); } return(AddPlan(output, abovePlan)); }
public Room(List <Vector3> points, Vector3 offset) { _points.Clear(); bool clockwise = BuildrPolyClockwise.Check(points); if (!clockwise) { points.Reverse(); } int pointCount = points.Count; for (int p = 0; p < pointCount; p++) { _points.Add(new RoomPoint(points[p] + offset)); } MarkModified(); }