Aikido
Sampleable.hpp
Go to the documentation of this file.
1 #ifndef AIKIDO_CONSTRAINT_SAMPLEABLE_HPP_
2 #define AIKIDO_CONSTRAINT_SAMPLEABLE_HPP_
3 
4 #include <limits>
5 #include <memory>
6 
7 #include <boost/optional.hpp>
8 
9 #include "aikido/common/RNG.hpp"
12 
13 namespace aikido {
14 namespace constraint {
15 
17 
18 class SampleGenerator;
19 
28 {
29 public:
30  virtual ~Sampleable() = default;
31 
34 
36  virtual std::unique_ptr<SampleGenerator> createSampleGenerator() const = 0;
37 };
38 
45 {
46 public:
47  virtual ~SampleGenerator() = default;
48 
50  static constexpr int NO_LIMIT = std::numeric_limits<int>::max();
51 
54 
56  virtual bool sample(statespace::StateSpace::State* _state) = 0;
57 
59  virtual int getNumSamples() const = 0;
60 
62  virtual bool canSample() const = 0;
63 };
64 
65 } // namespace constraint
66 } // namespace aikido
67 
68 #endif // AIKIDO_CONSTRAINT_SAMPLEABLE_HPP_
aikido::constraint::Sampleable::getStateSpace
virtual statespace::ConstStateSpacePtr getStateSpace() const =0
Gets the StateSpace that this constraint operates on.
RNG.hpp
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::constraint::SampleGenerator
Generator for drawing samples from a Sampleable.
Definition: Sampleable.hpp:44
StateSpace.hpp
aikido::statespace::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: StateSpace.hpp:15
aikido::constraint::SampleGenerator::canSample
virtual bool canSample() const =0
Returns whether getNumSamples() > 0.
aikido::constraint::Sampleable
Constraint that may be sampled from.
Definition: Sampleable.hpp:27
aikido::constraint::SampleGenerator::~SampleGenerator
virtual ~SampleGenerator()=default
pointers.hpp
aikido::constraint::SampleGenerator::getNumSamples
virtual int getNumSamples() const =0
Gets an upper bound on the number of samples remaining or NO_LIMIT.
aikido::constraint::Sampleable::createSampleGenerator
virtual std::unique_ptr< SampleGenerator > createSampleGenerator() const =0
Creates a SampleGenerator for sampling from this constraint.
aikido::constraint::SampleGenerator::getStateSpace
virtual statespace::ConstStateSpacePtr getStateSpace() const =0
Gets the StateSpace that this SampleGenerator samples from.
aikido::constraint::SampleGenerator::NO_LIMIT
static constexpr int NO_LIMIT
Value used to represent a potentially infinite number of samples.
Definition: Sampleable.hpp:50
aikido::constraint::SampleGenerator::sample
virtual bool sample(statespace::StateSpace::State *_state)=0
Returns one sample from this constraint; returns true if succeeded.
aikido::constraint::Sampleable::~Sampleable
virtual ~Sampleable()=default
aikido::statespace::StateSpace::State
Definition: StateSpace.hpp:167
AIKIDO_DECLARE_POINTERS
#define AIKIDO_DECLARE_POINTERS(X)
Definition: pointers.hpp:21