Robotics Library  0.7.0
NearestNeighbors.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2009, Markus Rickert
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are met:
7 //
8 // * Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright notice,
11 // this list of conditions and the following disclaimer in the documentation
12 // and/or other materials provided with the distribution.
13 //
14 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
18 // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 // POSSIBILITY OF SUCH DAMAGE.
25 //
26 
27 #ifndef RL_PLAN_NEARESTNEIGHBORS_H
28 #define RL_PLAN_NEARESTNEIGHBORS_H
29 
30 #include <utility>
31 #include <vector>
32 
33 #include "Metric.h"
34 
35 namespace rl
36 {
37  namespace plan
38  {
39  class Planner;
40 
42  {
43  public:
45 
47 
48  typedef ::std::pair<Distance, Value> Neighbor;
49 
50  NearestNeighbors(const bool& transformed);
51 
52  virtual ~NearestNeighbors();
53 
54  virtual void clear() = 0;
55 
56  virtual bool empty() const = 0;
57 
58  bool isTransformedDistance() const;
59 
60  virtual ::std::vector<Neighbor> nearest(const Value& query, const ::std::size_t& k, const bool& sorted = true) const = 0;
61 
62  virtual void push(const Value& value) = 0;
63 
64  virtual ::std::size_t size() const = 0;
65 
66  protected:
67 
68  private:
70  };
71  }
72 }
73 
74 #endif // RL_PLAN_NEARESTNEIGHBORS_H
rl::plan::NearestNeighbors::size
virtual ::std::size_t size() const =0
rl::plan::NearestNeighbors::Value
Metric::Value Value
Definition: NearestNeighbors.h:46
rl::plan::NearestNeighbors::~NearestNeighbors
virtual ~NearestNeighbors()
Definition: NearestNeighbors.cpp:38
rl::plan::Metric::Value
Definition: Metric.h:47
rl::plan::NearestNeighbors::Neighbor
::std::pair< Distance, Value > Neighbor
Definition: NearestNeighbors.h:48
rl::plan::NearestNeighbors::push
virtual void push(const Value &value)=0
rl::plan::NearestNeighbors::NearestNeighbors
NearestNeighbors(const bool &transformed)
Definition: NearestNeighbors.cpp:33
rl::plan::NearestNeighbors
Definition: NearestNeighbors.h:42
Metric.h
rl::plan::NearestNeighbors::transformed
bool transformed
Definition: NearestNeighbors.h:69
rl::plan::NearestNeighbors::empty
virtual bool empty() const =0
rl::plan::NearestNeighbors::Distance
Metric::Distance Distance
Definition: NearestNeighbors.h:44
rl::plan::NearestNeighbors::nearest
virtual ::std::vector< Neighbor > nearest(const Value &query, const ::std::size_t &k, const bool &sorted=true) const =0
rl::plan::NearestNeighbors::clear
virtual void clear()=0
rl::plan::Metric::Distance
::rl::math::Real Distance
Definition: Metric.h:42
rl::plan::NearestNeighbors::isTransformedDistance
bool isTransformedDistance() const
Definition: NearestNeighbors.cpp:43
rl
Robotics Library.
Definition: AnalogInput.cpp:30