Fix for NPAL17921

This commit is contained in:
maintenance team 2008-01-17 10:51:11 +00:00
parent 1706a8d813
commit c18d12b2cf
4 changed files with 50 additions and 64 deletions

View File

@ -113,7 +113,7 @@ static
IntTools_Context& aCtx=pPF->ChangeContext();
//
Standard_Boolean bToReverse;
Standard_Integer i, aNb, aNbSp, nSp, nSpR, nSpx;
Standard_Integer i, aNb, aNbSp, nSp, nSpR, nSpx, aIsCB;
TColStd_ListIteratorOfListOfInteger aItLB;
TColStd_ListOfInteger aLB;
TopoDS_Edge aEE, aESpR;
@ -147,10 +147,16 @@ static
nSp=aPB.Edge();
const TopoDS_Shape& aSp=aDS.Shape(nSp);
//
const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
//modified by NIZNHY-PKV Fri Nov 30 10:40:36 2007 f
//const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB, aIsCB);
//modified by NIZNHY-PKV Fri Nov 30 10:40:48 2007t
nSpR=aPBR.Edge();
const TopoDS_Shape& aSpR=aDS.Shape(nSpR);
if (aSpR.IsSame(aSp) && aSpR.IsSame(aE)) {
//modified by NIZNHY-PKV Fri Nov 30 10:41:39 2007f
//if (aSpR.IsSame(aSp) && aSpR.IsSame(aE)) {
if (aSpR.IsSame(aSp) && aSpR.IsSame(aE) && !aIsCB) {
//modified by NIZNHY-PKV Fri Nov 30 10:41:46 2007t
continue;
}
//
@ -174,7 +180,10 @@ static
aIt.Initialize(aLPB);
for (; aIt.More(); aIt.Next()) {
const BOPTools_PaveBlock& aPB=aIt.Value();
const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
//modified by NIZNHY-PKV Fri Nov 30 10:42:15 2007f
//const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB);
const BOPTools_PaveBlock& aPBR=pPF->RealPaveBlock(aPB, aLB, aIsCB);
//modified by NIZNHY-PKV Fri Nov 30 10:42:20 2007t
nSpR=aPBR.Edge();
const TopoDS_Shape& aSpR=aDS.Shape(nSpR);
//

View File

@ -46,9 +46,7 @@ uses
ShrunkRange from IntTools,
IndexedDataMapOfShapeInteger from BooleanOperations,
--InterferencePool from BOPTools,
--PInterferencePool from BOPTools,
PavePool from BOPTools,
PaveBlock from BOPTools,
ListOfPaveBlock from BOPTools,
@ -85,16 +83,7 @@ is
returns PaveFiller from NMTTools;
---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();"
-- Create(aIP:InterferencePool from BOPTools)
-- returns PaveFiller from NMTTools;
-- Destroy (me: in out)
--is virtual;
-- -C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller(){Destroy();}"
--
-- Selectors/Modifiers
--SetInterferencePool(me:out;
-- aIP:PInterferencePool from BOPTools);
SetCompositeShape (me:out;
aS: Shape from TopoDS);
@ -103,18 +92,10 @@ is
returns Shape from TopoDS;
---C++: return const&
--InterfPool(me:out)
--returns PInterferencePool from BOPTools;
--SetDS(me:out;
-- aDS:PShapesDataStructure from NMTDS);
DS(me:out)
returns PShapesDataStructure from NMTDS;
--SetDSIt(me:out;
-- aIt:PIterator from NMTDS);
DSIt(me:out)
returns PIterator from NMTDS;
@ -169,21 +150,11 @@ is
PreparePaveBlocks (me:out;
anE:Integer from Standard)
is virtual protected;
--PerformNewVertices (me:out)
--is virtual;
PrepareEdges (me:out)
is virtual protected;
--SortTypes (me;
-- anInd1:in out Integer from Standard;
-- anInd2:in out Integer from Standard)
-- is protected;
--ExpectedPoolLength(me)
-- returns Integer from Standard
--is protected;
--
-- Query section
IsDone(me)
@ -394,16 +365,16 @@ is
RealPaveBlock(me:out;
aPB:PaveBlock from BOPTools)
returns PaveBlock from BOPTools;
---C++: return const &
---C++: return const &
-- Modified to add new method Thu Sep 14 14:35:18 2006
-- Contribution of Samtech www.samcef.com BEGIN
--modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007 f
RealPaveBlock(me:out;
aPB:PaveBlock from BOPTools;
aLB:out ListOfInteger from TColStd)
aLB:out ListOfInteger from TColStd;
aIsCommonBlock:out Integer from Standard)
returns PaveBlock from BOPTools;
---C++: return const &
-- Contribution of Samtech www.samcef.com END
--modified by NIZNHY-PKV Fri Nov 30 10:30:58 2007 t
RealSplitsFace (me:out;
nF2 :Integer from Standard;
@ -530,7 +501,6 @@ is
aDMVV: out DataMapOfShapeShape from TopTools);
fields
--myIntrPool : PInterferencePool from BOPTools is protected;
myDS : PShapesDataStructure from NMTDS is protected;
myIsDone : Boolean from Standard is protected;
myNbSources : Integer from Standard is protected;
@ -544,10 +514,10 @@ fields
myContext : Context from IntTools is protected;
mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools is protected;
--modified by NIZNHY-PKV Wed Oct 11 11:06:50 2006f
--
myVSD : DataMapOfIntegerInteger from TColStd is protected;
myDSIt : PIterator from NMTDS is protected;
myCompositeShape : Shape from TopoDS is protected;
myIP : PInterfPool from NMTDS is protected;
--modified by NIZNHY-PKV Wed Oct 11 11:06:55 2006t
end PaveFiller;

View File

@ -1,21 +1,23 @@
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// File generated by CPPExt (Value)
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
// Copyright (C) 1991 - 2000 by
// Matra Datavision SA. All rights reserved.
//
// Copyright (C) 2001 - 2004 by
// Open CASCADE SA. All rights reserved.
//
// This file is part of the Open CASCADE Technology software.
//
// This library is distributed in the hope that it will be useful
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.
#ifndef _NMTTools_PaveFiller_HeaderFile
#define _NMTTools_PaveFiller_HeaderFile
@ -217,7 +219,7 @@ Standard_EXPORT void PrepareFace(const Standard_Integer nF,TopoDS_Face& aF) ;
Standard_EXPORT const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB) ;
Standard_EXPORT const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB,TColStd_ListOfInteger& aLB) ;
Standard_EXPORT const BOPTools_PaveBlock& RealPaveBlock(const BOPTools_PaveBlock& aPB,TColStd_ListOfInteger& aLB,Standard_Integer& aIsCommonBlock) ;
Standard_EXPORT void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;

View File

@ -83,12 +83,15 @@
// function: RealPaveBlock
// purpose:
//=======================================================================
const BOPTools_PaveBlock& NMTTools_PaveFiller::RealPaveBlock(const BOPTools_PaveBlock& aPB,
TColStd_ListOfInteger& aLB)
const BOPTools_PaveBlock& NMTTools_PaveFiller::RealPaveBlock
(const BOPTools_PaveBlock& aPB,
TColStd_ListOfInteger& aLB,
Standard_Integer& aIsCommonBlock)
{
Standard_Integer nE, nSpx;
BOPTools_ListIteratorOfListOfPaveBlock aItPBx;
//
aIsCommonBlock=0;
aLB.Clear();
nE=aPB.OriginalEdge();
const NMTTools_ListOfCommonBlock& aLCBE=myCommonBlockPool(myDS->RefEdge(nE));
@ -96,6 +99,8 @@
if (aCBAPI.IsCommonBlock(aPB)) {
NMTTools_CommonBlock& aCB=aCBAPI.CommonBlock(aPB);
//
aIsCommonBlock=1;
//
const BOPTools_ListOfPaveBlock& aLPBx=aCB.PaveBlocks();
aItPBx.Initialize(aLPBx);
for (; aItPBx.More(); aItPBx.Next()) {