// Created on: 1996-03-07 // Created by: Jean Yves LEBEY // Copyright (c) 1996-1999 Matra Datavision // Copyright (c) 1999-2014 OPEN CASCADE SAS // // This file is part of Open CASCADE Technology software library. // // This library is free software; you can redistribute it and / or modify it // under the terms of the GNU Lesser General Public version 2.1 as published // by the Free Software Foundation, with special exception defined in the file // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT // distribution for complete text of the license and disclaimer of any warranty. // // Alternatively, this file may be used under the terms of Open CASCADE // commercial license or contractual agreement. #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef DEB extern Standard_Boolean TopOpeBRepDS_GettraceSTRANGE(); Standard_EXPORT void debgsobu(const Standard_Integer /*iSO*/) {} #endif //======================================================================= //function : GSFSMakeSolids //purpose : //======================================================================= void TopOpeBRepBuild_Builder::GSFSMakeSolids (const TopoDS_Shape& SOF,TopOpeBRepBuild_ShellFaceSet& SFS,TopTools_ListOfShape& LOSO) { #ifdef DEB Standard_Integer iSO; Standard_Boolean tSPS = GtraceSPS(SOF,iSO); if(tSPS){GdumpSHA(SOF, (char *) "#--- GSFSMakeSolids ");cout<EMPTY SOLID\n"; #endif continue; } Standard_Boolean newSolidOK = Standard_True; if (nsh == 1 && nfa == 1) { TopExp_Explorer exp(newSolid,TopAbs_EDGE); Standard_Boolean hasnondegenerated = Standard_False; for(;exp.More(); exp.Next()) { const TopoDS_Edge& e = TopoDS::Edge(exp.Current()); if ( !BRep_Tool::Degenerated(e) ) { hasnondegenerated = Standard_True; break; } } newSolidOK = hasnondegenerated; if ( !newSolidOK ) continue; } TopTools_ListOfShape newSolidLOS; RegularizeSolid(SOF,newSolid,newSolidLOS); LOSO.Append(newSolidLOS); // LOSO.Append(newSolid); } } // GSOBUMakeSolids