From: maintenance team Date: Wed, 16 Jan 2008 12:04:40 +0000 (+0000) Subject: Fix for bug NPAL17921 X-Git-Tag: V3_2_10~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=b653ddc4599a30382c7df3967775ff0e6a8db07f;p=modules%2Fgeom.git Fix for bug NPAL17921 --- diff --git a/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx b/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx index b6cdfee66..5ee7ddaf4 100755 --- a/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx +++ b/src/GEOMAlgo/GEOMAlgo_Builder_1.cxx @@ -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); // diff --git a/src/NMTTools/NMTTools_PaveFiller.cdl b/src/NMTTools/NMTTools_PaveFiller.cdl index 19340bc8c..ca5202204 100644 --- a/src/NMTTools/NMTTools_PaveFiller.cdl +++ b/src/NMTTools/NMTTools_PaveFiller.cdl @@ -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; diff --git a/src/NMTTools/NMTTools_PaveFiller.hxx b/src/NMTTools/NMTTools_PaveFiller.hxx index 2d6492a3f..35b23a61d 100644 --- a/src/NMTTools/NMTTools_PaveFiller.hxx +++ b/src/NMTTools/NMTTools_PaveFiller.hxx @@ -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) ; diff --git a/src/NMTTools/NMTTools_PaveFiller_8.cxx b/src/NMTTools/NMTTools_PaveFiller_8.cxx index b8686673e..6d7a77c1b 100644 --- a/src/NMTTools/NMTTools_PaveFiller_8.cxx +++ b/src/NMTTools/NMTTools_PaveFiller_8.cxx @@ -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()) {