hpp-manipulation
9.0.2
Classes for manipulation planning.
Toggle main menu visibility
Loading...
Searching...
No Matches
constraint-set.hh
Go to the documentation of this file.
1
// Copyright (c) 2015 CNRS
2
// Authors: Joseph Mirabel
3
//
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 copyright
13
// notice, this list of conditions and the following disclaimer in the
14
// documentation and/or other materials provided with the distribution.
15
//
16
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
27
// DAMAGE.
28
29
#ifndef HPP_MANIPULATION_CONSTRAINT_SET_HH
30
#define HPP_MANIPULATION_CONSTRAINT_SET_HH
31
32
#include <
hpp/core/constraint-set.hh
>
33
#include <
hpp/manipulation/config.hh
>
34
#include <
hpp/manipulation/fwd.hh
>
35
#include <
hpp/manipulation/graph/fwd.hh
>
36
37
namespace
hpp
{
38
namespace
manipulation
{
41
43
class
HPP_MANIPULATION_DLLAPI
ConstraintSet
:
public
core::ConstraintSet
{
44
public
:
45
typedef
core::ConstraintSet
Parent_t
;
46
48
static
ConstraintSetPtr_t
create
(
const
DevicePtr_t
& robot,
49
const
std::string&
name
);
50
52
static
ConstraintSetPtr_t
createCopy
(
const
ConstraintSetPtr_t
& cs);
53
55
virtual
ConstraintPtr_t
copy
()
const
;
56
57
void
edge
(
graph::EdgePtr_t
edge
);
58
59
graph::EdgePtr_t
edge
()
const
;
60
61
protected
:
63
ConstraintSet
(
const
DevicePtr_t
& robot,
const
std::string&
name
);
65
ConstraintSet
(
const
ConstraintSet
& other);
67
void
init
(
const
ConstraintSetPtr_t
& self);
68
69
virtual
std::ostream&
print
(std::ostream& os)
const
;
70
71
private
:
72
graph::EdgePtr_t
edge_;
73
ConstraintSetWkPtr_t weak_;
74
75
ConstraintSet
() {}
76
HPP_SERIALIZABLE
();
77
};
// class ConstraintSet
78
79
struct
ConstraintAndComplement_t
{
80
ImplicitPtr_t
constraint
;
81
ImplicitPtr_t
complement
;
82
ImplicitPtr_t
both
;
83
ConstraintAndComplement_t
(
const
ImplicitPtr_t
& constr,
84
const
ImplicitPtr_t
& comp,
const
ImplicitPtr_t
& b)
85
:
constraint
(constr),
complement
(comp),
both
(b) {}
86
};
87
typedef
std::vector<ConstraintAndComplement_t>
ConstraintsAndComplements_t
;
89
}
// namespace manipulation
90
}
// namespace hpp
91
92
BOOST_CLASS_EXPORT_KEY(
hpp::manipulation::ConstraintSet
)
93
94
#endif
// HPP_MANIPULATION_CONSTRAINT_SET_HH
hpp::core::ConstraintSet
hpp::core::Constraint::name
const std::string & name() const
hpp::manipulation::ConstraintSet
a core::ConstraintSet remembering which edge created it
Definition
constraint-set.hh:43
hpp::manipulation::ConstraintSet::Parent_t
core::ConstraintSet Parent_t
Definition
constraint-set.hh:45
hpp::manipulation::ConstraintSet::edge
void edge(graph::EdgePtr_t edge)
hpp::manipulation::ConstraintSet::createCopy
static ConstraintSetPtr_t createCopy(const ConstraintSetPtr_t &cs)
Return shared pointer to new object.
hpp::manipulation::ConstraintSet::ConstraintSet
ConstraintSet(const ConstraintSet &other)
Copy constructor.
hpp::manipulation::ConstraintSet::edge
graph::EdgePtr_t edge() const
hpp::manipulation::ConstraintSet::print
virtual std::ostream & print(std::ostream &os) const
hpp::manipulation::ConstraintSet::copy
virtual ConstraintPtr_t copy() const
return shared pointer to copy
hpp::manipulation::ConstraintSet::ConstraintSet
ConstraintSet(const DevicePtr_t &robot, const std::string &name)
Constructor.
hpp::manipulation::ConstraintSet::create
static ConstraintSetPtr_t create(const DevicePtr_t &robot, const std::string &name)
Return shared pointer to new object.
hpp::manipulation::ConstraintSet::init
void init(const ConstraintSetPtr_t &self)
Store weak pointer to itself.
config.hh
HPP_MANIPULATION_DLLAPI
#define HPP_MANIPULATION_DLLAPI
Definition
config.hh:88
constraint-set.hh
fwd.hh
fwd.hh
hpp::manipulation::ConstraintsAndComplements_t
std::vector< ConstraintAndComplement_t > ConstraintsAndComplements_t
Definition
constraint-set.hh:87
hpp::constraints::ImplicitPtr_t
shared_ptr< Implicit > ImplicitPtr_t
hpp::manipulation::graph::EdgePtr_t
shared_ptr< Edge > EdgePtr_t
Definition
fwd.hh:49
hpp::manipulation
Definition
main.hh:2
hpp::manipulation::ConstraintSetPtr_t
shared_ptr< ConstraintSet > ConstraintSetPtr_t
Definition
fwd.hh:138
hpp::manipulation::DevicePtr_t
shared_ptr< Device > DevicePtr_t
Definition
fwd.hh:40
hpp::manipulation::ConstraintPtr_t
core::ConstraintPtr_t ConstraintPtr_t
Definition
fwd.hh:128
hpp
HPP_SERIALIZABLE
#define HPP_SERIALIZABLE()
hpp::manipulation::ConstraintAndComplement_t::constraint
ImplicitPtr_t constraint
Definition
constraint-set.hh:80
hpp::manipulation::ConstraintAndComplement_t::both
ImplicitPtr_t both
Definition
constraint-set.hh:82
hpp::manipulation::ConstraintAndComplement_t::ConstraintAndComplement_t
ConstraintAndComplement_t(const ImplicitPtr_t &constr, const ImplicitPtr_t &comp, const ImplicitPtr_t &b)
Definition
constraint-set.hh:83
hpp::manipulation::ConstraintAndComplement_t::complement
ImplicitPtr_t complement
Definition
constraint-set.hh:81
include
hpp
manipulation
constraint-set.hh
Generated by
1.17.0