dart
examples
atlas_simbicon
TerminalCondition.hpp
1
/*
2
* Copyright (c) 2011-2021, The DART development contributors
3
* All rights reserved.
4
*
5
* The list of contributors can be found at:
6
* https://github.com/dartsim/dart/blob/master/LICENSE
7
*
8
* This file is provided under the following "BSD-style" License:
9
* Redistribution and use in source and binary forms, with or
10
* without modification, are permitted provided that the following
11
* conditions are met:
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* * Redistributions in binary form must reproduce the above
15
* copyright notice, this list of conditions and the following
16
* disclaimer in the documentation and/or other materials provided
17
* with the distribution.
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
* POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33
#ifndef EXAMPLES_ATLASSIMBICON_TERMINALCONDITION_HPP_
34
#define EXAMPLES_ATLASSIMBICON_TERMINALCONDITION_HPP_
35
36
#include <string>
37
#include <vector>
38
39
#include <Eigen/Dense>
40
41
#include <dart/dart.hpp>
42
43
class
State
;
44
45
//==============================================================================
47
class
TerminalCondition
48
{
49
public
:
51
TerminalCondition
(
State
* _state);
52
54
virtual
~TerminalCondition
();
55
57
virtual
bool
isSatisfied
() = 0;
58
59
protected
:
61
State
*
mState
;
62
};
63
64
//==============================================================================
66
class
TimerCondition
:
public
TerminalCondition
67
{
68
public
:
70
TimerCondition
(
State
* _state,
double
_duration);
71
73
virtual
~
TimerCondition
();
74
75
// Documentation inherited.
76
bool
isSatisfied
()
override
;
77
78
protected
:
80
double
mDuration
;
81
};
82
83
//==============================================================================
85
class
BodyContactCondition
:
public
TerminalCondition
86
{
87
public
:
89
BodyContactCondition
(
State
* _state,
dart::dynamics::BodyNode
* _body);
90
92
virtual
~
BodyContactCondition
();
93
94
// Documentation inherited.
95
bool
isSatisfied
()
override
;
96
97
protected
:
99
dart::dynamics::BodyNode
*
mBodyNode
;
100
};
101
102
#endif // EXAMPLES_ATLASSIMBICON_TERMINALCONDITION_HPP_
TerminalCondition::TerminalCondition
TerminalCondition(State *_state)
Constructor.
Definition:
TerminalCondition.cpp:46
TerminalCondition::mState
State * mState
State.
Definition:
TerminalCondition.hpp:61
TerminalCondition::isSatisfied
virtual bool isSatisfied()=0
Check if this condition is satisfied or not.
TerminalCondition
class TerminalCondition
Definition:
TerminalCondition.hpp:47
BodyContactCondition::mBodyNode
dart::dynamics::BodyNode * mBodyNode
Body node to be tested.
Definition:
TerminalCondition.hpp:99
TerminalCondition::~TerminalCondition
virtual ~TerminalCondition()
Destructor.
Definition:
TerminalCondition.cpp:52
TimerCondition
class TimerCondition
Definition:
TerminalCondition.hpp:66
State
class State
Definition:
State.hpp:65
dart::dynamics::BodyNode
BodyNode class represents a single node of the skeleton.
Definition:
BodyNode.hpp:74
TimerCondition::mDuration
double mDuration
Duration.
Definition:
TerminalCondition.hpp:80
BodyContactCondition
class BodyContactCondition
Definition:
TerminalCondition.hpp:85
Generated by
1.8.13