Main Page
Namespaces
Classes
Files
File List
File Members
ros
src
fastrack
include
fastrack
control
control_bound.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2018, The Regents of the University of California (Regents).
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
7
* met:
8
*
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
*
12
* 2. Redistributions in binary form must reproduce the above
13
* copyright notice, this list of conditions and the following
14
* disclaimer in the documentation and/or other materials provided
15
* with the distribution.
16
*
17
* 3. Neither the name of the copyright holder nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS
22
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
25
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31
* POSSIBILITY OF SUCH DAMAGE.
32
*
33
* Please contact the author(s) of this library if you have any questions.
34
* Authors: David Fridovich-Keil ( dfk@eecs.berkeley.edu )
35
*/
36
38
//
39
// Abstract class specifying generic control bounds. Examples include spheres,
40
// boxes, and cylinders.
41
//
43
44
#ifndef FASTRACK_CONTROL_CONTROL_BOUND_H
45
#define FASTRACK_CONTROL_CONTROL_BOUND_H
46
47
#include <
fastrack/utils/types.h
>
48
49
namespace
fastrack
{
50
namespace
control {
51
52
template
<
typename
C>
class
ControlBound
{
53
public
:
54
virtual
~ControlBound
() {}
55
56
// Derived classes must be able to check whether a query is inside the bound.
57
virtual
bool
Contains
(
const
C &query)
const
= 0;
58
59
// Derived classes must be able to compute the projection of a vector
60
// (represented as the templated type) onto the surface of the bound.
61
// NOTE: this is basically solving an LP with the bound as the feasible
62
// set and the query as the coefficients.
63
virtual
C
ProjectToSurface
(
const
C &query)
const
= 0;
64
65
protected
:
66
explicit
ControlBound
() {}
67
};
//\class ControlBound
68
69
}
// namespace control
70
}
// namespace fastrack
71
72
#endif
types.h
fastrack::control::ControlBound::~ControlBound
virtual ~ControlBound()
Definition:
control_bound.h:54
fastrack::control::ControlBound
Definition:
control_bound.h:52
fastrack::control::ControlBound::ProjectToSurface
virtual C ProjectToSurface(const C &query) const =0
fastrack
Definition:
box.h:53
fastrack::control::ControlBound::Contains
virtual bool Contains(const C &query) const =0
fastrack::control::ControlBound::ControlBound
ControlBound()
Definition:
control_bound.h:66
fastrack
Author(s): David Fridovich-Keil
autogenerated on Mon Aug 3 2020 21:28:37