- //thePrs.myLeftBank = theLeftBank;
- //thePrs.myRightBank = theRightBank;
- //
- //BRep_Builder aBB;
- //TopoDS_Compound aCmp;
- //aBB.MakeCompound(aCmp);
- //for (size_t i = 0; i < theProfiles3d.size(); i++ )
- // aBB.Add(aCmp, theProfiles3d[i]);
- //
- //aBB.Add(aCmp, theLeftBank);
- //aBB.Add(aCmp, theRightBank);
- //
- //thePrs.myPrs3D = aCmp; //3d pres
- //
- /*Handle_Geom_Plane RefPlane = new Geom_Plane(gp_Pnt(0,0,0), gp_Dir(0,0,1));
- TopoDS_Vertex V1, V2;
- TopoDS_Wire W;
- ProjEdgeOnPlane(theProfiles3d[0], RefPlane, W, V1, V2);*/
-
- /* Handle_Geom_Plane RefPlane = new Geom_Plane(gp_Pnt(0,0,0), gp_Dir(0,0,1));
- std::vector<TopoDS_Edge> internProf;
- internProf.reserve(theProfiles3d.size() - 2);
-
- //project internal edges/profiles
- for (size_t i = 1; i < theProfiles3d.size() - 1; i++ )
- {
- TopoDS_Edge ProjEdge;
- ProjEdgeOnPlane(theProfiles3d[i], RefPlane, ProjEdge, TopoDS_Vertex(), TopoDS_Vertex());
- internProf.push_back (TopoDS::Edge(ProjEdge.Oriented(TopAbs_INTERNAL)));
- }
-
- TopoDS_Edge ProjEdgeIn, ProjEdgeOut;
- TopoDS_Vertex V1In, V2In, V1Out, V2Out;
-
- ProjEdgeOnPlane(theProfiles3d.front(), RefPlane, ProjEdgeIn, TopoDS_Vertex(), TopoDS_Vertex());
- TopExp::Vertices(ProjEdgeIn, V1In, V2In);
-
- ProjEdgeOnPlane(theProfiles3d.back(), RefPlane, ProjEdgeOut, TopoDS_Vertex(), TopoDS_Vertex());
- TopExp::Vertices(ProjEdgeOut, V1Out, V2Out);
-
- TopoDS_Edge ProjEdgeLeftB, ProjEdgeRightB;
- ProjEdgeOnPlane(theLeftBank, RefPlane, ProjEdgeLeftB, V1In, V1Out);
- ProjEdgeOnPlane(theRightBank, RefPlane, ProjEdgeRightB, V2In, V2Out);
-
- BRepLib_MakeWire WM(ProjEdgeIn, ProjEdgeOut, ProjEdgeLeftB, ProjEdgeRightB);
- for (size_t i = 0; i < internProf.size(); i++ )
- WM.Add(internProf[i]);