0031668: Visualization - WebGL sample doesn't work on Emscripten 1.39
[occt.git] / src / BOPDS / BOPDS_CoupleOfPaveBlocks.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 1999-2014 OPEN CASCADE SAS
3 //
4 // This file is part of Open CASCADE Technology software library.
5 //
6 // This library is free software; you can redistribute it and/or modify it under
7 // the terms of the GNU Lesser General Public License version 2.1 as published
8 // by the Free Software Foundation, with special exception defined in the file
9 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
10 // distribution for complete text of the license and disclaimer of any warranty.
11 //
12 // Alternatively, this file may be used under the terms of Open CASCADE
13 // commercial license or contractual agreement.
14
15 #ifndef BOPDS_CoupleOfPaveBlocks_HeaderFile
16 #define BOPDS_CoupleOfPaveBlocks_HeaderFile
17
18 #include <BOPDS_PaveBlock.hxx>
19
20 /**
21  * The Class BOPDS_CoupleOfPaveBlocks is to store
22  * the information about two pave blocks 
23  * and some satellite information 
24  *
25 */
26 //=======================================================================
27 //class : BOPDS_CoupleOfPaveBlocks
28 //purpose  : 
29 //=======================================================================
30 class BOPDS_CoupleOfPaveBlocks {
31  public:
32   /**
33    * Constructor
34    */
35   BOPDS_CoupleOfPaveBlocks() :
36     myIndexInterf(-1),
37     myIndex(-1),
38     myTolerance(0)
39   {}
40   //
41   /**
42    * Constructor
43    * @param thePB1
44    *  first pave block
45    * @param thePB2
46    *  secondt pave block
47    */
48   BOPDS_CoupleOfPaveBlocks(const Handle(BOPDS_PaveBlock)& thePB1,
49     const Handle(BOPDS_PaveBlock)& thePB2) :
50     myIndexInterf(-1),
51     myIndex(-1),
52     myTolerance(0)
53   {
54     SetPaveBlocks(thePB1, thePB2);
55   }
56   //
57   /**
58    * Destructor
59    */
60   ~BOPDS_CoupleOfPaveBlocks() {
61   }
62   //
63   /**
64    * Sets an index
65    * @param theIndex
66    *  index
67    */
68   void SetIndex(const Standard_Integer theIndex) {
69     myIndex=theIndex;
70   } 
71   //
72   /**
73    * Returns the index
74    * @return 
75    *   index
76    */
77   Standard_Integer Index()const {
78     return myIndex;
79   } 
80   // 
81   /**
82    * Sets an index of an interference 
83    * @param theIndex
84    *  index of an interference 
85    */ 
86   void SetIndexInterf(const Standard_Integer theIndex) {
87     myIndexInterf=theIndex;
88   } 
89   //
90   /**
91    * Returns the index of an interference 
92    * @return 
93    *   index of an interference 
94    */
95   Standard_Integer IndexInterf()const {
96     return myIndexInterf;
97   } 
98   // 
99   /**
100    * Sets pave blocks
101    * @param thePB1
102    *  first pave block
103    * @param thePB2
104    *  secondt pave block
105    */ 
106   void SetPaveBlocks(const Handle(BOPDS_PaveBlock)& thePB1,
107                      const Handle(BOPDS_PaveBlock)& thePB2) {
108     myPB[0]=thePB1;
109     myPB[1]=thePB2;
110   } 
111   // 
112   /**
113    * Returns pave blocks
114    * @param thePB1
115    *  the first pave block
116    * @param thePB2
117    *  the second pave block
118    */ 
119   void PaveBlocks(Handle(BOPDS_PaveBlock)& thePB1,
120                   Handle(BOPDS_PaveBlock)& thePB2) const {
121     thePB1=myPB[0];
122     thePB2=myPB[1];       
123   }
124   // 
125   /**
126    * Sets the first pave block
127    * @param thePB
128    *  the first pave block
129    */  
130   void SetPaveBlock1(const Handle(BOPDS_PaveBlock)& thePB) {
131     myPB[0]=thePB;
132   } 
133   /**
134    * Returns the first pave block
135    * @return 
136    * the first pave block
137    */  
138   const Handle(BOPDS_PaveBlock)& PaveBlock1()const {
139     return myPB[0];
140   }
141   //
142   /**
143    * Sets the second pave block
144    * @param thePB
145    *  the second pave block
146    */  
147   void SetPaveBlock2(const Handle(BOPDS_PaveBlock)& thePB) {
148     myPB[1]=thePB;
149   } 
150   //
151   /**
152    * Returns the second pave block
153    * @return 
154    * the second pave block
155    */  
156   const Handle(BOPDS_PaveBlock)& PaveBlock2()const {
157     return myPB[1];
158   }
159
160   /**
161   * Sets the tolerance associated with this couple
162   */
163   void SetTolerance(const Standard_Real theTol) {
164     myTolerance = theTol;
165   }
166   //
167   /**
168   * Returns the tolerance associated with this couple
169   */
170   Standard_Real Tolerance()const {
171     return myTolerance;
172   }
173
174  protected:
175   Standard_Integer myIndexInterf;
176   Standard_Integer myIndex;
177   Handle(BOPDS_PaveBlock) myPB[2];
178   Standard_Real    myTolerance;
179 };
180 //
181 #endif