]> SALOME platform Git repositories - modules/geom.git/blob - src/NMTDS_NEW/NMTDS_PassKeyShape.hxx
Salome HOME
Mantis issue 0021191: GlueEdges and GlueFaces problem with tolerance 1. A fix by...
[modules/geom.git] / src / NMTDS_NEW / NMTDS_PassKeyShape.hxx
1 // Copyright (C) 2007-2011  CEA/DEN, EDF R&D, OPEN CASCADE\r
2 //\r
3 // This library is free software; you can redistribute it and/or\r
4 // modify it under the terms of the GNU Lesser General Public\r
5 // License as published by the Free Software Foundation; either\r
6 // version 2.1 of the License.\r
7 //\r
8 // This library is distributed in the hope that it will be useful,\r
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of\r
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
11 // Lesser General Public License for more details.\r
12 //\r
13 // You should have received a copy of the GNU Lesser General Public\r
14 // License along with this library; if not, write to the Free Software\r
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA\r
16 //\r
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com\r
18 //\r
19 \r
20 // File:        NMTDS_PassKeyShape.hxx\r
21 // Created:     \r
22 // Author:      Peter KURNEV\r
23 //              <pkv@irinox>\r
24 //\r
25 #ifndef _NMTDS_PassKeyShape_HeaderFile\r
26 #define _NMTDS_PassKeyShape_HeaderFile\r
27 \r
28 #include <Standard.hxx>\r
29 #include <Standard_Macro.hxx>\r
30 #include <Standard_Integer.hxx>\r
31 #include <TopTools_IndexedMapOfShape.hxx>\r
32 #include <Standard_Boolean.hxx>\r
33 #include <TopoDS_Shape.hxx>\r
34 #include <TopTools_ListOfShape.hxx>\r
35 \r
36 //=======================================================================\r
37 //function : NMTDS_PassKeyShape\r
38 //purpose  : \r
39 //=======================================================================\r
40 class NMTDS_PassKeyShape  {\r
41  public:\r
42   Standard_EXPORT\r
43     NMTDS_PassKeyShape();\r
44   \r
45   Standard_EXPORT \r
46     virtual ~NMTDS_PassKeyShape();\r
47   \r
48   Standard_EXPORT \r
49     NMTDS_PassKeyShape(const NMTDS_PassKeyShape& Other);\r
50   \r
51   Standard_EXPORT\r
52     NMTDS_PassKeyShape& Assign(const NMTDS_PassKeyShape& Other) ;\r
53     \r
54   NMTDS_PassKeyShape& operator =(const NMTDS_PassKeyShape& Other) {\r
55     return Assign(Other);\r
56   }\r
57   \r
58   Standard_EXPORT     \r
59     void SetShapes(const TopoDS_Shape& aS) ;\r
60   \r
61   Standard_EXPORT\r
62     void SetShapes(const TopoDS_Shape& aS1,\r
63                    const TopoDS_Shape& aS2) ;\r
64   \r
65   Standard_EXPORT\r
66     void SetShapes(const TopoDS_Shape& aS1,\r
67                    const TopoDS_Shape& aS2,\r
68                    const TopoDS_Shape& aS3) ;\r
69   \r
70   Standard_EXPORT\r
71     void SetShapes(const TopoDS_Shape& aS1,\r
72                    const TopoDS_Shape& aS2,\r
73                    const TopoDS_Shape& aS3,\r
74                    const TopoDS_Shape& aS4) ;\r
75   \r
76   Standard_EXPORT\r
77     void SetShapes(const TopTools_ListOfShape& aLS) ;\r
78   \r
79   Standard_EXPORT\r
80     void Clear() ;\r
81   \r
82   Standard_EXPORT\r
83     Standard_Integer NbIds() const;\r
84   \r
85   Standard_EXPORT\r
86     Standard_Boolean IsEqual(const NMTDS_PassKeyShape& aOther) const;\r
87   \r
88   Standard_EXPORT\r
89     Standard_Integer HashCode(const Standard_Integer Upper) const;\r
90   \r
91   Standard_EXPORT\r
92     void Dump(const Standard_Integer aHex = 0) const;\r
93 \r
94  protected:\r
95   Standard_Integer myNbIds;\r
96   Standard_Integer mySum;\r
97   Standard_Integer myUpper;\r
98   TopTools_IndexedMapOfShape myMap;\r
99 };\r
100 #endif\r