Mantis issue 0021291: [CEA 480] Bad performance of glue function in 6.3.0

This commit is contained in:
jfa 2011-05-31 11:02:08 +00:00
parent 956f0bc94a
commit 06928fa47e

View File

@ -449,21 +449,23 @@ TopoDS_Shape GEOMImpl_GlueDriver::GlueWithWarnings (const TopoDS_Shape& theShape
return aRes; return aRes;
} }
// 3. Fill shapes to glue aMSG if (theShapeType != TopAbs_FACE) {
TopTools_DataMapOfShapeListOfShape aMSG; // 3. Fill shapes to glue aMSG
const TopTools_DataMapOfShapeListOfShape& aMSD = aGA.ShapesDetected(); TopTools_DataMapOfShapeListOfShape aMSG;
TopTools_DataMapIteratorOfDataMapOfShapeListOfShape aItMSD; const TopTools_DataMapOfShapeListOfShape& aMSD = aGA.ShapesDetected();
aItMSD.Initialize(aMSD); TopTools_DataMapIteratorOfDataMapOfShapeListOfShape aItMSD;
for (; aItMSD.More(); aItMSD.Next()) { aItMSD.Initialize(aMSD);
const TopoDS_Shape& aSx = aItMSD.Key(); for (; aItMSD.More(); aItMSD.Next()) {
const TopTools_ListOfShape& aLSD = aItMSD.Value(); const TopoDS_Shape& aSx = aItMSD.Key();
if (aSx.ShapeType() == theShapeType) { const TopTools_ListOfShape& aLSD = aItMSD.Value();
aMSG.Bind(aSx, aLSD); if (aSx.ShapeType() == theShapeType) {
aMSG.Bind(aSx, aLSD);
}
} }
}
// 4. Set shapes to glue. If the operator is absent, the whole gluing will be done // 4. Set shapes to glue. If the operator is absent, the whole gluing will be done
aGA.SetShapesToGlue(aMSG); aGA.SetShapesToGlue(aMSG);
}
// 5. Gluing // 5. Gluing
aGA.Perform(); aGA.Perform();