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(); }
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); }