0024157: Parallelization of assembly part of BO
[occt.git] / src / BOPCol / BOPCol_Box2DBndTree.hxx
1 // Created by: Peter KURNEV
2 // Copyright (c) 2010-2012 OPEN CASCADE SAS
3 // Copyright (c) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE
4 // Copyright (c) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT,
5 //                         EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
6 //
7 // The content of this file is subject to the Open CASCADE Technology Public
8 // License Version 6.5 (the "License"). You may not use the content of this file
9 // except in compliance with the License. Please obtain a copy of the License
10 // at http://www.opencascade.org and read it completely before using this file.
11 //
12 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
13 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 //
15 // The Original Code and all software distributed under the License is
16 // distributed on an "AS IS" basis, without warranty of any kind, and the
17 // Initial Developer hereby disclaims all such warranties, including without
18 // limitation, any warranties of merchantability, fitness for a particular
19 // purpose or non-infringement. Please see the License for the specific terms
20 // and conditions governing the rights and limitations under the License.
21
22
23 #ifndef BOPCol_Box2DBndTree_HeaderFile
24 #define BOPCol_Box2DBndTree_HeaderFile
25
26 #include <NCollection_UBTree.hxx>
27 #include <Bnd_Box2d.hxx>
28 #include <BOPCol_ListOfInteger.hxx>
29 /**
30  * The instantiation of the algorithm of unbalanced binary tree 
31  * of overlapped bounding boxes 2D.
32  *
33 */
34 typedef NCollection_UBTree <Standard_Integer , Bnd_Box2d> BOPCol_Box2DBndTree;
35
36   class BOPCol_Box2DBndTreeSelector : public BOPCol_Box2DBndTree::Selector {
37     public:
38       Standard_EXPORT BOPCol_Box2DBndTreeSelector();
39       Standard_EXPORT virtual Standard_Boolean Reject(const Bnd_Box2d&) const;
40       Standard_EXPORT virtual Standard_Boolean Accept(const Standard_Integer &);
41       Standard_EXPORT virtual ~BOPCol_Box2DBndTreeSelector();
42       
43       Standard_EXPORT void Clear();
44       Standard_EXPORT void SetBox(const Bnd_Box2d&);
45       Standard_EXPORT const BOPCol_ListOfInteger& Indices() const;
46
47     protected:
48       Bnd_Box2d  myBox2D;
49       BOPCol_ListOfInteger myIndices;
50   };
51
52 #endif