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(); IntTools_Context& aCtx=pPF->ChangeContext();
// //
Standard_Boolean bToReverse; Standard_Boolean bToReverse;
Standard_Integer i, aNb, aNbSp, nSp, nSpR, nSpx; Standard_Integer i, aNb, aNbSp, nSp, nSpR, nSpx, aIsCB;
TColStd_ListIteratorOfListOfInteger aItLB; TColStd_ListIteratorOfListOfInteger aItLB;
TColStd_ListOfInteger aLB; TColStd_ListOfInteger aLB;
TopoDS_Edge aEE, aESpR; TopoDS_Edge aEE, aESpR;
@ -147,10 +147,16 @@ static
nSp=aPB.Edge(); nSp=aPB.Edge();
const TopoDS_Shape& aSp=aDS.Shape(nSp); 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(); nSpR=aPBR.Edge();
const TopoDS_Shape& aSpR=aDS.Shape(nSpR); 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; continue;
} }
// //
@ -174,7 +180,10 @@ static
aIt.Initialize(aLPB); aIt.Initialize(aLPB);
for (; aIt.More(); aIt.Next()) { for (; aIt.More(); aIt.Next()) {
const BOPTools_PaveBlock& aPB=aIt.Value(); 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(); nSpR=aPBR.Edge();
const TopoDS_Shape& aSpR=aDS.Shape(nSpR); const TopoDS_Shape& aSpR=aDS.Shape(nSpR);
// //

View File

@ -47,8 +47,6 @@ uses
IndexedDataMapOfShapeInteger from BooleanOperations, IndexedDataMapOfShapeInteger from BooleanOperations,
--InterferencePool from BOPTools,
--PInterferencePool from BOPTools,
PavePool from BOPTools, PavePool from BOPTools,
PaveBlock from BOPTools, PaveBlock from BOPTools,
ListOfPaveBlock from BOPTools, ListOfPaveBlock from BOPTools,
@ -85,16 +83,7 @@ is
returns PaveFiller from NMTTools; returns PaveFiller from NMTTools;
---C++: alias "Standard_EXPORT virtual ~NMTTools_PaveFiller();" ---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; SetCompositeShape (me:out;
aS: Shape from TopoDS); aS: Shape from TopoDS);
@ -103,18 +92,10 @@ is
returns Shape from TopoDS; returns Shape from TopoDS;
---C++: return const& ---C++: return const&
--InterfPool(me:out)
--returns PInterferencePool from BOPTools;
--SetDS(me:out;
-- aDS:PShapesDataStructure from NMTDS);
DS(me:out) DS(me:out)
returns PShapesDataStructure from NMTDS; returns PShapesDataStructure from NMTDS;
--SetDSIt(me:out;
-- aIt:PIterator from NMTDS);
DSIt(me:out) DSIt(me:out)
returns PIterator from NMTDS; returns PIterator from NMTDS;
@ -170,20 +151,10 @@ is
anE:Integer from Standard) anE:Integer from Standard)
is virtual protected; is virtual protected;
--PerformNewVertices (me:out)
--is virtual;
PrepareEdges (me:out) PrepareEdges (me:out)
is virtual protected; 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 -- Query section
IsDone(me) IsDone(me)
@ -396,14 +367,14 @@ is
returns 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 --modified by NIZNHY-PKV Fri Nov 30 10:30:54 2007 f
-- Contribution of Samtech www.samcef.com BEGIN
RealPaveBlock(me:out; RealPaveBlock(me:out;
aPB:PaveBlock from BOPTools; aPB:PaveBlock from BOPTools;
aLB:out ListOfInteger from TColStd) aLB:out ListOfInteger from TColStd;
aIsCommonBlock:out Integer from Standard)
returns PaveBlock from BOPTools; returns PaveBlock from BOPTools;
---C++: return const & ---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; RealSplitsFace (me:out;
nF2 :Integer from Standard; nF2 :Integer from Standard;
@ -530,7 +501,6 @@ is
aDMVV: out DataMapOfShapeShape from TopTools); aDMVV: out DataMapOfShapeShape from TopTools);
fields fields
--myIntrPool : PInterferencePool from BOPTools is protected;
myDS : PShapesDataStructure from NMTDS is protected; myDS : PShapesDataStructure from NMTDS is protected;
myIsDone : Boolean from Standard is protected; myIsDone : Boolean from Standard is protected;
myNbSources : Integer from Standard is protected; myNbSources : Integer from Standard is protected;
@ -544,10 +514,10 @@ fields
myContext : Context from IntTools is protected; myContext : Context from IntTools is protected;
mySectionAttribute : SSIntersectionAttribute from BOPTools is protected; mySectionAttribute : SSIntersectionAttribute from BOPTools is protected;
myAloneVertices : IndexedDataMapOfIndexedMapOfInteger from NMTTools 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; myVSD : DataMapOfIntegerInteger from TColStd is protected;
myDSIt : PIterator from NMTDS is protected; myDSIt : PIterator from NMTDS is protected;
myCompositeShape : Shape from TopoDS is protected; myCompositeShape : Shape from TopoDS is protected;
myIP : PInterfPool from NMTDS is protected; myIP : PInterfPool from NMTDS is protected;
--modified by NIZNHY-PKV Wed Oct 11 11:06:55 2006t
end PaveFiller; end PaveFiller;

View File

@ -1,21 +1,23 @@
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // File generated by CPPExt (Value)
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
// //
// This library is free software; you can redistribute it and/or // Copyright (C) 1991 - 2000 by
// modify it under the terms of the GNU Lesser General Public // Matra Datavision SA. All rights reserved.
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
// //
// This library is distributed in the hope that it will be useful // Copyright (C) 2001 - 2004 by
// but WITHOUT ANY WARRANTY; without even the implied warranty of // Open CASCADE SA. All rights reserved.
// 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 // This file is part of the Open CASCADE Technology software.
// 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 #ifndef _NMTTools_PaveFiller_HeaderFile
#define _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) ;
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) ; Standard_EXPORT void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;

View File

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