TopTools_IndexedDataMapOfShapeListOfShape aMVER;
//
bRegular=Standard_True;
-
+ //
aNbC=aMEC.Extent();
for (j=1; j<=aNbC; ++j) {
aER=aMEC(j);
Standard_Real& aScale)
{
Standard_Boolean bRet;
+ Standard_Real aV1, aV2, dV, aTr;
GeomAbs_SurfaceType aType;
BRepAdaptor_Surface aBAS;
//
aBAS.Initialize(aF);
aType=aBAS.GetType();
if (aType==GeomAbs_Cylinder) {
- Standard_Real aV1, aV2, dV, dU, aTr, aC;
- //
aTr=1.e5;
aV1=aBAS.FirstVParameter();
aV2=aBAS.LastVParameter();
aScale=1./aTr;
return bRet;
}
- //modified by NIZNHY-PKV Fri Mar 30 10:54:34 2012f
- dU=M_PI;
- aC=dV/dU;
- aTr=25.;
- if(aC>aTr){
- bRet=!bRet;
- aScale=1./aC;
- return bRet;
- }
- //modified by NIZNHY-PKV Fri Mar 30 10:54:35 2012t
}
return bRet;
}
#include <TopoDS_Face.hxx>
#include <TopoDS_Iterator.hxx>
-
#include <BRep_Tool.hxx>
#include <BRepAdaptor_Surface.hxx>
#include <BRepAdaptor_Curve2d.hxx>
#include <TopExp.hxx>
#include <TopExp_Explorer.hxx>
-
-
#include <TopTools_SequenceOfShape.hxx>
#include <TopTools_ListOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
TColgp_SequenceOfPnt2d& aCoordVa,
BOPTColStd_ListOfListOfShape& myShapes,
BOP_IndexedDataMapOfVertexListEdgeInfo& mySmartMap)
-
{
- Standard_Integer i,j, aNb, aNbj;
+ Standard_Integer i,j, aNb, aNbj, iCnt;
Standard_Real aTol, anAngleIn, anAngleOut, anAngle, aMinAngle;
Standard_Real aTol2D, aTol2D2;
Standard_Real aTol2, aD2;//, aTolUVb, aTolVVb;
aMinAngle=100.;
anIsFound=Standard_False;
-
- Standard_Integer aCurIndexE = 0;
-
+ //
+ //modified by NIZNHY-PKV Fri Apr 13 14:48:47 2012f
+ iCnt=NbWaysOut (aLEInfo);
+ if (!iCnt) { // no way to go . (Error)
+ return ;
+ }
+ ++iCnt;
+ //modified by NIZNHY-PKV Fri Apr 13 14:48:50 2012t
+ //
anIt.Initialize(aLEInfo);
for (; anIt.More(); anIt.Next()) {
BOP_EdgeInfo& anEI=anIt.Value();
const TopoDS_Edge& aE=anEI.Edge();
anIsOut=!anEI.IsIn();
anIsNotPassed=!anEI.Passed();
-
+ //
if (anIsOut && anIsNotPassed) {
- aCurIndexE++;
- //
- // Is there one way to go out of the vertex
- // we have to use it only.
- Standard_Integer iCnt;
- iCnt=NbWaysOut (aLEInfo);
- //
- if (!iCnt) {
- // no way to go . (Error)
- return ;
+ //modified by NIZNHY-PKV Fri Apr 13 14:50:02 2012f
+ //iCnt=NbWaysOut (aLEInfo);
+ //if (!iCnt) { // no way to go . (Error)
+ // return ;
+ //}
+ --iCnt;
+ if (aE.IsSame(aEOuta)) {
+ continue;
}
+ //modified by NIZNHY-PKV Fri Apr 13 14:50:06 2012t
//
if (iCnt==1) {
// the one and only way to go out .
continue;
}
//
- //
anAngleOut=anEI.Angle();
//
anAngle=ClockWiseAngle(anAngleIn, anAngleOut);
// no way to go . (Error)
return;
}
-
+ //
aEOutb=pEdgeInfo->Edge();
//
Path (aGAS, myFace, aVb, aEOutb, *pEdgeInfo, aLS,
dA=A1-A2;
if (dA <= 0.) {
dA=aTwoPi+dA;
- //modified by NIZNHY-PKV Thu Feb 17 08:26:39 2011f
if (dA <= 1.e-14) {
dA=aTwoPi;
}
- //modified by NIZNHY-PKV Thu Feb 17 08:26:42 2011t
}
//xx
else if (dA <= 1.e-14) {
return anAngle;
}
-//
+
//=======================================================================
// function: NbWaysOut
// purpose: