Example #1
0
 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();
 }
Example #2
0
        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));
        }
Example #3
0
        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();
        }