// File: TopOpeBRep_Hctxee2d.cxx // Created: Thu Oct 29 12:46:21 1998 // Author: Jean Yves LEBEY // #include #include #include #include #include #include #include #include #include #include #include #include #ifdef DEB #include #include #include Standard_EXPORT Standard_Boolean TopOpeBRep_GettracePROEDG(); #endif //======================================================================= //function : TopOpeBRep_Hctxee2d //purpose : //======================================================================= TopOpeBRep_Hctxee2d::TopOpeBRep_Hctxee2d() { } //======================================================================= //function : SetEdges //purpose : //======================================================================= void TopOpeBRep_Hctxee2d::SetEdges(const TopoDS_Edge& E1,const TopoDS_Edge& E2, const BRepAdaptor_Surface& BAS1, const BRepAdaptor_Surface& BAS2) { const TopoDS_Face& F1 = BAS1.Face(); GeomAbs_SurfaceType ST1 = BAS1.GetType(); const TopoDS_Face& F2 = BAS2.Face(); #ifdef DEb GeomAbs_SurfaceType ST2 = BAS2.GetType(); #endif myEdge1 = TopoDS::Edge(E1); myEdge2 = TopoDS::Edge(E2); Standard_Real first,last,tole,tolpc; gp_Pnt2d pfirst,plast; Handle(Geom2d_Curve) PC1; PC1 = FC2D_CurveOnSurface(myEdge1,F1,first,last,tolpc); if (PC1.IsNull()) Standard_Failure::Raise("TopOpeBRep_Hctxee2d::SetEdges : no 2d curve"); myCurve1.Load(PC1); BRep_Tool::UVPoints(myEdge1,F1,pfirst,plast); tole = BRep_Tool::Tolerance(myEdge1); myDomain1.SetValues(pfirst,first,tole,plast,last,tole); #ifdef DEB Standard_Boolean trc = Standard_False; if (trc) { cout<<"ed1 on fa1 : {pfirst=("<Transformed(loc.Transformation())); Standard_Real tolreached2d; PC2on1 = TopOpeBRepTool_CurveTool::MakePCurveOnFace(F1,NC,tolreached2d); } if (!PC2on1.IsNull()) { myCurve2.Load(PC2on1); tole = BRep_Tool::Tolerance(myEdge2); PC2on1->D0(first,pfirst); PC2on1->D0(last,plast); myDomain2.SetValues(pfirst,first,tole,plast,last,tole); #ifdef DEB if ( TopOpeBRep_GettracePROEDG() ) { cout<<"------------ projection de curve"<