]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Issue : 0020060: EDF GEOM: Regression with Propagate algorithm
authormaintenance team <salome-mnt@opencascade.com>
Wed, 20 May 2009 09:50:24 +0000 (09:50 +0000)
committermaintenance team <salome-mnt@opencascade.com>
Wed, 20 May 2009 09:50:24 +0000 (09:50 +0000)
src/NMTTools/NMTTools_PaveFiller.cxx
src/NMTTools/NMTTools_PaveFiller.hxx
src/NMTTools/NMTTools_PaveFiller_4.cxx

index cbac88266c250f3845f0e8eecb07e0d15653f7f6..10228099e9e5a7933b072c83d64ff6cf022de365 100644 (file)
   return myPavePool;
 }
 //=======================================================================
+// function: ChangePavePoolNew
+// purpose: 
+//=======================================================================
+  BOPTools_PavePool& NMTTools_PaveFiller::ChangePavePoolNew()
+{
+  return myPavePoolNew;
+}
+//=======================================================================
 // function:  CommonBlockPool
 // purpose: 
 //=======================================================================
   //----------------
   try {
     // 0.
-    // Modified Thu Sep 14 14:35:18 2006 
-    // Contribution of Samtech www.samcef.com BEGIN
     Init();
-    // Contribution of Samtech www.samcef.com END
     //1.VV
     //
     PerformVV();
     NMTTools_DEProcessor aDEP(*this);
     aDEP.Do();
     //
-    // Modified to treat Alone Vertices Thu Sep 14 14:35:18 2006 
-    // Contribution of Samtech www.samcef.com BEGIN
     MakeAloneVertices();
-    // Contribution of Samtech www.samcef.com END
     //
     myIsDone=Standard_True;
   }
index 6269aa77dccb91559a6415eadefcdc58afbed920..46b659f05d1479a7f5954ffe36600c4921abec64 100644 (file)
@@ -1,27 +1,34 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// File generated by CPPExt (Value)
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-//
-//  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.
-//
-//  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
+//                     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 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
 
+#ifndef _Standard_HeaderFile
+#include <Standard.hxx>
+#endif
+#ifndef _Standard_Macro_HeaderFile
+#include <Standard_Macro.hxx>
+#endif
+
 #ifndef _NMTDS_PShapesDataStructure_HeaderFile
 #include <NMTDS_PShapesDataStructure.hxx>
 #endif
@@ -94,195 +101,134 @@ class TopoDS_Edge;
 class TopTools_DataMapOfShapeShape;
 
 
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-#ifndef _Standard_Macro_HeaderFile
-#include <Standard_Macro.hxx>
-#endif
-
 
 class NMTTools_PaveFiller  {
-
 public:
 
-    void* operator new(size_t,void* anAddress) 
-      {
-        return anAddress;
-      }
-    void* operator new(size_t size) 
-      { 
-        return Standard::Allocate(size); 
-      }
-    void  operator delete(void *anAddress) 
-      { 
-        if (anAddress) Standard::Free((Standard_Address&)anAddress); 
-      }
- // Methods PUBLIC
- // 
-
-
-Standard_EXPORT NMTTools_PaveFiller();
+  void* operator new(size_t,void* anAddress) 
+  {
+    return anAddress;
+  }
+  void* operator new(size_t size) 
+  {
+    return Standard::Allocate(size); 
+  }
+  void  operator delete(void *anAddress) 
+  {
+    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
+  }
+
+  
+  Standard_EXPORT   NMTTools_PaveFiller();
 Standard_EXPORT virtual ~NMTTools_PaveFiller();
-
-
-Standard_EXPORT   void SetCompositeShape(const TopoDS_Shape& aS) ;
-
-
-Standard_EXPORT  const TopoDS_Shape& CompositeShape() const;
-
-
-Standard_EXPORT   NMTDS_PShapesDataStructure DS() ;
-
-
-Standard_EXPORT   NMTDS_PIterator DSIt() ;
-
-
-Standard_EXPORT   NMTDS_PInterfPool IP() ;
-
-
-Standard_EXPORT virtual  void Perform() ;
-
-
-Standard_EXPORT   Standard_Boolean IsDone() const;
-
-
-Standard_EXPORT  const IntTools_Context& Context() const;
-
-
-Standard_EXPORT   IntTools_Context& ChangeContext() ;
-
-
-Standard_EXPORT  const BOPTools_PavePool& PavePool() const;
-
-
-Standard_EXPORT   BOPTools_PavePool& ChangePavePool() ;
-
-
-Standard_EXPORT  const NMTTools_CommonBlockPool& CommonBlockPool() const;
-
-
-Standard_EXPORT   NMTTools_CommonBlockPool& ChangeCommonBlockPool() ;
-
-
-Standard_EXPORT  const BOPTools_SplitShapesPool& SplitShapesPool() const;
-
-
-Standard_EXPORT   BOPTools_SplitShapesPool& ChangeSplitShapesPool() ;
-
-
-Standard_EXPORT   Standard_Integer FindSDVertex(const Standard_Integer nV) const;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer SplitsFace(const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
-
-
-Standard_EXPORT   Standard_Integer CommonBlocksFace(const Standard_Integer nF,NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-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_Integer& aIsCommonBlock) ;
-
-
-Standard_EXPORT   void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   Standard_Boolean HasRealSplitsInOnFace(const Standard_Integer nF1,const Standard_Integer nF2) ;
-
-
-Standard_EXPORT   void RealSplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void RealSplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
-
-
-Standard_EXPORT   void PrepareSetForFace(const Standard_Integer nF1,const Standard_Integer nF2,const BOPTools_ListOfPaveBlock& aLPB,BOPTools_PaveSet& aPSF) ;
-
-
-Standard_EXPORT   void PutPaveOnCurve(const BOPTools_PaveSet& aPSF,const Standard_Real aTol,BOPTools_Curve& aBC) ;
-
-
-Standard_EXPORT   void PutBoundPaveOnCurve(BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
-
-
-Standard_EXPORT   void PutBoundPaveOnCurve(const gp_Pnt& aP,const Standard_Real aT,BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
-
-
-Standard_EXPORT   Standard_Boolean FindPave(const gp_Pnt& aP,const Standard_Real aTpV,const BOPTools_PaveSet& aPS,BOPTools_Pave& aPV) ;
-
-
-Standard_EXPORT   Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const BOPTools_PaveBlock& aPBR,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   void MakePCurves() ;
-
-
-Standard_EXPORT  const NMTTools_IndexedDataMapOfIndexedMapOfInteger& AloneVertices() const;
-
-
-Standard_EXPORT   Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const TopTools_ListOfShape& aLPB,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB) ;
-
-
-Standard_EXPORT   Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const TopoDS_Edge& aE,const Standard_Real aTol) ;
-
-
-Standard_EXPORT   void SharedEdges(const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLNE,TopTools_ListOfShape& aLSE) ;
-
-
-Standard_EXPORT   void FuseVertices(const TopoDS_Shape& aC,TopTools_DataMapOfShapeShape& aDMVV) const;
+  
+  Standard_EXPORT     void SetCompositeShape(const TopoDS_Shape& aS) ;
+  
+  Standard_EXPORT    const TopoDS_Shape& CompositeShape() const;
+  
+  Standard_EXPORT     NMTDS_PShapesDataStructure DS() ;
+  
+  Standard_EXPORT     NMTDS_PIterator DSIt() ;
+  
+  Standard_EXPORT     NMTDS_PInterfPool IP() ;
+  
+  Standard_EXPORT   virtual  void Perform() ;
+  
+  Standard_EXPORT     Standard_Boolean IsDone() const;
+  
+  Standard_EXPORT    const IntTools_Context& Context() const;
+  
+  Standard_EXPORT     IntTools_Context& ChangeContext() ;
+  
+  Standard_EXPORT    const BOPTools_PavePool& PavePool() const;
+  
+  Standard_EXPORT     BOPTools_PavePool& ChangePavePool() ;
+  
+  Standard_EXPORT     BOPTools_PavePool& ChangePavePoolNew() ;
+  
+  Standard_EXPORT    const NMTTools_CommonBlockPool& CommonBlockPool() const;
+  
+  Standard_EXPORT     NMTTools_CommonBlockPool& ChangeCommonBlockPool() ;
+  
+  Standard_EXPORT    const BOPTools_SplitShapesPool& SplitShapesPool() const;
+  
+  Standard_EXPORT     BOPTools_SplitShapesPool& ChangeSplitShapesPool() ;
+  
+  Standard_EXPORT     Standard_Integer FindSDVertex(const Standard_Integer nV) const;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer SplitsFace(const Standard_Integer nF2,TColStd_ListOfInteger& aLs) ;
+  
+  Standard_EXPORT     Standard_Integer CommonBlocksFace(const Standard_Integer nF,NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  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_Integer& aIsCommonBlock) ;
+  
+  Standard_EXPORT     void RealSplitsFace(const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     Standard_Boolean HasRealSplitsInOnFace(const Standard_Integer nF1,const Standard_Integer nF2) ;
+  
+  Standard_EXPORT     void RealSplitsInFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsInFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsOnEdge(const Standard_Integer nE1,const Standard_Integer nE2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsOnFace(const Standard_Integer nE1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void RealSplitsOnFace(const Standard_Integer aBid,const Standard_Integer nF1,const Standard_Integer nF2,BOPTools_ListOfPaveBlock& aLs) ;
+  
+  Standard_EXPORT     void PrepareSetForFace(const Standard_Integer nF1,const Standard_Integer nF2,const BOPTools_ListOfPaveBlock& aLPB,BOPTools_PaveSet& aPSF) ;
+  
+  Standard_EXPORT     void PutPaveOnCurve(const BOPTools_PaveSet& aPSF,const Standard_Real aTol,BOPTools_Curve& aBC) ;
+  
+  Standard_EXPORT     void PutBoundPaveOnCurve(BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
+  
+  Standard_EXPORT     void PutBoundPaveOnCurve(const gp_Pnt& aP,const Standard_Real aT,BOPTools_Curve& aBC,BOPTools_SSInterference& aFF) ;
+  
+  Standard_EXPORT     Standard_Boolean FindPave(const gp_Pnt& aP,const Standard_Real aTpV,const BOPTools_PaveSet& aPS,BOPTools_Pave& aPV) ;
+  
+  Standard_EXPORT     Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const BOPTools_PaveBlock& aPBR,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     void MakePCurves() ;
+  
+  Standard_EXPORT    const NMTTools_IndexedDataMapOfIndexedMapOfInteger& AloneVertices() const;
+  
+  Standard_EXPORT     Standard_Boolean IsExistingPaveBlock(const BOPTools_PaveBlock& aPB,const TopTools_ListOfShape& aLPB,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     Standard_Boolean CheckCoincidence(const BOPTools_PaveBlock& aPB,const BOPTools_ListOfPaveBlock& aLPB) ;
+  
+  Standard_EXPORT     Standard_Integer CheckIntermediatePoint(const BOPTools_PaveBlock& aPB,const TopoDS_Edge& aE,const Standard_Real aTol) ;
+  
+  Standard_EXPORT     void SharedEdges(const Standard_Integer nF1,const Standard_Integer nF2,TColStd_ListOfInteger& aLNE,TopTools_ListOfShape& aLSE) ;
+  
+  Standard_EXPORT     void FuseVertices(const TopoDS_Shape& aC,TopTools_DataMapOfShapeShape& aDMVV) const;
 
 
 
@@ -290,111 +236,76 @@ Standard_EXPORT   void FuseVertices(const TopoDS_Shape& aC,TopTools_DataMapOfSha
 
 protected:
 
- // Methods PROTECTED
- // 
-
-
-Standard_EXPORT virtual  void Init() ;
-
-
-Standard_EXPORT virtual  void Clear() ;
-
-
-Standard_EXPORT virtual  void PerformVV() ;
-
-
-Standard_EXPORT virtual  void PerformVE() ;
-
-
-Standard_EXPORT virtual  void PerformVF() ;
-
-
-Standard_EXPORT virtual  void PerformEE() ;
-
-
-Standard_EXPORT virtual  void PerformEF() ;
-
-
-Standard_EXPORT virtual  void PerformFF() ;
-
-
-Standard_EXPORT   void MakeSplitEdges() ;
-
+  
+  Standard_EXPORT   virtual  void Init() ;
+  
+  Standard_EXPORT   virtual  void Clear() ;
+  
+  Standard_EXPORT   virtual  void PerformVV() ;
+  
+  Standard_EXPORT   virtual  void PerformVE() ;
+  
+  Standard_EXPORT   virtual  void PerformVF() ;
+  
+  Standard_EXPORT   virtual  void PerformEE() ;
+  
+  Standard_EXPORT   virtual  void PerformEF() ;
+  
+  Standard_EXPORT   virtual  void PerformFF() ;
+  
+  Standard_EXPORT     void MakeSplitEdges() ;
+  
+  Standard_EXPORT   virtual  void PreparePaveBlocks(const TopAbs_ShapeEnum aType1,const TopAbs_ShapeEnum aType2) ;
+  
+  Standard_EXPORT     void CorrectShrunkRanges(const Standard_Integer aSide,const BOPTools_Pave& aPave,IntTools_ShrunkRange& aSR) ;
+  
+  Standard_EXPORT   virtual  void PreparePaveBlocks(const Standard_Integer anE) ;
+  
+  Standard_EXPORT   virtual  void PrepareEdges() ;
+  
+  Standard_EXPORT     Standard_Boolean IsSuccessorsComputed(const Standard_Integer iF1,const Standard_Integer iF2) const;
+  
+  Standard_EXPORT     Standard_Boolean IsBlocksCoinside(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) const;
+  
+  Standard_EXPORT     void RefinePavePool() ;
+  
+  Standard_EXPORT     Standard_Integer CheckFacePaves(const TopoDS_Vertex& aV,const Standard_Integer nF) ;
+  
+  Standard_EXPORT     void ReplaceCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void RemoveCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void SplitCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void SplitCommonBlock(const NMTTools_CommonBlock& aCB,NMTTools_ListOfCommonBlock& aLCB) ;
+  
+  Standard_EXPORT     void EECommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfPaveBlock& aM) ;
+  
+  Standard_EXPORT     void EFCommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfInteger& aMapCB) ;
+  
+  Standard_EXPORT     void EENewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void EENewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void EFNewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void EFNewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
+  
+  Standard_EXPORT     void UpdateCommonBlocks() ;
+  
+  Standard_EXPORT     void UpdatePaveBlocks() ;
+  
+  Standard_EXPORT     Standard_Integer SplitIndex(const BOPTools_PaveBlock& aPB) const;
+  
+  Standard_EXPORT     void MakeBlocks() ;
+  
+  Standard_EXPORT     void PerformVF1() ;
+  
+  Standard_EXPORT     void MakeAloneVertices() ;
+  
+  Standard_EXPORT     void TreatPaveBlocks(NMTTools_ListOfCommonBlock& theLCB) ;
 
-Standard_EXPORT virtual  void PreparePaveBlocks(const TopAbs_ShapeEnum aType1,const TopAbs_ShapeEnum aType2) ;
 
-
-Standard_EXPORT   void CorrectShrunkRanges(const Standard_Integer aSide,const BOPTools_Pave& aPave,IntTools_ShrunkRange& aSR) ;
-
-
-Standard_EXPORT virtual  void PreparePaveBlocks(const Standard_Integer anE) ;
-
-
-Standard_EXPORT virtual  void PrepareEdges() ;
-
-
-Standard_EXPORT   Standard_Boolean IsSuccessorsComputed(const Standard_Integer iF1,const Standard_Integer iF2) const;
-
-
-Standard_EXPORT   Standard_Boolean IsBlocksCoinside(const BOPTools_PaveBlock& aPB1,const BOPTools_PaveBlock& aPB2) const;
-
-
-Standard_EXPORT   void RefinePavePool() ;
-
-
-Standard_EXPORT   Standard_Integer CheckFacePaves(const TopoDS_Vertex& aV,const Standard_Integer nF) ;
-
-
-Standard_EXPORT   void ReplaceCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void RemoveCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void SplitCommonBlocks(const NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void SplitCommonBlock(const NMTTools_CommonBlock& aCB,NMTTools_ListOfCommonBlock& aLCB) ;
-
-
-Standard_EXPORT   void EECommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfPaveBlock& aM) ;
-
-
-Standard_EXPORT   void EFCommonBlocks(const BOPTools_IDMapOfPaveBlockIMapOfInteger& aMapCB) ;
-
-
-Standard_EXPORT   void EENewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void EENewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void EFNewVertices(const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void EFNewVertices(const TopoDS_Vertex& aV,const BooleanOperations_IndexedDataMapOfShapeInteger& aM) ;
-
-
-Standard_EXPORT   void UpdateCommonBlocks() ;
-
-
-Standard_EXPORT   void UpdatePaveBlocks() ;
-
-
-Standard_EXPORT   Standard_Integer SplitIndex(const BOPTools_PaveBlock& aPB) const;
-
-
-Standard_EXPORT   void MakeBlocks() ;
-
-
-Standard_EXPORT   void PerformVF1() ;
-
-
-Standard_EXPORT   void MakeAloneVertices() ;
-
-
- // Fields PROTECTED
- //
 NMTDS_PShapesDataStructure myDS;
 Standard_Boolean myIsDone;
 Standard_Integer myNbSources;
@@ -412,14 +323,10 @@ TopoDS_Shape myCompositeShape;
 NMTDS_PInterfPool myIP;
 
 
-private: 
+private:
 
- // Methods PRIVATE
- // 
 
 
- // Fields PRIVATE
- //
 
 
 };
@@ -429,7 +336,6 @@ private:
 
 
 // other Inline functions and methods (like "C++: function call" methods)
-//
 
 
 #endif
index f16ced3abc60b74a19d31993c93bfd7b25c27b48..0beae6670a37e5d874d64c61066875f4b010901b 100644 (file)
 #include <NMTTools_CommonBlock.hxx>
 #include <NMTTools_ListIteratorOfListOfCommonBlock.hxx>
 
-// Modified  Thu Sep 14 14:35:18 2006 
-// Contribution of Samtech www.samcef.com BEGIN
+
 #include <TColStd_ListOfInteger.hxx>
 #include <TColStd_ListIteratorOfListOfInteger.hxx>
 #include <BRepBndLib.hxx>
 #include <BOPTools_CArray1OfVSInterference.hxx>
 #include <BOPTools_VSInterference.hxx>
-// Contribution of Samtech www.samcef.com END
-//
-//
+#include <TColStd_MapOfInteger.hxx>
+#include <TColStd_MapIteratorOfMapOfInteger.hxx>
 
 
 static
@@ -294,7 +292,6 @@ static
                //
                BOPTools_Tools::MakeNewVertex(aEWhat, aT1, aEWith, aT2, aNewVertex);
                //
-               //modified by NIZNHY-PKV Mon Jun 19 11:40:09 2007f
                {
                  Standard_Integer nV11, nV12, nV21, nV22, nVS[2], k, j, iFound;
                  Standard_Real aTolVx, aTolVnew, aD2, aDT2;
@@ -340,7 +337,6 @@ static
                    continue;
                  }
                }
-               //modified by NIZNHY-PKV Mon Jun 19 11:40:16 2007t
                //
                // Add Interference to the Pool
                BOPTools_EEInterference anInterf (aWhat, aWith, aCPart);
@@ -409,14 +405,107 @@ static
     } // for (; anIt1.More(); anIt1.Next()) 
   }// for (; myDSIt.More(); myDSIt.Next()) 
   //
-  EENewVertices (aMapVI);
-  EECommonBlocks(aMapCB);
-  // Modified to invoke new nethod Thu Sep 14 14:35:18 2006 
-  // Contribution of Samtech www.samcef.com BEGIN
+  //modified by NIZNHY-PKV Thu Mar 19 14:13:34 2009f
+  //
+  //EENewVertices (aMapVI);
+  //EECommonBlocks(aMapCB);
+  
+  {
+    NMTTools_ListOfCommonBlock aLCB;
+    //
+    FindChains(aMapCB, aLCB);
+    EENewVertices (aMapVI);
+    //TreatPaveBlocks(*this, aLCB);
+    TreatPaveBlocks(aLCB);
+    ReplaceCommonBlocks(aLCB);
+  }
+  //modified by NIZNHY-PKV Thu Mar 19 14:13:42 2009t
+  //
   PerformVF1();
-  // Contribution of Samtech www.samcef.com BEGIN
+  //
   myIsDone=Standard_True;
 }
+//modified by NIZNHY-PKV Thu Mar 19 14:13:52 2009f
+//=======================================================================
+// function:TreatPaveBlocks
+// purpose: 
+//=======================================================================
+  void NMTTools_PaveFiller::TreatPaveBlocks (NMTTools_ListOfCommonBlock& theLCB)
+{
+  Standard_Boolean bFound;
+  Standard_Integer nE, nV, nVp, iFlag;
+  Standard_Real aT;
+  TColStd_MapOfInteger aMI;
+  TColStd_MapIteratorOfMapOfInteger aItMI;
+  NMTTools_ListIteratorOfListOfCommonBlock aItLCB;
+  BOPTools_ListIteratorOfListOfPaveBlock aItLPB;
+  BOPTools_ListIteratorOfListOfPave aItLP;
+  //
+  aItLCB.Initialize(theLCB);
+  for (; aItLCB.More(); aItLCB.Next()) {
+    const NMTTools_CommonBlock& aCB=aItLCB.Value();
+    //
+    aMI.Clear();
+    const BOPTools_ListOfPaveBlock& aLPB=aCB.PaveBlocks();
+    //
+    // 1 -> aMI
+    aItLPB.Initialize(aLPB);
+    for (; aItLPB.More(); aItLPB.Next()) {
+      const BOPTools_PaveBlock& aPB=aItLPB.Value();
+      nE=aPB.OriginalEdge();
+      BOPTools_PaveSet& aPaveSet=myPavePoolNew(myDS->RefEdge(nE));
+      BOPTools_ListOfPave& aLP=aPaveSet.ChangeSet();
+      //
+      aItLP.Initialize(aLP);
+      for (; aItLP.More(); aItLP.Next()) {
+       const BOPTools_Pave& aPave=aItLP.Value();
+       nV=aPave.Index();
+       aMI.Add(nV);
+      }
+    }//for (; anItLPB.More(); anItLPB.Next()) {
+    //
+    // 2
+    aItLPB.Initialize(aLPB);
+    for (; aItLPB.More(); aItLPB.Next()) {
+      const BOPTools_PaveBlock& aPB=aItLPB.Value();
+      nE=aPB.OriginalEdge();
+      BOPTools_PaveSet& aPaveSet=myPavePoolNew(myDS->RefEdge(nE));
+      BOPTools_ListOfPave& aLP=aPaveSet.ChangeSet();
+      //
+      aItMI.Initialize(aMI);
+      for (; aItMI.More(); aItMI.Next()) {
+       nV=aItMI.Key();
+       bFound=Standard_False;
+       aItLP.Initialize(aLP);
+       for (; aItLP.More(); aItLP.Next()) {
+         const BOPTools_Pave& aPave=aItLP.Value();
+         nVp=aPave.Index();
+         if (nVp==nV) {
+           bFound=!bFound;
+           break;
+         }
+       }
+       //
+       if (!bFound) {
+         // Append Pave of nV to rhe edge nE
+         const TopoDS_Edge& aE=*(TopoDS_Edge*)(&myDS->Shape(nE));
+         const TopoDS_Vertex& aV= *(TopoDS_Vertex*)(&myDS->Shape(nV));
+         iFlag=myContext.ComputeVE (aV, aE, aT);
+         if (!iFlag) {
+           BOPTools_Pave aPave;
+           //
+           aPave.SetInterference(-1);
+           aPave.SetType (BooleanOperations_EdgeEdge);
+           aPave.SetIndex(nV);
+           aPave.SetParam(aT);
+           aPaveSet.Append(aPave);
+         }
+       }
+      }//for (; aItMI.More(); aItMI.Next()) {
+    }//for (; anItLPB.More(); anItLPB.Next()) {
+  }
+}
+//modified by NIZNHY-PKV Thu Mar 19 14:14:13 2009t
 //=======================================================================
 // function:EECommonBlocks
 // purpose: 
@@ -971,10 +1060,7 @@ void MakeNewVertex(const TopTools_ListOfShape& aLV,
       tNV=tV+aCoeff*(tNV-tV);
       aNewRange.SetFirst(tNV);
       aNewRange.SetLast (aSR.Last());
-      //modified by NIZNHY-PKV Tue Jan 23 14:07:55 2007f
-      //if(aNewRange.First() > aNewRange.Last()) {
       if(aNewRange.First() < aNewRange.Last()) {
-      //modified by NIZNHY-PKV Tue Jan 23 14:08:02 2007t
        aShrunkRange.SetShrunkRange(aNewRange);
       }
     }