Simbody
3.4
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
EventHandler.h
Go to the documentation of this file.
1
#ifndef SimTK_SimTKCOMMON_EVENT_HANDLER_H_
2
#define SimTK_SimTKCOMMON_EVENT_HANDLER_H_
3
4
/* -------------------------------------------------------------------------- *
5
* Simbody(tm): SimTKcommon *
6
* -------------------------------------------------------------------------- *
7
* This is part of the SimTK biosimulation toolkit originating from *
8
* Simbios, the NIH National Center for Physics-Based Simulation of *
9
* Biological Structures at Stanford, funded under the NIH Roadmap for *
10
* Medical Research, grant U54 GM072970. See https://simtk.org/home/simbody. *
11
* *
12
* Portions copyright (c) 2007-12 Stanford University and the Authors. *
13
* Authors: Peter Eastman *
14
* Contributors: Michael Sherman *
15
* *
16
* Licensed under the Apache License, Version 2.0 (the "License"); you may *
17
* not use this file except in compliance with the License. You may obtain a *
18
* copy of the License at http://www.apache.org/licenses/LICENSE-2.0. *
19
* *
20
* Unless required by applicable law or agreed to in writing, software *
21
* distributed under the License is distributed on an "AS IS" BASIS, *
22
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
23
* See the License for the specific language governing permissions and *
24
* limitations under the License. *
25
* -------------------------------------------------------------------------- */
26
27
#include "
SimTKcommon/basics.h
"
28
#include "
SimTKcommon/Simmatrix.h
"
29
#include "
SimTKcommon/internal/State.h
"
30
#include "
SimTKcommon/internal/System.h
"
31
32
namespace
SimTK {
33
51
class
SimTK_SimTKCOMMON_EXPORT
EventHandler
{
52
public
:
53
virtual
~
EventHandler
();
54
73
virtual
void
handleEvent(
State
& state,
Real
accuracy,
74
bool
& shouldTerminate)
const
= 0;
75
};
76
84
class
SimTK_SimTKCOMMON_EXPORT
ScheduledEventHandler
:
public
EventHandler
{
85
public
:
86
virtual
~
ScheduledEventHandler
();
87
96
virtual
Real
getNextEventTime(
const
State
& state,
97
bool
includeCurrentTime)
const
= 0;
98
};
99
109
class
SimTK_SimTKCOMMON_EXPORT
TriggeredEventHandler
:
public
EventHandler
{
110
public
:
111
class
TriggeredEventHandlerImpl;
112
TriggeredEventHandler
(
const
TriggeredEventHandler
& clone);
113
TriggeredEventHandler
& operator=(
const
TriggeredEventHandler
& clone);
114
virtual
~
TriggeredEventHandler
();
115
122
TriggeredEventHandler
(
Stage
requiredStage);
123
127
virtual
Real
getValue(
const
State
&)
const
= 0;
128
133
EventTriggerInfo
& getTriggerInfo();
134
138
Stage
getRequiredStage()
const
;
139
private
:
140
TriggeredEventHandlerImpl* impl;
141
};
142
146
class
SimTK_SimTKCOMMON_EXPORT
PeriodicEventHandler
147
:
public
ScheduledEventHandler
{
148
public
:
149
class
PeriodicEventHandlerImpl;
150
~
PeriodicEventHandler
();
151
Real
getNextEventTime(
const
State
& state,
bool
includeCurrentTime)
const
;
152
159
PeriodicEventHandler
(
Real
eventInterval);
160
164
Real
getEventInterval()
const
;
165
169
void
setEventInterval(
Real
eventInterval);
170
private
:
171
PeriodicEventHandlerImpl* impl;
172
};
173
174
}
// namespace SimTK
175
176
#endif // SimTK_SimTKCOMMON_EVENT_HANDLER_H_
SimTKcommon
Simulation
include
SimTKcommon
internal
EventHandler.h
Generated on Tue Dec 2 2014 13:13:23 for Simbody by
1.8.1.2