mirror of
https://git.salome-platform.org/gitpub/modules/geom.git
synced 2024-11-15 10:08:35 +05:00
Mantis issue 0021129: EDF 1541 GEOM: Problem with GetInPlace.
This commit is contained in:
parent
82dd601449
commit
10e60380a9
@ -316,7 +316,10 @@ void GEOMAlgo_GetInPlace::Intersect()
|
|||||||
//
|
//
|
||||||
const TopoDS_Shape& aS1=aMS1(i);
|
const TopoDS_Shape& aS1=aMS1(i);
|
||||||
BRepBndLib::Add(aS1, aBox1);
|
BRepBndLib::Add(aS1, aBox1);
|
||||||
aBox1.SetGap(myTolerance);
|
//modified by NIZNHY-PKV Fri Jun 10 08:20:03 2011f
|
||||||
|
//aBox1.SetGap(myTolerance);
|
||||||
|
aBox1.Enlarge(myTolerance);
|
||||||
|
//modified by NIZNHY-PKV Fri Jun 10 08:20:06 2011t
|
||||||
//
|
//
|
||||||
aTreeFiller.Add(i, aBox1);
|
aTreeFiller.Add(i, aBox1);
|
||||||
}
|
}
|
||||||
@ -330,7 +333,10 @@ void GEOMAlgo_GetInPlace::Intersect()
|
|||||||
//
|
//
|
||||||
const TopoDS_Shape& aS2=aMS2(j);
|
const TopoDS_Shape& aS2=aMS2(j);
|
||||||
BRepBndLib::Add(aS2, aBox2);
|
BRepBndLib::Add(aS2, aBox2);
|
||||||
aBox2.SetGap(myTolerance);
|
//modified by NIZNHY-PKV Fri Jun 10 08:20:23 2011f
|
||||||
|
//aBox2.SetGap(myTolerance);
|
||||||
|
aBox2.Enlarge(myTolerance);
|
||||||
|
//modified by NIZNHY-PKV Fri Jun 10 08:20:25 2011t
|
||||||
//
|
//
|
||||||
aSelector.Clear();
|
aSelector.Clear();
|
||||||
aSelector.SetBox(aBox2);
|
aSelector.SetBox(aBox2);
|
||||||
@ -395,7 +401,7 @@ void GEOMAlgo_GetInPlace::PerformVV()
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void GEOMAlgo_GetInPlace::FillEdgesOn()
|
void GEOMAlgo_GetInPlace::FillEdgesOn()
|
||||||
{
|
{
|
||||||
Standard_Integer i, aNbE, aNbSOn;
|
Standard_Integer i, aNbE;
|
||||||
TopoDS_Iterator aIt;
|
TopoDS_Iterator aIt;
|
||||||
TopTools_IndexedMapOfShape aME;
|
TopTools_IndexedMapOfShape aME;
|
||||||
TopTools_MapIteratorOfMapOfShape aItMS;
|
TopTools_MapIteratorOfMapOfShape aItMS;
|
||||||
@ -413,7 +419,7 @@ void GEOMAlgo_GetInPlace::FillEdgesOn()
|
|||||||
const TopoDS_Shape& aV1=aIt.Value();
|
const TopoDS_Shape& aV1=aIt.Value();
|
||||||
if (myShapesOn.IsBound(aV1)) {
|
if (myShapesOn.IsBound(aV1)) {
|
||||||
const TopTools_MapOfShape& aMSOn=myShapesOn.Find(aV1);
|
const TopTools_MapOfShape& aMSOn=myShapesOn.Find(aV1);
|
||||||
aNbSOn=aMSOn.Extent();
|
//aNbSOn=aMSOn.Extent();
|
||||||
aItMS.Initialize(aMSOn);
|
aItMS.Initialize(aMSOn);
|
||||||
for (; aItMS.More(); aItMS.Next()) {
|
for (; aItMS.More(); aItMS.Next()) {
|
||||||
const TopoDS_Shape& aV2=aItMS.Key();
|
const TopoDS_Shape& aV2=aItMS.Key();
|
||||||
@ -563,7 +569,7 @@ void GEOMAlgo_GetInPlace::PerformVF()
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void GEOMAlgo_GetInPlace::FillFacesOn()
|
void GEOMAlgo_GetInPlace::FillFacesOn()
|
||||||
{
|
{
|
||||||
Standard_Integer i, j, aNbF, aNbE, aNbSOn;
|
Standard_Integer i, j, aNbF, aNbE;
|
||||||
TopoDS_Iterator aIt;
|
TopoDS_Iterator aIt;
|
||||||
TopTools_IndexedMapOfShape aMF, aME;
|
TopTools_IndexedMapOfShape aMF, aME;
|
||||||
TopTools_MapIteratorOfMapOfShape aItMS;
|
TopTools_MapIteratorOfMapOfShape aItMS;
|
||||||
@ -609,7 +615,6 @@ void GEOMAlgo_GetInPlace::FillFacesOn()
|
|||||||
void GEOMAlgo_GetInPlace::PerformEF()
|
void GEOMAlgo_GetInPlace::PerformEF()
|
||||||
{
|
{
|
||||||
Standard_Boolean bFound, bHasOnF, bHasInF;
|
Standard_Boolean bFound, bHasOnF, bHasInF;
|
||||||
Standard_Integer i, aNbE;
|
|
||||||
TopoDS_Iterator aIt;
|
TopoDS_Iterator aIt;
|
||||||
TopTools_MapOfShape aMSX;
|
TopTools_MapOfShape aMSX;
|
||||||
//
|
//
|
||||||
@ -715,7 +720,7 @@ void GEOMAlgo_GetInPlace::PerformFF()
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void GEOMAlgo_GetInPlace::FillSolidsOn()
|
void GEOMAlgo_GetInPlace::FillSolidsOn()
|
||||||
{
|
{
|
||||||
Standard_Integer i, j, aNbS, aNbF, aNbSOn;
|
Standard_Integer i, j, aNbS, aNbF;
|
||||||
TopTools_IndexedMapOfShape aMS, aMF;
|
TopTools_IndexedMapOfShape aMS, aMF;
|
||||||
TopTools_MapIteratorOfMapOfShape aItMS;
|
TopTools_MapIteratorOfMapOfShape aItMS;
|
||||||
//
|
//
|
||||||
@ -757,8 +762,7 @@ void GEOMAlgo_GetInPlace::FillSolidsOn()
|
|||||||
//=======================================================================
|
//=======================================================================
|
||||||
void GEOMAlgo_GetInPlace::PerformZF()
|
void GEOMAlgo_GetInPlace::PerformZF()
|
||||||
{
|
{
|
||||||
Standard_Boolean bFound, bHasOnF, bHasInF;
|
Standard_Boolean bFound, bHasOnF;
|
||||||
Standard_Integer i, aNbE;
|
|
||||||
TopTools_MapOfShape aMSX;
|
TopTools_MapOfShape aMSX;
|
||||||
//
|
//
|
||||||
myErrorStatus=0;
|
myErrorStatus=0;
|
||||||
@ -1118,7 +1122,7 @@ void GEOMAlgo_GetInPlace::FillShapesOn(const TopoDS_Shape& aS1,
|
|||||||
void MapBRepShapes(const TopoDS_Shape& aS,
|
void MapBRepShapes(const TopoDS_Shape& aS,
|
||||||
TopTools_IndexedMapOfShape& aM)
|
TopTools_IndexedMapOfShape& aM)
|
||||||
{
|
{
|
||||||
Standard_Boolean bHasBRep, bDegenerated;
|
Standard_Boolean bDegenerated;
|
||||||
TopAbs_ShapeEnum aType;
|
TopAbs_ShapeEnum aType;
|
||||||
TopoDS_Iterator aIt;
|
TopoDS_Iterator aIt;
|
||||||
//
|
//
|
||||||
|
@ -3858,10 +3858,13 @@ Handle(GEOM_Object) GEOMImpl_IShapesOperations::GetInPlace (Handle(GEOM_Object)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!aGIP.IsFound()) {
|
// aGIP.IsFound() returns true only when the whole theShapeWhat
|
||||||
SetErrorCode(NOT_FOUND_ANY);
|
// is found (as one shape or several parts). But we are also interested
|
||||||
return NULL;
|
// in the partial result, that is why this check is commented.
|
||||||
}
|
//if (!aGIP.IsFound()) {
|
||||||
|
// SetErrorCode(NOT_FOUND_ANY);
|
||||||
|
// return NULL;
|
||||||
|
//}
|
||||||
|
|
||||||
const TopTools_DataMapOfShapeListOfShape& aDMSLS = aGIP.Images();
|
const TopTools_DataMapOfShapeListOfShape& aDMSLS = aGIP.Images();
|
||||||
if (!aDMSLS.IsBound(aWhat)) {
|
if (!aDMSLS.IsBound(aWhat)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user