OpenLexocad  28.0
PointMapWithTolerance.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Geom/BSPTree.h>
4 #include <Geom/Pnt2d.h>
5 
6 namespace Geom { class Pnt; }
7 
8 namespace Geom
9 {
10 class LX_GEOM_EXPORT PointMapWithTolerance
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
39 class LX_GEOM_EXPORT Point2dMapWithTolerance
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
Geom::Point2dMapWithTolerance::find
int64_t find(const Geom::Pnt2d &p)
Geom::PointMapWithTolerance::addPointVoidPtr
int64_t addPointVoidPtr(const Geom::Pnt &p, void *userData)
Geom::Point2dMapWithTolerance::numPoints
int64_t numPoints()
Geom::Point2dMapWithTolerance::getUserData
int64_t getUserData(int64_t idx)
Geom::PointMapWithTolerance::clear
void clear()
BSPTree.h
Geom::PointMapWithTolerance::addPoint
int64_t addPoint(const Geom::Pnt &p, int64_t userData)
Geom::PointMapWithTolerance::addPointIfNotExists
int64_t addPointIfNotExists(const Geom::Pnt &p, int64_t userData)
Geom::BSPTree
Definition: BSPTree.h:16
Geom::PointMapWithTolerance::getPoint
const Geom::Pnt & getPoint(const int64_t idx) const
Geom::PointMapWithTolerance::getUserDataVoidPtr
void * getUserDataVoidPtr(int64_t idx) const
Geom::PointMapWithTolerance::setUserDataVoidPtr
void setUserDataVoidPtr(int64_t idx, void *userData)
Geom::Point2dMapWithTolerance
Definition: PointMapWithTolerance.h:40
Geom::Point2dMapWithTolerance::setUserData
void setUserData(int64_t idx, int64_t userData)
Geom::Point2dMapWithTolerance::addPoint
void addPoint(const Geom::Pnt2d &p, int64_t userData)
Geom::PointMapWithTolerance::getUserData
int64_t getUserData(int64_t idx) const
Geom::Point2dMapWithTolerance::addPointIfNotExists
void addPointIfNotExists(const Geom::Pnt2d &p, int64_t userData)
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
Geom::PointMapWithTolerance::find
int64_t find(const Geom::Pnt &p) const
Geom::Point2dMapWithTolerance::clear
void clear()
Geom::PointMapWithTolerance::setUserData
void setUserData(int64_t idx, int64_t userData)
Pnt2d.h
Geom::PointMapWithTolerance::operator==
bool operator==(const PointMapWithTolerance &other) const
Geom::PointMapWithTolerance
Definition: PointMapWithTolerance.h:11
Geom::Point2dMapWithTolerance::getPoint
const Geom::Pnt2d getPoint(const int64_t idx) const
Geom::PointMapWithTolerance::removePoint
void removePoint(const int64_t idx)
Geom::Pnt2d
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:34
Geom::Point2dMapWithTolerance::Point2dMapWithTolerance
Point2dMapWithTolerance(const double &tol=1E-06)
Geom::PointMapWithTolerance::addPointIfNotExistsVoidPtr
int64_t addPointIfNotExistsVoidPtr(const Geom::Pnt &p, void *userData)
Geom::PointMapWithTolerance::PointMapWithTolerance
PointMapWithTolerance(const double &tol=1E-06)
Geom::PointMapWithTolerance::numPoints
int64_t numPoints() const
Geom
Definition: PropertyContainer.h:33
Geom::PointMapWithTolerance::PointMapWithTolerance
PointMapWithTolerance(const PointMapWithTolerance &other)