Salome HOME
Update from BR_V5_DEV 13Feb2009
[modules/geom.git] / src / NMTTools / NMTTools_PaveFiller_0.cxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 // File:        NMTTools_PaveFiller_0.cxx
23 // Created:     Mon Dec  8 11:45:51 2003
24 // Author:      Peter KURNEV
25 //              <pkv@irinox>
26 //
27 #include <NMTTools_PaveFiller.ixx>
28
29 #include <TColStd_IndexedMapOfInteger.hxx>
30 #include <TopAbs_ShapeEnum.hxx>
31
32 #include <NMTDS_InterfPool.hxx>
33 #include <NMTDS_ShapesDataStructure.hxx>
34 #include <NMTDS_Iterator.hxx>
35
36 //=======================================================================
37 // function:IsSuccesstorsComputed
38 // purpose: 
39 //=======================================================================
40   Standard_Boolean NMTTools_PaveFiller::IsSuccessorsComputed(const Standard_Integer aN1,
41                                                              const Standard_Integer aN2)const
42 {
43   Standard_Boolean bComputed;
44   Standard_Integer i, nSuc, n1, n2, ntmp, aNbS;
45   TopAbs_ShapeEnum aType;
46   TColStd_IndexedMapOfInteger aMSuc;
47   //
48   n1=aN1;
49   n2=aN2;
50   aType=myDS->GetShapeType(aN1);
51   if (aType!=TopAbs_VERTEX) {
52     ntmp=n1;
53     n1=n2;
54     n2=ntmp;
55   }
56   //
57   myDS->GetAllSuccessors(n2, aMSuc);
58   aNbS=aMSuc.Extent();
59   for (i=1; i<=aNbS; ++i) {
60     nSuc=aMSuc(i);
61     bComputed=myIP->Contains(n1, nSuc); 
62     if (bComputed) {
63       break;
64     }
65   }
66   return bComputed;
67 }
68 /*
69 //=======================================================================
70 // function:  ExpectedPoolLength
71 // purpose: 
72 //=======================================================================
73   Standard_Integer NMTTools_PaveFiller::ExpectedPoolLength()const
74 {
75   Standard_Integer aNbIIs;
76   Standard_Real aCfPredict=.5;
77   // Modified  Thu Sep 14 14:35:18 2006 
78   // Contribution of Samtech www.samcef.com BEGIN
79   //const BOPTools_ListOfCoupleOfInteger& aLC=myDSIt.ListOfCouple();
80   //aNbIIs=aLC.Extent();
81   aNbIIs=myDSIt->ExpectedLength();
82   // Contribution of Samtech www.samcef.com END
83   //
84   if (aNbIIs==1) {
85     return aNbIIs;
86   }
87   //
88   aNbIIs=(Standard_Integer) (aCfPredict*(Standard_Real)aNbIIs);
89   
90   return aNbIIs;
91 }
92 */
93 /*
94 //=======================================================================
95 //function : SortTypes
96 //purpose  : 
97 //=======================================================================
98   void NMTTools_PaveFiller::SortTypes(Standard_Integer& theWhat,
99                                       Standard_Integer& theWith)const 
100
101   Standard_Integer aWhat, aWith;
102   Standard_Boolean aReverseFlag;
103   TopAbs_ShapeEnum aType1, aType2;
104   //
105   aType1= myDS->GetShapeType(theWhat),
106   aType2= myDS->GetShapeType(theWith);
107   //
108   if (aType1==aType2) {
109     return;
110   }
111   //
112   aReverseFlag=Standard_True;
113   if (aType1==TopAbs_EDGE && aType2==TopAbs_FACE) {
114     aReverseFlag=Standard_False;
115   }
116   if (aType1==TopAbs_VERTEX && 
117       (aType2==TopAbs_FACE || aType2==TopAbs_EDGE)) {
118     aReverseFlag=Standard_False;
119   }
120   //
121   aWhat=(aReverseFlag) ? theWith : theWhat;
122   aWith=(aReverseFlag) ? theWhat : theWith;
123   //
124   theWhat=aWhat;
125   theWith=aWith;
126 }
127 */