Salome HOME
projects
/
modules
/
geom.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix error with GetExistingSubObjects
[modules/geom.git]
/
src
/
GEOMImpl
/
GEOMImpl_GlueDriver.cxx
diff --git
a/src/GEOMImpl/GEOMImpl_GlueDriver.cxx
b/src/GEOMImpl/GEOMImpl_GlueDriver.cxx
index cd6235466f679186621aa693d3d531e4f015f8e6..7ba7a22700e212221ab4bd44eb1dcf5df79be4cd 100644
(file)
--- a/
src/GEOMImpl/GEOMImpl_GlueDriver.cxx
+++ b/
src/GEOMImpl/GEOMImpl_GlueDriver.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-20
08
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-20
10
CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@
-19,6
+19,7
@@
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+
#include <Standard_Stream.hxx>
#include <GEOMImpl_GlueDriver.hxx>
#include <Standard_Stream.hxx>
#include <GEOMImpl_GlueDriver.hxx>
@@
-44,6
+45,8
@@
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
#include <TopTools_IndexedMapOfShape.hxx>
#include <TopTools_ListIteratorOfListOfShape.hxx>
+#include <ShapeFix_Shape.hxx>
+
#include <Standard_NullObject.hxx>
#include <Standard_Failure.hxx>
#include <Standard_NullObject.hxx>
#include <Standard_Failure.hxx>
@@
-146,6
+149,13
@@
TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesWithWarnings (const TopoDS_Shape& the
aRes = aGluer.Result();
aRes = aGluer.Result();
+ // SKL 18.01.2010 - patch for 20662
+ Handle(ShapeFix_Shape) aSfs = new ShapeFix_Shape(aRes);
+ aSfs->SetPrecision(Precision::Confusion());
+ aSfs->Perform();
+ aRes = aSfs->Shape();
+
+
// Fill history to be used by GetInPlace functionality
TopTools_IndexedMapOfShape aResIndices;
TopExp::MapShapes(aRes, aResIndices);
// Fill history to be used by GetInPlace functionality
TopTools_IndexedMapOfShape aResIndices;
TopExp::MapShapes(aRes, aResIndices);
@@
-265,9
+275,9
@@
TopoDS_Shape GEOMImpl_GlueDriver::GlueFaces (const TopoDS_Shape& theShape,
//purpose :
//=======================================================================
TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesByList (const TopoDS_Shape& theShape,
//purpose :
//=======================================================================
TopoDS_Shape GEOMImpl_GlueDriver::GlueFacesByList (const TopoDS_Shape& theShape,
- const Standard_Real theTolerance,
+
const Standard_Real theTolerance,
const Standard_Boolean doKeepNonSolids,
const Standard_Boolean doKeepNonSolids,
- const TopTools_MapOfShape& aFaces)
+
const TopTools_MapOfShape& aFaces)
{
TopoDS_Shape aRes;
{
TopoDS_Shape aRes;
@@
-346,15
+356,15
@@
Standard_Integer GEOMImpl_GlueDriver::Execute(TFunction_Logbook& log) const
for( ; i <= SF->Length(); i++) {
Handle(Standard_Transient) anItem = SF->Value(i);
if(anItem.IsNull())
for( ; i <= SF->Length(); i++) {
Handle(Standard_Transient) anItem = SF->Value(i);
if(anItem.IsNull())
- continue;
+
continue;
Handle(GEOM_Function) aRefSh = Handle(GEOM_Function)::DownCast(anItem);
if(aRefSh.IsNull())
Handle(GEOM_Function) aRefSh = Handle(GEOM_Function)::DownCast(anItem);
if(aRefSh.IsNull())
- continue;
+
continue;
TopoDS_Shape aFace = aRefSh->GetValue();
if(aFace.IsNull())
TopoDS_Shape aFace = aRefSh->GetValue();
if(aFace.IsNull())
- continue;
+
continue;
if(!aFaces.Contains(aFace))
if(!aFaces.Contains(aFace))
- aFaces.Add(aFace);
+
aFaces.Add(aFace);
}
aShape = GlueFacesByList(aShapeBase, tol3d, aKeepNonSolids, aFaces);
}
}
aShape = GlueFacesByList(aShapeBase, tol3d, aKeepNonSolids, aFaces);
}
@@
-389,10
+399,10
@@
Standard_EXPORT Handle_Standard_Type& GEOMImpl_GlueDriver_Type_()
static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_GlueDriver",
static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
static Handle_Standard_Type _aType = new Standard_Type("GEOMImpl_GlueDriver",
- sizeof(GEOMImpl_GlueDriver),
- 1,
- (Standard_Address)_Ancestors,
- (Standard_Address)NULL);
+
sizeof(GEOMImpl_GlueDriver),
+
1,
+
(Standard_Address)_Ancestors,
+
(Standard_Address)NULL);
return _aType;
}
return _aType;
}