Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
if(wline->NbVertex() == 0) {
IntPatch_Point vtx;
Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
if(wline->NbVertex() == 0) {
IntPatch_Point vtx;
vtx.SetParameter(wline->NbPnts());
wline->SetPoint(wline->NbPnts(),vtx);
}
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf1,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
if(wline->NbVertex() == 0) {
IntPatch_Point vtx;
IntSurf_PntOn2S POn2S = PW.Line()->Value(1);
wline->SetPoint(wline->NbPnts(),vtx);
}
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf1,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
if(wline->NbVertex() == 0) {
IntPatch_Point vtx;
Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
if (RestrictLine){
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
}
if(wline->NbVertex() == 0) {
Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ return;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ return;
//---------------
if(wline->NbVertex() == 0) {
//---------------
SLin.Append(wline);
empt = Standard_False;
- }
- }
- }
+ } //if(PW.NbPoints()>2)
+ } //if(PW.IsDone())
+ } //if(HasStartPoint)
}
//==================================================================================
// function : AdjustOnPeriodic
Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
wline->EnablePurging(!hasBeenAdded);
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
if(wline->NbVertex() == 0)
{
IntPatch_Point vtx;
Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
wline->EnablePurging(!hasBeenAdded);
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
//---------------
if(wline->NbVertex() == 0)
Standard_Real TolTang = TolTangency;
Handle(IntPatch_WLine) wline = new IntPatch_WLine(PW.Line(),Standard_False,trans1,trans2);
+ //the method PutVertexOnLine can reduce the number of points in <wline>
IntPatch_RstInt::PutVertexOnLine(wline,Surf1,D1,Surf2,Standard_True,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
IntPatch_RstInt::PutVertexOnLine(wline,Surf2,D2,Surf1,Standard_False,TolTang);
+ if (wline->NbPnts() < 2)
+ continue;
//---------------
if(wline->NbVertex() == 0)