OpenLexocad  27.0
PointMapWithTolerance.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 #include <Geom/BSPTree.h>
5 #include <Geom/Pnt2d.h>
6 #include <Geom/geom_defines.h>
7 
8 namespace Geom
9 {
11 {
12 public:
13  PointMapWithTolerance(const double& tol = 1E-06);
14  PointMapWithTolerance(const PointMapWithTolerance& other); // copy constructor
15 
16  int64_t numPoints() const;
17  void clear();
18  int64_t find(const Geom::Pnt& p) const;
19  const Geom::Pnt& getPoint(const int64_t idx) const;
20  int64_t getUserData(int64_t idx) const;
21  void setUserData(int64_t idx, int64_t userData);
22  void* getUserDataVoidPtr(int64_t idx) const;
23  void setUserDataVoidPtr(int64_t idx, void* userData);
24  int64_t addPoint(const Geom::Pnt& p, int64_t userData); // it doesn't check if point exists with tolerance
25  int64_t addPointVoidPtr(const Geom::Pnt& p, void* userData); // it doesn't check if point exists with tolerance
26  int64_t addPointIfNotExists(const Geom::Pnt& p, int64_t userData);
27  int64_t addPointIfNotExistsVoidPtr(const Geom::Pnt& p, void* userData);
28  void removePoint(const int64_t idx);
29 
30  bool operator==(const PointMapWithTolerance& other) const;
31 
32 private:
33  Geom::BSPTree _bsptree;
34  double _tol;
35 };
36 
37 
38 // for convenience
40 {
41 public:
42  Point2dMapWithTolerance(const double& tol = 1E-06);
43 
44  int64_t numPoints();
45  void clear();
46  int64_t find(const Geom::Pnt2d& p);
47  const Geom::Pnt2d getPoint(const int64_t idx) const;
48  int64_t getUserData(int64_t idx);
49  void setUserData(int64_t idx, int64_t userData);
50  void addPoint(const Geom::Pnt2d& p, int64_t userData); // it doesn't check if point exists with tolerance
51  void addPointIfNotExists(const Geom::Pnt2d& p, int64_t userData);
52 
53 private:
54  Geom::BSPTree _bsptree;
55  double _tol;
56 };
57 
58 } // namespace Geom
Definition: Rotation.h:5
Definition: PointMapWithTolerance.h:10
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:42
Definition: PointMapWithTolerance.h:39
#define GEOM_EXPORT
Definition: geom_defines.h:8
GEOM_EXPORT Point getPoint(const Geom::Pnt &p)
Definition: BSPTree.h:14
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:33