SLProject  4.3.020
A platform independent 3D computer graphics framework for desktop OS, Android, iOS and online in web browsers
SENSSimHelper.h
Go to the documentation of this file.
1 #ifndef SENS_SIMHELPER_H
2 #define SENS_SIMHELPER_H
3 
4 #include <SENSSimulator.h>
5 #include <SENSRecorder.h>
6 
8 {
9 public:
10  //The camera pointer has to be used as reference
14  const std::string& simDataDir,
15  std::function<void(void)> cameraParametersChangedCB);
17 
18  bool startRecording();
19  void stopRecording();
20  void updateGpsRecording();
22  void updateCameraRecording();
23  bool recorderIsRunning();
24  void resetRecorder();
25  bool getRecorderErrors(std::vector<std::string>& errorMsgs);
26 
27  bool canSimGps();
28  bool canSimOrientation();
29  bool canSimCamera();
30 
31  void initSimulator(const std::string& simDataSet);
32  bool simIsRunning();
33  void updateGpsSim();
34  void updateOrientationSim();
35  void updateCameraSim();
36  bool getSimulatorErrors(std::vector<std::string>& errorMsgs);
37 
38  void stopSim();
39  void startSim();
40  bool isPausedSim();
41  void pauseSim();
42  void resumeSim();
45 
46  SENSGps* gps() const { return _gpsRef; }
48  SENSCamera* camera() const { return _cameraRef; }
49  const std::string& simDataDir() const { return _simDataDir; }
50 
51  bool recordGps = false;
52  bool recordOrientation = false;
53  bool recordCamera = false;
54 
55  bool simulateGps = false;
56  bool simulateOrientation = false;
57  bool simulateCamera = false;
58 
59 private:
60  void restoreInputSensors();
62 
63  std::unique_ptr<SENSSimulator> _simulator;
64  std::unique_ptr<SENSRecorder> _recorder;
65 
69 
73 
74  std::string _simDataDir;
75 
76  //callback to inform about new camera parameter (e.g. intrinsics for scene and tracking)
77  std::function<void(void)> _cameraParametersChangedCB;
78 };
79 
80 #endif
std::chrono::microseconds SENSMicroseconds
Definition: SENS.h:58
std::chrono::high_resolution_clock::time_point SENSTimePt
Definition: SENS.h:57
typedef void(SL_STDCALL *cbOnImGuiBuild)(SLScene *s
Callback function typedef for ImGui build function.
Pure abstract camera class.
Definition: SENSCamera.h:160
SENSRecorder * recorder()
bool canSimOrientation()
SENSCamera * _cameraIn
Definition: SENSSimHelper.h:68
SENSOrientation *& _orientationRef
Definition: SENSSimHelper.h:71
bool getRecorderErrors(std::vector< std::string > &errorMsgs)
SENSTimePt simTime()
SENSGps * _gpsIn
Definition: SENSSimHelper.h:66
SENSOrientation * orientation() const
Definition: SENSSimHelper.h:47
void updateOrientationRecording()
SENSGps * gps() const
Definition: SENSSimHelper.h:46
SENSCamera *& _cameraRef
Definition: SENSSimHelper.h:72
bool getSimulatorErrors(std::vector< std::string > &errorMsgs)
std::string _simDataDir
Definition: SENSSimHelper.h:74
std::unique_ptr< SENSSimulator > _simulator
Definition: SENSSimHelper.h:63
void updateCameraSim()
void stopRecording()
void updateOrientationSim()
bool simulateOrientation
Definition: SENSSimHelper.h:56
SENSGps *& _gpsRef
Definition: SENSSimHelper.h:70
bool recordOrientation
Definition: SENSSimHelper.h:52
void initSimulator(const std::string &simDataSet)
std::unique_ptr< SENSRecorder > _recorder
Definition: SENSSimHelper.h:64
SENSCamera * camera() const
Definition: SENSSimHelper.h:48
SENSMicroseconds passedSimTime()
void restoreInputSensors()
bool recorderIsRunning()
SENSOrientation * _orientationIn
Definition: SENSSimHelper.h:67
void updateGpsRecording()
std::function< void(void)> _cameraParametersChangedCB
Definition: SENSSimHelper.h:77
void updateCameraRecording()
bool startRecording()
SENSSimHelper(SENSGps *&gps, SENSOrientation *&orientation, SENSCamera *&camera, const std::string &simDataDir, std::function< void(void)> cameraParametersChangedCB)
const std::string & simDataDir() const
Definition: SENSSimHelper.h:49