// File: TopOpeBRepDS_repvg.cxx // Created: Sat Feb 14 15:53:06 1998 // Author: Jean Yves LEBEY // #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MDSdmoiloi TopOpeBRepDS_DataMapOfIntegerListOfInterference #define MDSdmiodmoiloi TopOpeBRepDS_DataMapIteratorOfDataMapOfIntegerListOfInterference #ifdef DEB #include Standard_IMPORT Standard_Boolean TopOpeBRepDS_GetcontextMKTONREG(); #endif //------------------------------------------------------ Standard_EXPORT void FDS_repvg2 (const TopOpeBRepDS_DataStructure& BDS,const Standard_Integer EIX,const TopOpeBRepDS_Kind GT,TopOpeBRepDS_ListOfInterference& LI,TopOpeBRepDS_ListOfInterference& RLI) //------------------------------------------------------ { #ifdef DEB Standard_Boolean TRC=DSREDUEDGETRCE(EIX); TRC = Standard_False; //xpu170898 #endif const TopoDS_Edge& E = TopoDS::Edge(BDS.Shape(EIX)); Standard_Boolean isEd = BRep_Tool::Degenerated(E); if (isEd) return; #ifdef DEB if (TRC) cout<Dump(cout);cout<Transition().Dump(cout);cout<Dump(cout,"add ","\n"); #endif if (ispoint) EITool.Add(E,PDS,I2); else if (isvertex) EITool.Add(E2,VDS,I2); LI.Remove(it2); #ifdef DEB if(TRC){cout<<"result ";Handle(TopOpeBRepDS_Interference) IBID = new TopOpeBRepDS_Interference(); EITool.Transition(IBID);IBID->Transition().Dump(cout);cout<Transition(); TrmemeS.Index(T1.Index()); I1->ChangeTransition() = TrmemeS; RLI.Append(I1); LI.Remove(it1); } else if (isComplex && !memeS) { EITool.Transition(I1); RLI.Append(I1); LI.Remove(it1); } else { it1.Next(); } } // it1 #ifdef DEB if (TRC) cout<<"repvg2 E"< reste "<Transition().Index(); Standard_Boolean bound = mapITRASHA.IsBound(isa); if (!bound) { TopOpeBRepDS_ListOfInterference loi; loi.Append(I); mapITRASHA.Bind(isa,loi); } else mapITRASHA.ChangeFind(isa).Append(I); it.Next(); } LOI.Clear(); MDSdmiodmoiloi itm(mapITRASHA); for (; itm.More(); itm.Next()){ Standard_Integer isa = itm.Key(); TopOpeBRepDS_ListOfInterference& loi = mapITRASHA.ChangeFind(isa); Standard_Integer nloi = loi.Extent(); if (nloi < 2) continue; TopOpeBRepDS_ListOfInterference rloi; FDS_repvg2(BDS,EIX,GT,loi,rloi); LOI.Append(loi); RLOI.Append(rloi); } /*LOI.Clear(); for (tki.Init(); tki.More(); tki.Next()) { TopOpeBRepDS_Kind K; Standard_Integer G; tki.Value(K,G); #ifdef DEB if (TRC) {tki.DumpTKI(K,G,"","\n");debredpvg(EIX);} #endif TopOpeBRepDS_ListOfInterference& loi = tki.ChangeValue(K,G); TopOpeBRepDS_ListOfInterference Rloi; Standard_Integer nloi = loi.Extent(); if (nloi == 0) continue; else if (nloi == 1) LOI.Append(loi); else { FDS_repvg2(BDS,EIX,GT,loi,Rloi); LOI.Append(loi); RLOI.Append(Rloi); } }*/ #ifdef DEB if (TRC) cout<<"repvg E"< reste "<