From 06ff3ece88a2224646111e1c2e878fb5c9295bdb Mon Sep 17 00:00:00 2001 From: skv Date: Tue, 5 Nov 2013 08:42:56 +0000 Subject: [PATCH] 0022374: [CEA 972] GetInPlace with new implemen gives a wrong result --- src/GEOMImpl/GEOMImpl_IShapesOperations.cxx | 22 +++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx b/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx index 062fe23a0..c44d07e3b 100644 --- a/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx +++ b/src/GEOMImpl/GEOMImpl_IShapesOperations.cxx @@ -3953,11 +3953,29 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object) SetErrorCode(NOT_FOUND_ANY); return NULL; } - + // + // pkvf + TopTools_ListOfShape aLSA; + // + { + TopTools_MapOfShape aMFence; + TopTools_ListIteratorOfListOfShape aIt; + // + const TopTools_ListOfShape& aLS = aDMSLS.Find(aWhat); + aIt.Initialize(aLS); + for (;aIt.More(); aIt.Next()) { + const TopoDS_Shape& aSA=aIt.Value(); + if(aMFence.Add(aSA)) { + aLSA.Append(aSA); + } + } + } + // // the list of shapes aLSA contains the shapes // of the Shape For Search that corresponds // to the Argument aWhat - const TopTools_ListOfShape& aLSA = aDMSLS.Find(aWhat); + //const TopTools_ListOfShape& aLSA = aDMSLS.Find(aWhat); + //pkvt if (aLSA.Extent() == 0) { SetErrorCode(NOT_FOUND_ANY); // Not found any Results return NULL;