X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FNMTTools%2FNMTTools_PaveFiller.hxx;h=ab479896eadc3f6bb9333ee7df0a48b2822e1273;hb=4cf6ece050adcf0ae832f44b82cdeb65ec923245;hp=addb7d07462d7c5fece4f6b750722f9d8a802bc7;hpb=0213ec66495d08807c5d4e2e98cd15cfb994d154;p=modules%2Fgeom.git diff --git a/src/NMTTools/NMTTools_PaveFiller.hxx b/src/NMTTools/NMTTools_PaveFiller.hxx index addb7d074..ab479896e 100644 --- a/src/NMTTools/NMTTools_PaveFiller.hxx +++ b/src/NMTTools/NMTTools_PaveFiller.hxx @@ -1,23 +1,21 @@ -// File generated by CPPExt (Value) +// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// 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 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 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. +// 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 #ifndef _NMTTools_PaveFiller_HeaderFile #define _NMTTools_PaveFiller_HeaderFile @@ -34,8 +32,8 @@ #ifndef _Standard_Integer_HeaderFile #include #endif -#ifndef _NMTTools_IteratorOfCoupleOfShape_HeaderFile -#include +#ifndef _NMTDS_Iterator_HeaderFile +#include #endif #ifndef _BOPTools_PavePool_HeaderFile #include @@ -52,6 +50,12 @@ #ifndef _BOPTools_SSIntersectionAttribute_HeaderFile #include #endif +#ifndef _NMTTools_IndexedDataMapOfIndexedMapOfInteger_HeaderFile +#include +#endif +#ifndef _TColStd_DataMapOfIntegerInteger_HeaderFile +#include +#endif #ifndef _TopAbs_ShapeEnum_HeaderFile #include #endif @@ -79,6 +83,9 @@ class BOPTools_PaveSet; class BOPTools_Curve; class BOPTools_SSInterference; class gp_Pnt; +class NMTTools_IndexedDataMapOfIndexedMapOfInteger; +class TopTools_ListOfShape; +class TopoDS_Edge; #ifndef _Standard_HeaderFile @@ -88,6 +95,7 @@ class gp_Pnt; #include #endif + class NMTTools_PaveFiller { public: @@ -106,56 +114,177 @@ public: } // Methods PUBLIC // + + Standard_EXPORT NMTTools_PaveFiller(); + + Standard_EXPORT NMTTools_PaveFiller(const BOPTools_InterferencePool& aIP); + + Standard_EXPORT virtual void Destroy() ; Standard_EXPORT virtual ~NMTTools_PaveFiller(){Destroy();} + + Standard_EXPORT void SetInterferencePool(const BOPTools_InterferencePool& aIP) ; + + Standard_EXPORT BOPTools_PInterferencePool InterfPool() ; + + +Standard_EXPORT void Init() ; + + Standard_EXPORT virtual void Perform() ; + + +Standard_EXPORT virtual void PerformVV() ; + + +Standard_EXPORT virtual void PerformNewVertices() ; + + Standard_EXPORT Standard_Boolean IsDone() const; + + Standard_EXPORT NMTDS_PShapesDataStructure DS() ; + + 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_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) ; + + @@ -163,41 +292,104 @@ protected: // Methods PROTECTED // -Standard_EXPORT void Init() ; -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 PerformNewVertices() ; + + Standard_EXPORT virtual void PrepareEdges() ; + + Standard_EXPORT void SortTypes(Standard_Integer& anInd1,Standard_Integer& anInd2) const; + + Standard_EXPORT Standard_Integer ExpectedPoolLength() const; + + Standard_EXPORT Standard_Boolean IsSuccesstorsComputed(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 // BOPTools_PInterferencePool myIntrPool; @@ -205,13 +397,15 @@ NMTDS_PShapesDataStructure myDS; Standard_Boolean myIsDone; Standard_Integer myNbSources; Standard_Integer myNbEdges; -NMTTools_IteratorOfCoupleOfShape myDSIt; +NMTDS_Iterator myDSIt; BOPTools_PavePool myPavePool; BOPTools_PavePool myPavePoolNew; NMTTools_CommonBlockPool myCommonBlockPool; BOPTools_SplitShapesPool mySplitShapesPool; IntTools_Context myContext; BOPTools_SSIntersectionAttribute mySectionAttribute; +NMTTools_IndexedDataMapOfIndexedMapOfInteger myAloneVertices; +TColStd_DataMapOfIntegerInteger myVSD; private: