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
EventReporter.h
Go to the documentation of this file.
1
#ifndef SimTK_SimTKCOMMON_EVENT_REPORTER_H_
2
#define SimTK_SimTKCOMMON_EVENT_REPORTER_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: *
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
53
class
SimTK_SimTKCOMMON_EXPORT
EventReporter
{
54
public
:
55
virtual
~
EventReporter
();
56
62
virtual
void
handleEvent(
const
State
& state)
const
= 0;
63
};
64
72
class
SimTK_SimTKCOMMON_EXPORT
ScheduledEventReporter
:
public
EventReporter
{
73
public
:
74
virtual
~
ScheduledEventReporter
();
75
84
virtual
Real
getNextEventTime(
const
State
& state,
bool
includeCurrentTime)
const
= 0;
85
};
86
96
class
SimTK_SimTKCOMMON_EXPORT
TriggeredEventReporter
:
public
EventReporter
{
97
public
:
98
class
TriggeredEventReporterImpl;
99
TriggeredEventReporter
(
const
TriggeredEventReporter
& clone);
100
TriggeredEventReporter
& operator=(
const
TriggeredEventReporter
& clone);
101
virtual
~
TriggeredEventReporter
();
102
109
TriggeredEventReporter
(
Stage
requiredStage);
110
115
virtual
Real
getValue(
const
State
&)
const
= 0;
116
121
EventTriggerInfo
& getTriggerInfo();
122
127
Stage
getRequiredStage()
const
;
128
private
:
129
TriggeredEventReporterImpl* impl;
130
};
131
138
class
SimTK_SimTKCOMMON_EXPORT
PeriodicEventReporter
:
public
ScheduledEventReporter
{
139
public
:
140
class
PeriodicEventReporterImpl;
141
~
PeriodicEventReporter
();
142
Real
getNextEventTime(
const
State
& state,
bool
includeCurrentTime)
const
;
143
150
PeriodicEventReporter
(
Real
eventInterval);
151
156
Real
getEventInterval()
const
;
157
162
void
setEventInterval(
Real
eventInterval);
163
private
:
164
PeriodicEventReporterImpl* impl;
165
};
166
167
}
// namespace SimTK
168
169
#endif // SimTK_SimTKCOMMON_EVENT_REPORTER_H_
SimTKcommon
Simulation
include
SimTKcommon
internal
EventReporter.h
Generated on Tue Dec 2 2014 13:13:23 for Simbody by
1.8.1.2