1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0026664: Triangulating a very small polygon fails

Parameter for adaptive computation of minimal 2D meshing precision added in BRepMesh_IncrementalMesh API.
Corresponding option -adaptive added in DRAW command

All meshing parameters are collected in structure, BRepMesh_FastDiscret::Parameters, which is now used to define and manipulate parameters of the algorithm.
This commit is contained in:
pdn
2015-09-08 18:51:33 +03:00
committed by bugmaster
parent 6b84c3f7db
commit e71669c6e5
16 changed files with 309 additions and 362 deletions

View File

@@ -622,8 +622,7 @@ Standard_Integer BOPAlgo_CellsBuilder::RemoveInternals(const BOPCol_ListOfShape&
theLSNew = theLS;
return iErr;
}
//
BOPCol_ListIteratorOfListOfShape aIt;
//
TopExp_Explorer aExp;
//
TopAbs_ShapeEnum aType = theLS.First().ShapeType();
@@ -638,8 +637,7 @@ Standard_Integer BOPAlgo_CellsBuilder::RemoveInternals(const BOPCol_ListOfShape&
BOPTools_AlgoTools::MakeContainer
((aType == TopAbs_FACE) ? TopAbs_SHELL : TopAbs_WIRE, aShape);
//
aIt.Initialize(theLS);
for (; aIt.More(); aIt.Next()) {
for (BOPCol_ListIteratorOfListOfShape aIt(theLS); aIt.More(); aIt.Next()) {
const TopoDS_Shape& aS = aIt.Value();
aBB.Add(aShape, aS);
}
@@ -671,9 +669,9 @@ Standard_Integer BOPAlgo_CellsBuilder::RemoveInternals(const BOPCol_ListOfShape&
aNb = aMG.Extent();
for (i = 1; i <= aNb; ++i) {
const TopoDS_Shape& aSS = aMG(i);
const TopoDS_Shape& aSNew = anUnify.Generated(aSS);
if (!aSNew.IsNull() && !aSS.IsSame(aSNew)) {
myMapGenerated.Bind(aSS, aSNew);
const TopoDS_Shape& aSGen = anUnify.Generated(aSS);
if (!aSGen.IsNull() && !aSS.IsSame(aSGen)) {
myMapGenerated.Bind(aSS, aSGen);
}
}
}
@@ -681,8 +679,7 @@ Standard_Integer BOPAlgo_CellsBuilder::RemoveInternals(const BOPCol_ListOfShape&
// build all solids from the faces
BOPCol_ListOfShape aLSF;
//
aIt.Initialize(theLS);
for (; aIt.More(); aIt.Next()) {
for (BOPCol_ListIteratorOfListOfShape aIt(theLS); aIt.More(); aIt.Next()) {
const TopoDS_Shape& aS = aIt.Value();
//
aExp.Init(aS, TopAbs_FACE);
@@ -712,8 +709,7 @@ Standard_Integer BOPAlgo_CellsBuilder::RemoveInternals(const BOPCol_ListOfShape&
Standard_Integer i, aNb;
//
// map faces and solids
BOPCol_ListIteratorOfListOfShape aIt(theLSNew);
for (; aIt.More(); aIt.Next()) {
for (BOPCol_ListIteratorOfListOfShape aIt(theLSNew); aIt.More(); aIt.Next()) {
const TopoDS_Shape& aS = aIt.Value();
//
aExp.Init(aS, TopAbs_FACE);