GAMS  1.4.0
SearchArea.h
Go to the documentation of this file.
1 
54 #include "ReferenceFrame.h"
55 
56 #ifndef _GAMS_UTILITY_SEARCH_AREA_H_
57 #define _GAMS_UTILITY_SEARCH_AREA_H_
58 
59 #include <vector>
60 #include <string>
61 
63 
64 namespace gams
65 {
66  namespace pose
67  {
72  {
73  public:
78 
84  SearchArea(const PrioritizedRegion& region,
85  const std::string& name = "");
86 
92  SearchArea(const std::vector<PrioritizedRegion>& regions,
93  const std::string& name = "");
94 
99 
105  bool operator==(const SearchArea& rhs) const;
106 
112  bool operator!=(const SearchArea& rhs) const;
113 
118  void operator=(const SearchArea & rhs);
119 
125 
131 
136  const std::vector<PrioritizedRegion>& get_regions() const;
137 
143  madara::knowledge::KnowledgeRecord::Integer get_priority(const Position& pos) const;
144 
150  bool contains(const Position& p) const;
151 
156  std::string to_string() const;
157 
159  double min_lat_, max_lat_;
160  double min_lon_, max_lon_;
161  double min_alt_, max_alt_;
162 
163  protected:
168 
176  double cross(const Position& gp1, const Position& gp2,
177  const Position& gp3) const;
178 
180  std::vector<PrioritizedRegion> regions_;
181 
182  private:
188  virtual bool check_valid_type(madara::knowledge::KnowledgeBase& kb,
189  const std::string& name) const;
190 
196  virtual void to_container_impl(
197  madara::knowledge::KnowledgeBase& kb,
198  const std::string& name);
199 
205  virtual bool from_container_impl(
206  madara::knowledge::KnowledgeBase& kb,
207  const std::string& name);
208  }; // class SearchArea
209  } // namespace utility
210 } // namespace gams
211 
212 #include "SearchArea.inl"
213 
214 #endif // _GAMS_UTILITY_SEARCH_AREA_H_
#define GAMS_EXPORT
Definition: GamsExport.h:20
Copyright(c) 2014 Carnegie Mellon University.
A helper class for prioritized region information.
A helper class for region information.
Definition: Region.h:79
A utility class for search areas.
Definition: SearchArea.h:72
double cross(const Position &gp1, const Position &gp2, const Position &gp3) const
Helper function for convex hull calculations.
bool contains(const Position &p) const
Determine if Position is in region.
bool operator==(const SearchArea &rhs) const
Equality operator.
void add_prioritized_region(const PrioritizedRegion &r)
Add prioritized region to search area.
virtual void to_container_impl(madara::knowledge::KnowledgeBase &kb, const std::string &name)
Store object in knowledge base.
std::string to_string() const
Create string representation of SearchArea.
void operator=(const SearchArea &rhs)
Assignment operator.
Region get_convex_hull() const
Find the convex hull.
virtual bool from_container_impl(madara::knowledge::KnowledgeBase &kb, const std::string &name)
Load object from knowledge base.
madara::knowledge::KnowledgeRecord::Integer get_priority(const Position &pos) const
Get priority of a gps position.
bool operator!=(const SearchArea &rhs) const
Inequality operator, uses Equality operator and inverses it.
std::vector< PrioritizedRegion > regions_
collection of prioritized regions
Definition: SearchArea.h:180
void calculate_bounding_box()
populate bounding box values
virtual bool check_valid_type(madara::knowledge::KnowledgeBase &kb, const std::string &name) const
Check if object is of correct type.
SearchArea(const PrioritizedRegion &region, const std::string &name="")
Constructor.
const std::vector< PrioritizedRegion > & get_regions() const
Get region data.
~SearchArea()
Destructor.
SearchArea()
Default constructor.
SearchArea(const std::vector< PrioritizedRegion > &regions, const std::string &name="")
Constructor.
A class meant to assist with retrieving information into GAMS containers.
Definition: Containerize.h:72
Contains all GAMS-related tools, classes and code.
Copyright (c) 2015 Carnegie Mellon University.