X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FBOPAlgo%2FBOPAlgo_PaveFiller.cdl;h=5e643643bab10e3781c482cd45b37451b931acfa;hp=4c2199e81aa8b4f8f26fbf9a8cd4f08b0a9e4d96;hb=955b3e71028d2295439b0d9671e9c8b9b35301e2;hpb=4e57c75ee1fda8ce237010a6b1ca0df62f238cee diff --git a/src/BOPAlgo/BOPAlgo_PaveFiller.cdl b/src/BOPAlgo/BOPAlgo_PaveFiller.cdl index 4c2199e81a..5e643643ba 100644 --- a/src/BOPAlgo/BOPAlgo_PaveFiller.cdl +++ b/src/BOPAlgo/BOPAlgo_PaveFiller.cdl @@ -1,31 +1,27 @@ -- Created by: Peter KURNEV --- Copyright (c) 2010-2012 OPEN CASCADE SAS +-- Copyright (c) 2010-2014 OPEN CASCADE SAS -- Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE -- Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, -- EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -- --- The content of this file is subject to the Open CASCADE Technology Public --- License Version 6.5 (the "License"). You may not use the content of this file --- except in compliance with the License. Please obtain a copy of the License --- at http://www.opencascade.org and read it completely before using this file. +-- This file is part of Open CASCADE Technology software library. -- --- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its --- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. +-- This library is free software; you can redistribute it and/or modify it under +-- the terms of the GNU Lesser General Public License version 2.1 as published +-- by the Free Software Foundation, with special exception defined in the file +-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +-- distribution for complete text of the license and disclaimer of any warranty. -- --- The Original Code and all software distributed under the License is --- distributed on an "AS IS" basis, without warranty of any kind, and the --- Initial Developer 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 the rights and limitations under the License. - +-- Alternatively, this file may be used under the terms of Open CASCADE +-- commercial license or contractual agreement. class PaveFiller from BOPAlgo inherits Algo from BOPAlgo ---Purpose: uses - Pnt from gp, + Pnt from gp, + ShapeEnum from TopAbs, Vertex from TopoDS, Face from TopoDS, Edge from TopoDS, @@ -38,9 +34,11 @@ uses IndexedDataMapOfShapeInteger from BOPCol, DataMapOfIntegerListOfInteger from BOPCol, DataMapOfShapeListOfShape from BOPCol, - IndexedDataMapOfShapeListOfShape from BOPCol, + IndexedDataMapOfShapeListOfShape from BOPCol, + DataMapOfIntegerReal from BOPCol, + DataMapOfIntegerInteger from BOPCol, -- - Context from BOPInt, + Context from IntTools, -- SectionAttribute from BOPAlgo, @@ -52,6 +50,7 @@ uses Curve from BOPDS, IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS, MapOfPaveBlock from BOPDS, + IndexedMapOfPaveBlock from BOPDS, ListOfPaveBlock from BOPDS, ListOfPave from BOPDS, ListOfPntOn2S from IntSurf, @@ -69,7 +68,7 @@ is Create (theAllocator: BaseAllocator from BOPCol) returns PaveFiller from BOPAlgo; - + DS(me:out) returns DS from BOPDS; ---C++:return const & @@ -88,7 +87,7 @@ is ---C++: alias "Standard_EXPORT void SetArguments(const BOPCol_ListOfShape& theLS);" Context(me:out) - returns Context from BOPInt; + returns Context from IntTools; SetSectionAttribute(me:out; theSecAttr : SectionAttribute from BOPAlgo); @@ -97,13 +96,19 @@ is is redefined; -- -- protected methods - -- + -- + PerformInternal (me:out) + is virtual protected; + Clear(me:out) is virtual protected; Init(me:out) is virtual protected; - + + Prepare(me:out) + is protected; + PerformVV(me:out) is virtual protected; @@ -112,17 +117,33 @@ is PerformVF(me:out) is virtual protected; - + PerformEE(me:out) is virtual protected; - + PerformEF(me:out) is virtual protected; PerformFF(me:out) is virtual protected; - + --modified by NIZNHY-PKV Fri Sep 12 07:05:37 2014f + PerformVZ(me:out) + is virtual protected; + --Purpose: Computes Vertex/Solid interferences + + PerformEZ(me:out) + is virtual protected; + --Purpose: Computes Edge/Solid interferences + + PerformFZ(me:out) + is virtual protected; + --Purpose: Computes Face/Solid interferences + PerformZZ(me:out) + is virtual protected; + --Purpose: Computes Solid/Solid interferences + --modified by NIZNHY-PKV Fri Sep 12 07:05:45 2014t + TreatVerticesEE(me:out) is protected; @@ -131,23 +152,28 @@ is MakeBlocks(me:out) is protected; - + MakePCurves(me:out) is protected; - + ProcessDE(me:out) is protected; FillShrunkData(me:out; thePB:out PaveBlock from BOPDS) is protected; - + + FillShrunkData(me:out; + theType1: ShapeEnum from TopAbs; + theType2: ShapeEnum from TopAbs) + is protected; + PerformVerticesEE(me:out; theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; theAllocator:out BaseAllocator from BOPCol) returns Integer from Standard is protected; - + PerformVerticesEF(me:out; theMVCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; theAllocator:out BaseAllocator from BOPCol) @@ -159,43 +185,56 @@ is theMIF:MapOfInteger from BOPCol) returns Boolean from Standard is protected; - + CheckFacePaves(myclass; theN:Integer from Standard; theMIFOn:MapOfInteger from BOPCol; theMIFIn:MapOfInteger from BOPCol) returns Boolean from Standard is protected; - + IsExistingVertex(me; theP:Pnt from gp; theTol:Real from Standard; theMVOn:MapOfInteger from BOPCol) returns Boolean from Standard is protected; - - PutPaveOnCurve(me:out; - theMVOn:MapOfInteger from BOPCol; - theTolR3D:Real from Standard; - theNC:out Curve from BOPDS; - nF1:Integer from Standard; - nF2:Integer from Standard; - theMVEF:MapOfInteger from BOPCol) - is protected; + + PutPavesOnCurve(me:out; + theMVOn : MapOfInteger from BOPCol; + theTolR3D : Real from Standard; + theNC : out Curve from BOPDS; + nF1 : Integer from Standard; + nF2 : Integer from Standard; + theMI : MapOfInteger from BOPCol; + theMVEF : MapOfInteger from BOPCol; + theMVTol : out DataMapOfIntegerReal from BOPCol) + is protected; + ---Purpose: + -- Checks and puts paves from on the curve . ExtendedTolerance(me:out; - nV:Integer from Standard; - aMI:MapOfInteger from BOPCol; - aTolVExt:out Real from Standard) + nV : Integer from Standard; + aMI : MapOfInteger from BOPCol; + aTolVExt : out Real from Standard; + aType : Integer from Standard = 0) returns Boolean from Standard - is protected; - + is protected; + ---Purpose: + -- Depending on the parameter aType it checks whether + -- the vertex nV was created in EE or EF intersections. + -- If so, it increases aTolVExt from tolerance value of vertex to + -- the max distance from vertex nV to the ends of the range of common part. + -- Possible values of aType: + -- 1 - checks only EE; + -- 2 - checks only EF; + -- other - checks both types of intersections. + PutBoundPaveOnCurve(me:out; theF1: Face from TopoDS; theF2: Face from TopoDS; theTolR3D:Real from Standard; theNC:out Curve from BOPDS; - theMVOnIn:out MapOfInteger from BOPCol; theMVB:out MapOfInteger from BOPCol) is protected; @@ -203,7 +242,7 @@ is thePB:PaveBlock from BOPDS; theNC:Curve from BOPDS; theTolR3D:Real from Standard; - theMPB:MapOfPaveBlock from BOPDS; + theMPB:IndexedMapOfPaveBlock from BOPDS; thePBOut:out PaveBlock from BOPDS) returns Boolean from Standard is protected; @@ -219,10 +258,14 @@ is PostTreatFF(me:out; theMSCPB:out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; theMVI:out DataMapOfShapeInteger from BOPCol; - theDMExEd:out DataMapOfPaveBlockListOfPaveBlock from BOPDS; + theDMExEdges:out DataMapOfPaveBlockListOfPaveBlock from BOPDS; + theDMI:out DataMapOfIntegerInteger from BOPCol; theAllocator:out BaseAllocator from BOPCol) returns Integer from Standard - is protected; + is protected; + ---Purpose: + -- Treatment of section edges. + -- -- Treatment of degenerated edges -- @@ -239,12 +282,12 @@ is theLPB: ListOfPaveBlock from BOPDS; thePB: PaveBlock from BOPDS) is protected; - + MakeSplitEdge(me:out; theV:Integer from Standard; theF:Integer from Standard) is protected; - + GetEFPnts(me:out; nF1 : Integer from Standard; nF2 : Integer from Standard; @@ -252,71 +295,106 @@ is is protected; PutEFPavesOnCurve(me:out; - nF1 : Integer from Standard; - nF2 : Integer from Standard; theNC : out Curve from BOPDS; - theMVEF : MapOfInteger from BOPCol) - is protected; + theMI : MapOfInteger from BOPCol; + theMVEF : MapOfInteger from BOPCol; + theMVTol : out DataMapOfIntegerReal from BOPCol) + is protected; + ---Purpose: + -- Checks and puts paves created in EF intersections on the curve . PutStickPavesOnCurve(me:out; - nF1 : Integer from Standard; - nF2 : Integer from Standard; + aF1 : Face from TopoDS; + aF2 : Face from TopoDS; + theMI : MapOfInteger from BOPCol; theNC : out Curve from BOPDS; - theMVStick : MapOfInteger from BOPCol) - is protected; + theMVStick : MapOfInteger from BOPCol; + theMVTol : out DataMapOfIntegerReal from BOPCol) + is protected; + ---Purpose: + -- Puts stick paves on the curve GetStickVertices(me:out; nF1 : Integer from Standard; nF2 : Integer from Standard; theMVStick : out MapOfInteger from BOPCol; - theMVEFk : out MapOfInteger from BOPCol) - is protected; + theMVEF : out MapOfInteger from BOPCol; + theMI : out MapOfInteger from BOPCol) + is protected; + ---Purpose: + -- Collects indices of vertices created in all intersections between + -- two faces ( and ) to the map . + -- Also, it collects indices of EF vertices to the map + -- and indices of all subshapes of these two faces to the map. - GetFullFaceMap(me:out; + GetFullShapeMap(me:out; nF : Integer from Standard; theMI : out MapOfInteger from BOPCol) is protected; - - + ---Purpose: + -- Collects index nF and indices of all subshapes of the shape with index + -- to the map . + RemoveUsedVertices(me:out; theNC : out Curve from BOPDS; theMV : out MapOfInteger from BOPCol) - is protected; + is protected; + ---Purpose: + -- Removes indices of vertices that are already on the + -- curve from the map . + -- It is used in PutEFPavesOnCurve and PutStickPavesOnCurve methods. PutPaveOnCurve(me:out; nV : Integer from Standard; theTolR3D : Real from Standard; - theNC : Curve from BOPDS; - thePB : out PaveBlock from BOPDS) - is protected; + theNC : out Curve from BOPDS; + theMI : MapOfInteger from BOPCol; + theMVTol : out DataMapOfIntegerReal from BOPCol; + aType : Integer from Standard = 0) + is protected; + ---Purpose: + -- Puts the pave nV on the curve theNC. + -- Parameter aType defines whether to check the pave with + -- extended tolerance: + -- 0 - do not perform the check; + -- other - perform the check (aType goes to ExtendedTolerance). ProcessExistingPaveBlocks(me:out; theInt : Integer from Standard; - theMPBOnIn : MapOfPaveBlock from BOPDS; + theMPBOnIn : IndexedMapOfPaveBlock from BOPDS; theMSCPB : out IndexedDataMapOfShapeCoupleOfPaveBlocks from BOPDS; theMVI : out DataMapOfShapeInteger from BOPCol; theMVB : MapOfInteger from BOPCol; theMPB : out MapOfPaveBlock from BOPDS) - is protected; + is protected; + ---Purpose: + -- Adds the existing edges from the map which interfere + -- with the vertices from map to the post treatment of section edges. UpdateExistingPaveBlocks(me:out; thePB : PaveBlock from BOPDS; theLPB : out ListOfPaveBlock from BOPDS; nF1 : Integer from Standard; nF2 : Integer from Standard) - is protected; + is protected; + ---Purpose: + -- Replaces existing pave block with new pave blocks . + -- The list contains images of which were created in + -- the post treatment of section edges. TreatNewVertices(me:out; theMVI : IndexedDataMapOfShapeInteger from BOPCol; theImages : out IndexedDataMapOfShapeListOfShape from BOPCol) - is protected; + is protected; + ---Purpose: + -- Treatment of vertices that were created in EE intersections. PutClosingPaveOnCurve (me:out; aNC :out Curve from BOPDS) is protected; - ---Purpose: - --- Put paves on the curve in case when - --- is closed 3D-curve + ---Purpose: + -- Put paves on the curve in case when + -- is closed 3D-curve PreparePostTreatFF(me:out; aInt : Integer from Standard; @@ -326,26 +404,71 @@ is aVC : out VectorOfCurve from BOPDS) is protected; ---Purpose: - ---Keeps data for post treatment + -- Keeps data for post treatment RefineFaceInfoOn(me:out) is protected; ---Purpose: - --- Refines the state On for the all faces having - --- state information + -- Refines the state On for the all faces having + -- state information UpdateFaceInfo(me:out; theDME:out DataMapOfPaveBlockListOfPaveBlock from BOPDS) is protected; ---Purpose: - ---Updates the information about faces - - + -- Updates the information about faces + + ForceInterfVE(me:out; + nV : Integer from Standard; + aPB : out PaveBlock from BOPDS; + aMPB : out MapOfPaveBlock from BOPDS) + is protected; + ---Purpose: + -- Updates tolerance of vertex with index + -- to make it interfere with edge + + ForceInterfVF(me:out; + nV : Integer from Standard; + nF : Integer from Standard) + returns Boolean from Standard + is protected; + ---Purpose: + -- Updates tolerance of vertex with index + -- to make it interfere with face with index + + CheckPlanes(me; + nF1 : Integer from Standard; + nF2 : Integer from Standard) + returns Boolean from Standard + is protected; + ---Purpose: + -- Checks if there are any common or intersecting sub shapes + -- between two planar faces. + + SplitEdge(me:out; + nE : Integer from Standard; + nV1 : Integer from Standard; + aT1 : Real from Standard; + nV2 : Integer from Standard; + aT2 : Real from Standard) + returns Integer from Standard + is protected; + ---Purpose: + -- Creates new edge from the edge nE with vertices nV1 and nV2 + -- and returns the index of that new edge in the DS. + + UpdatePaveBlocks(me:out; + theDMI : DataMapOfIntegerInteger from BOPCol) + is protected; + ---Purpose: + -- Updates pave blocks which have the paves with indices contained + -- in the map . + fields myArguments : ListOfShape from BOPCol is protected; myDS : PDS from BOPDS is protected; myIterator : PIterator from BOPDS is protected; - myContext : Context from BOPInt is protected; + myContext : Context from IntTools is protected; mySectionAttribute : SectionAttribute from BOPAlgo is protected; end PaveFiller;