/// <summary> /// 添加面所有的轮廓 /// </summary> /// <param name="face"></param> public void Add(Face face, BeamAlignToFloorModel model) { var current = this; //闭合区间集合,EdgeArray foreach (EdgeArray edgeArray in face.EdgeLoops) { Add(new OutLine(edgeArray, model)); } //if (face is PlanarFace) //{ // var current = this; // //闭合区间集合,EdgeArray // foreach (EdgeArray edgeArray in face.EdgeLoops) // { // Add(new OutLine(edgeArray, model)); // } //} //else if (face is CylindricalFace) //{ // var current = this; // //闭合区间集合,EdgeArray TODO 改回去 无效调整 // EdgeArray edgeArrayColleciton = new EdgeArray(); // foreach (EdgeArray edgeArray in face.EdgeLoops) // { // for (int i = 0; i < edgeArray.Size; i++) // { // edgeArrayColleciton.Append(edgeArray.get_Item(i)); // } // } // Add(new OutLine(edgeArrayColleciton, model)); //} }
void Init(EdgeArray edgeArray, BeamAlignToFloorModel model) { Edges = edgeArray; Points = VLGeometryHelper.GetPoints(Edges, model); PointZ0s = Points.Select(c => new XYZ(c.X, c.Y, 0)).ToList(); Lines = new List <Line>(); AddLinesFromPoints(ref Lines, Points); LineZ0s = new List <Line>(); AddLinesFromPoints(ref LineZ0s, PointZ0s); //TODO 某些轮廓是由多个面组成,需修正Triangle的分解算法,此处修正即支持非平面的轮廓集合的处理 Triangles = VLGeometryHelper.GetTriangles(Points); TriangleZ0s = VLGeometryHelper.GetTriangles(PointZ0s); IsSolid = true; }
public OutLineManager(Document document, BeamAlignToFloorModel model) { Document = document; Model = model; }
public OutLine(EdgeArray edgeArray, BeamAlignToFloorModel model) { Init(edgeArray, model); }
public OutLineManager0802(Document document, BeamAlignToFloorModel model) { Document = document; Model = model; CreatedBeams = new List <Element>(); }
public ValidFaces(Document document, BeamAlignToFloorModel model) { Document = document; Model = model; }