Allolib
1.0
C++ Components For Interactive Multimedia
al_SimulationDomain.hpp
1
#ifndef SIMULATIONDOMAIN_H
2
#define SIMULATIONDOMAIN_H
3
4
#include <cassert>
5
#include <functional>
6
#include <iostream>
7
#include <memory>
8
#include <mutex>
9
#include <stack>
10
#include <vector>
11
12
#include "al/app/al_ComputationDomain.hpp"
13
14
namespace
al
{
15
21
class
SimulationDomain
:
public
SynchronousDomain
{
22
public
:
23
virtual
bool
tick
()
override
;
24
25
void
disableProcessingCallback();
26
std::function<void(
double
dt)> simulationFunction = [](double) {
27
};
// function to be called in onAnimate()
28
29
private
:
30
bool
mUseCallback{
true
};
31
};
32
33
// -------------
34
38
template
<
class
TSharedState>
39
class
StateSimulationDomain
:
public
SimulationDomain
{
40
public
:
41
TSharedState &state() {
return
*mState; }
42
43
std::shared_ptr<TSharedState> statePtr() {
return
mState; }
44
45
protected
:
46
std::shared_ptr<TSharedState> mState{
new
TSharedState};
47
};
48
49
}
// namespace al
50
51
#endif
// SIMULATIONDOMAIN
al::SimulationDomain
Basic simulation domain providing a simulationFunction.
Definition:
al_SimulationDomain.hpp:21
al::SimulationDomain::tick
virtual bool tick() override
Execute a pass of the domain.
al::StateSimulationDomain
Definition:
al_SimulationDomain.hpp:39
al::SynchronousDomain
Definition:
al_ComputationDomain.hpp:165
al
Definition:
al_App.hpp:23
C:
Users
Andres
source
repos
casm_viewer
external
tinc
external
allolib
include
al
app
al_SimulationDomain.hpp
Generated on Thu Apr 8 2021 13:24:23 for Allolib by
1.9.1