private void FindLargestBoundingBox()
 {
     BoundingBox = new CLIRectangle(
         Layers.Min(x => x.BoundingBox.X1),
         Layers.Min(x => x.BoundingBox.Y1),
         Layers.Max(x => x.BoundingBox.X2),
         Layers.Max(x => x.BoundingBox.Y2));
 }
Exemplo n.º 2
0
        public Boolean Intersects(CLIRectangle that)
        {
            if ((that.X2 >= X1 + (Program.West * -1) && that.X1 <= X2 + Program.East) && (that.Y2 >= Y1 + (Program.South * -1) && that.Y1 <= Y2))
            {
                return(true);
            }

            return(false);
        }
        public Layer(List <string> data)
        {
            RawData = data;
            SetZHeight();

            Skirt                   = new List <string>();
            InnerPerimeter          = new List <string>();
            OuterPerimeter          = new List <string>();
            InternalSingleExtrusion = new List <string>();
            Support                 = new List <string>();
            Infill                  = new List <string>();
            SolidLayer              = new List <string>();
            ExternalSingleExtrusion = new List <string>();
            Bridge                  = new List <string>();
            DenseSupport            = new List <string>();

            int recordValue = 0;

            foreach (var line in data)
            {
                if (line.StartsWith(";"))
                {
                    if (line == "; skirt")
                    {
                        recordValue = 1;
                    }
                    else if (line == "; inner perimeter")
                    {
                        recordValue = 2;
                    }
                    else if (line == "; outer perimeter")
                    {
                        recordValue = 3;
                    }
                    else if (line == "; internal single extrusion")
                    {
                        recordValue = 4;
                    }
                    else if (line == "; support")
                    {
                        recordValue = 5;
                    }
                    else if (line == "; infill")
                    {
                        recordValue = 6;
                    }
                    else if (line == "; solid layer")
                    {
                        recordValue = 7;
                    }
                    else if (line == "; external single extrusion")
                    {
                        recordValue = 8;
                    }
                    else if (line == "; bridge")
                    {
                        recordValue = 9;
                    }
                    else if (line == "; dense support")
                    {
                        recordValue = 10;
                    }
                }

                switch (recordValue)
                {
                case 1:
                    Skirt.Add(line);
                    break;

                case 2:
                    InnerPerimeter.Add(line);
                    break;

                case 3:
                    OuterPerimeter.Add(line);
                    break;

                case 4:
                    InternalSingleExtrusion.Add(line);
                    break;

                case 5:
                    Support.Add(line);
                    break;

                case 6:
                    Infill.Add(line);
                    break;

                case 7:
                    SolidLayer.Add(line);
                    break;

                case 8:
                    ExternalSingleExtrusion.Add(line);
                    break;

                case 9:
                    Bridge.Add(line);
                    break;

                case 10:
                    DenseSupport.Add(line);
                    break;

                case 0:
                    break;
                }
            }

            BoundingBox = new CLIRectangle(OuterPerimeter);
        }