0024157: Parallelization of assembly part of BO
[occt.git] / src / BRepBuilderAPI / BRepBuilderAPI_VertexInspector.hxx
CommitLineData
b311480e 1// Created on: 2011-11-24
2// Created by: ANNA MASALSKAYA
3// Copyright (c) 2011-2012 OPEN CASCADE SAS
4//
5// The content of this file is subject to the Open CASCADE Technology Public
6// License Version 6.5 (the "License"). You may not use the content of this file
7// except in compliance with the License. Please obtain a copy of the License
8// at http://www.opencascade.org and read it completely before using this file.
9//
10// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
11// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
12//
13// The Original Code and all software distributed under the License is
14// distributed on an "AS IS" basis, without warranty of any kind, and the
15// Initial Developer hereby disclaims all such warranties, including without
16// limitation, any warranties of merchantability, fitness for a particular
17// purpose or non-infringement. Please see the License for the specific terms
18// and conditions governing the rights and limitations under the License.
19
82192477 20
21#ifndef _BRepBuilderAPI_VertexInspector_Header
22#define _BRepBuilderAPI_VertexInspector_Header
23
24#ifndef _TColStd_ListOfInteger_HeaderFile
25#include <TColStd_ListOfInteger.hxx>
26#endif
27#ifndef NCollection_Vector_HeaderFile
28#include <NCollection_Vector.hxx>
29#endif
30#ifndef _gp_XY_HeaderFile
31#include <gp_XY.hxx>
32#endif
33#ifndef _gp_XYZ_HeaderFile
34#include <gp_XYZ.hxx>
35#endif
36
37#ifndef NCollection_CellFilter_HeaderFile
38#include <NCollection_CellFilter.hxx>
39#endif
40
41typedef NCollection_Vector<gp_XYZ> VectorOfPoint;
42
43//=======================================================================
44//! Class BRepBuilderAPI_VertexInspector
45//! derived from NCollection_CellFilter_InspectorXYZ
46//! This class define the Inspector interface for CellFilter algorithm,
47//! working with gp_XYZ points in 3d space.
48//! Used in search of coincidence points with a certain tolerance.
49//=======================================================================
50
51class BRepBuilderAPI_VertexInspector : public NCollection_CellFilter_InspectorXYZ
52{
53public:
54 typedef Standard_Integer Target;
55 //! Constructor; remembers the tolerance
56 BRepBuilderAPI_VertexInspector (const Standard_Real theTol)
57 : myTol(theTol*theTol)
58 {}
59
60 //! Keep the points used for comparison
61 void Add (const gp_XYZ& thePnt)
62 {
63 myPoints.Append (thePnt);
64 }
65
66 //! Clear the list of adjacent points
67 void ClearResList()
68 {
69 myResInd.Clear();
70 }
71
72 //! Set current point to search for coincidence
73 void SetCurrent (const gp_XYZ& theCurPnt)
74 {
75 myCurrent = theCurPnt;
76 }
77
78 //! Get list of indexes of points adjacent with the current
79 const TColStd_ListOfInteger& ResInd()
80 {
81 return myResInd;
82 }
83
84 //! Implementation of inspection method
85 NCollection_CellFilter_Action Inspect (const Standard_Integer theTarget);
86
87private:
88 Standard_Real myTol;
89 TColStd_ListOfInteger myResInd;
90 VectorOfPoint myPoints;
91 gp_XYZ myCurrent;
92};
93
94#endif