LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
entitydistance.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "cad/base/cadentity.h"
4 
5 namespace lc {
12  public:
20  EntityDistance(entity::CADEntity_CSPtr cadEntity, const geo::Coordinate &coordinate) : _cadEntity(cadEntity),
21  _coordinate(coordinate) {
22 
23  }
24 
25  entity::CADEntity_CSPtr entity() const {
26  return _cadEntity;
27  }
28 
30  return _coordinate;
31  }
32 
33  private:
34  entity::CADEntity_CSPtr _cadEntity;
36  };
37 
39  EntityDistanceSorter(const geo::Coordinate &reference) : _reference(reference) { }
40 
41  bool operator()(const EntityDistance &i1, const EntityDistance &i2) {
42  const auto d1 = i1.coordinate().distanceTo(_reference);
43  const auto d2 = i2.coordinate().distanceTo(_reference);
44  return d1 < d2;
45  }
46 
48  };
49 }
geo::Coordinate _reference
entity::CADEntity_CSPtr entity() const
geo::Coordinate _coordinate
EntityDistanceSorter(const geo::Coordinate &reference)
Definition: cadentity.h:12
geo::Coordinate coordinate() const
EntityDistance(entity::CADEntity_CSPtr cadEntity, const geo::Coordinate &coordinate)
bool operator()(const EntityDistance &i1, const EntityDistance &i2)
double distanceTo(const geo::Coordinate &c) const
entity::CADEntity_CSPtr _cadEntity