mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0025847: Wrong result obtained by General Fuse operator.
I. New features: No new features. II. Changes: II.1. class BOPAlgo_PaveFiller - method: void BOPAlgo_PaveFiller::PerformEE() has been changed. Intended set of VE interferences has been refined to avoid unwanted overlaps of pave blocks - method: void BOPAlgo_PaveFiller::ForceInterfVE(const Standard_Integer nV, Handle(BOPDS_PaveBlock)& aPB, BOPDS_MapOfPaveBlock& aMPBToUpdate) The initialization of increment of VE interferences has been added. - method: Standard_Boolean BOPAlgo_PaveFiller::ForceInterfVF (const Standard_Integer nV, const Standard_Integer nF) The initialization of increment of VF interferences has been added. III. Modified entities: packages: BOPAlgo Test case for issue CR25847
This commit is contained in:
@@ -534,6 +534,20 @@ void BOPAlgo_PaveFiller::PerformEE()
|
||||
//=========================================
|
||||
// post treatment
|
||||
//=========================================
|
||||
{
|
||||
Standard_Integer aNbV;
|
||||
Handle(BOPDS_PaveBlock) aPB1, aPB2;
|
||||
//
|
||||
aNbV=aMVCPB.Extent();
|
||||
for (i=1; i<=aNbV; ++i) {
|
||||
const BOPDS_CoupleOfPaveBlocks& aCPB=aMVCPB.FindFromIndex(i);
|
||||
aCPB.PaveBlocks(aPB1, aPB2);
|
||||
//
|
||||
aMPBToUpdate.Remove(aPB1);
|
||||
aMPBToUpdate.Remove(aPB2);
|
||||
}
|
||||
}
|
||||
//
|
||||
aItPB.Initialize(aMPBToUpdate);
|
||||
for (; aItPB.More(); aItPB.Next()) {
|
||||
Handle(BOPDS_PaveBlock) aPB=aItPB.Value();
|
||||
@@ -917,6 +931,7 @@ void BOPAlgo_PaveFiller::ForceInterfVE(const Standard_Integer nV,
|
||||
aT=aProjector.LowerDistanceParameter();
|
||||
//
|
||||
BOPDS_VectorOfInterfVE& aVEs=myDS->InterfVE();
|
||||
aVEs.SetIncrement(10);
|
||||
BOPDS_InterfVE& aVE=aVEs.Append1();
|
||||
aVE.SetIndices(nV, nE);
|
||||
aVE.SetParameter(aT);
|
||||
|
@@ -640,6 +640,7 @@ Standard_Boolean BOPAlgo_PaveFiller::ForceInterfVF
|
||||
BRep_Builder aBB;
|
||||
//
|
||||
BOPDS_VectorOfInterfVF& aVFs=myDS->InterfVF();
|
||||
aVFs.SetIncrement(10);
|
||||
BOPDS_InterfVF& aVF=aVFs.Append1();
|
||||
aVF.SetIndices(nV, nF);
|
||||
aVF.SetUV(U, V);
|
||||
|
Reference in New Issue
Block a user