Exemple #1
0
        public void SubtractWithProblematicPolygons()
        {
            var wallPerimeter = new Elements.Geometry.Polygon(new Vector3(-48.41, 0, 0), new Vector3(-48.53, 0, 0), new Vector3(-51.48, 0, 0), new Vector3(-51.48, 0, 3.81), new Vector3(-46.27, 0, 3.81));
            var wall          = new WallByProfile(wallPerimeter,
                                                  0.2, new Line(new Vector3(0, 0, 0), new Vector3(1, 0, 0)));
            var oP = new Elements.Geometry.Polygon(new Vector3(-46.27, 0, 0.00), new Vector3(-46.42, 0, 0.00), new Vector3(-46.42, 0, 2.13), new Vector3(-47.34, 0, 2.13), new Vector3(-47.34, 0, 0.00));

            wall.AddOpening(oP);

            wall.UpdateRepresentations();
            var solid = wall.GetFinalCsgFromSolids();
        }
Exemple #2
0
        public void WallByProfileFromProfileCreatesOpenings()
        {
            this.Name = nameof(WallByProfileFromProfileCreatesOpenings);

            var boundary = new Polygon(new[] { new Vector3(),
                                               new Vector3(0, 0, 10),
                                               new Vector3(0, 10, 10),
                                               new Vector3(0, 10, 0) });
            var window = new Polygon(new[] { new Vector3(0, 2, 2),
                                             new Vector3(0, 2, 4),
                                             new Vector3(0, 4, 4),
                                             new Vector3(0, 4, 2) });
            var wallProfile = new Profile(boundary, window);
            var wall        = new WallByProfile(wallProfile, 0.1, new Line(Vector3.Origin, new Vector3(0, 10)));

            Assert.Single(wall.Openings);
            Assert.True(wall.GetProfile().Equals(wallProfile));

            this.Model.AddElement(wall);
            this.Model.AddElement(wall.Centerline);
        }