mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-05-16 10:54:53 +03:00
0023060: Exception is raised during intersection of two edges.
This commit is contained in:
parent
46def2b567
commit
a28f034bfa
@ -162,7 +162,8 @@ BOPTools_PaveFiller::BOPTools_PaveFiller()
|
||||
// function: SectionAttribute
|
||||
// purpose:
|
||||
//=======================================================================
|
||||
const BOPTools_SSIntersectionAttribute& BOPTools_PaveFiller::SectionAttribute() const
|
||||
const BOPTools_SSIntersectionAttribute&
|
||||
BOPTools_PaveFiller::SectionAttribute() const
|
||||
{
|
||||
return mySectionAttribute;
|
||||
}
|
||||
@ -182,16 +183,6 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
{
|
||||
return myContext;
|
||||
}
|
||||
/*
|
||||
//=======================================================================
|
||||
// function: ChangeContext
|
||||
// purpose:
|
||||
//=======================================================================
|
||||
IntTools_Context& BOPTools_PaveFiller::ChangeContext()
|
||||
{
|
||||
return myContext;
|
||||
}
|
||||
*/
|
||||
//=======================================================================
|
||||
// function: Perform
|
||||
// purpose:
|
||||
@ -270,7 +261,8 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
// function: PartialPerform
|
||||
// purpose:
|
||||
//=======================================================================
|
||||
void BOPTools_PaveFiller::PartialPerform(const TColStd_SetOfInteger& anObjSubSet,
|
||||
void BOPTools_PaveFiller::PartialPerform
|
||||
(const TColStd_SetOfInteger& anObjSubSet,
|
||||
const TColStd_SetOfInteger& aToolSubSet)
|
||||
{
|
||||
try {
|
||||
@ -579,9 +571,10 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
//
|
||||
Standard_Real aTolE1, aTolE2, aDeflection=0.01;
|
||||
Standard_Integer aDiscretize=30;
|
||||
|
||||
const TopoDS_Edge& aE1=TopoDS::Edge(myDS->GetShape(nE1));
|
||||
const TopoDS_Edge& aE2=TopoDS::Edge(myDS->GetShape(nE2));
|
||||
TopoDS_Edge aE1, aE2;
|
||||
//
|
||||
aE1=TopoDS::Edge(myDS->GetShape(nE1));
|
||||
aE2=TopoDS::Edge(myDS->GetShape(nE2));
|
||||
//
|
||||
if (BRep_Tool::Degenerated(aE1)){
|
||||
continue;
|
||||
@ -840,8 +833,6 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
anIndexIn=aEEs.Append(anInterf);
|
||||
myIntrPool->AddInterference (aWhat, aWith, BooleanOperations_EdgeEdge, anIndexIn);
|
||||
//
|
||||
//modified by NIZNHY-PKV Fri May 26 15:48:21 2006f
|
||||
//BOPTools_CommonBlock aCB(aPB1, aPB2);
|
||||
BOPTools_CommonBlock aCB;
|
||||
if (aTolE1>=aTolE2) {
|
||||
aCB.SetPaveBlock1(aPB1);
|
||||
@ -851,7 +842,6 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
aCB.SetPaveBlock1(aPB2);
|
||||
aCB.SetPaveBlock2(aPB1);
|
||||
}
|
||||
//modified by NIZNHY-PKV Fri May 26 15:48:24 2006t
|
||||
BOPTools_ListOfCommonBlock& aLCB1=myCommonBlockPool(myDS->RefEdge(aWhat));
|
||||
aLCB1.Append(aCB);
|
||||
BOPTools_ListOfCommonBlock& aLCB2=myCommonBlockPool(myDS->RefEdge(aWith));
|
||||
@ -1287,16 +1277,17 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
}
|
||||
|
||||
|
||||
Standard_Real aCoeff=1.05, tV, tNV;
|
||||
Standard_Real aCoeff=1.05, tV, tNV, t2, t1;
|
||||
tV=aPave.Param();
|
||||
if (aSide==0) { // Left
|
||||
if (aCPRange.Last() > aSR.First()) {
|
||||
tNV=aCPRange.Last();
|
||||
tNV=tV+aCoeff*(tNV-tV);
|
||||
aNewRange.SetFirst(tNV);
|
||||
aNewRange.SetLast (aSR.Last());
|
||||
|
||||
if(aNewRange.First() > aNewRange.Last()) {
|
||||
t2=aSR.Last();
|
||||
aNewRange.SetLast (t2);
|
||||
if(tNV < t2) {
|
||||
//if(aNewRange.First() > aNewRange.Last()) {
|
||||
aShrunkRange.SetShrunkRange(aNewRange);
|
||||
}
|
||||
}
|
||||
@ -1305,10 +1296,11 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
if (aCPRange.First() < aSR.Last()) {
|
||||
tNV=aCPRange.First();
|
||||
tNV=tV-aCoeff*(tV-tNV);
|
||||
aNewRange.SetFirst(aSR.First());
|
||||
t1=aSR.First();
|
||||
aNewRange.SetFirst(t1);
|
||||
aNewRange.SetLast (tNV);
|
||||
|
||||
if(aNewRange.First() < aNewRange.Last()) {
|
||||
if(tNV > t1) {
|
||||
//if(aNewRange.First() < aNewRange.Last()) {
|
||||
aShrunkRange.SetShrunkRange(aNewRange);
|
||||
}
|
||||
}
|
||||
@ -1378,7 +1370,6 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
// these vertices formally (to obtain Shrunk Ranges for e.g).
|
||||
// In reality this vertex(-es) does not belong to the INF Edge.
|
||||
// It just has reference in the DS.
|
||||
// PKV Tue Apr 23 10:21:45 2002
|
||||
{
|
||||
Standard_Real aT1, aT2, aTolE;
|
||||
Standard_Boolean bInf1, bInf2;
|
||||
@ -1536,7 +1527,8 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
// function: FindSDVertex
|
||||
// purpose:
|
||||
//=======================================================================
|
||||
Standard_Integer BOPTools_PaveFiller::FindSDVertex(const Standard_Integer nV)const
|
||||
Standard_Integer BOPTools_PaveFiller::FindSDVertex
|
||||
(const Standard_Integer nV)const
|
||||
{
|
||||
Standard_Integer i, aNb, anIndex1, anIndex2, aNewShape=0;
|
||||
|
||||
@ -1559,7 +1551,8 @@ const Handle(IntTools_Context)& BOPTools_PaveFiller::Context() const
|
||||
// function:IsSuccesstorsComputed
|
||||
// purpose:
|
||||
//=======================================================================
|
||||
Standard_Boolean BOPTools_PaveFiller::IsSuccesstorsComputed(const Standard_Integer aN1,
|
||||
Standard_Boolean BOPTools_PaveFiller::IsSuccesstorsComputed
|
||||
(const Standard_Integer aN1,
|
||||
const Standard_Integer aN2)const
|
||||
{
|
||||
Standard_Integer nSuc, n1, n2;
|
||||
|
Loading…
x
Reference in New Issue
Block a user