1 #ifndef VTESTBED_GUI_TESTBEDGUI_HH 2 #define VTESTBED_GUI_TESTBEDGUI_HH 4 #include <vtestbed/core/macros.hh> 5 #include <vtestbed/core/types.hh> 6 #include <vtestbed/core/testbed.hh> 7 #include <vtestbed/graphics/AxisSurface.hh> 8 #include <vtestbed/graphics/ShipCompartments.hh> 9 #include <vtestbed/graphics/ShipHullObject.hh> 10 #include <vtestbed/graphics/WavySurfaceObject.hh> 11 #include <vtestbed/graphics/WindFieldObject.hh> 12 #include <vtestbed/gui/ApplicationBase.hh> 13 #include <vtestbed/gui/CircularLineBuffer.hh> 14 #include <vtestbed/gui/RootWindow.hh> 15 #include <vtestbed/gui/ScreenRecorder.hh> 17 VTB_WARNING_IGNORE_PUSH(
"-Wnon-virtual-dtor")
34 using vec3 = vtb::core::Vector3<T>;
44 DrawableGroup3D _drawables;
47 Float _zFar = 10000.0f;
49 bool _recording =
false;
50 bool _recordThisFrame =
false;
56 const Arguments& arguments,
57 const Configuration& conf,
66 setNearFar(Float zNear, Float zFar) {
71 inline ScreenRecorder* screenRecorder() {
return this->_screenRecorder.get(); }
74 this->_screenRecorder.reset(rhs);
77 void startScreenRecorder();
78 void recording(
bool rhs);
79 inline void stopScreenRecorder() { this->_screenRecorder.reset(); }
80 inline Vector2i windowSize() {
return this->ApplicationBase::windowSize(); }
92 void drawEvent()
override;
93 void keyPressEvent(KeyEvent& event)
override;
98 void primitiveShipHull();
99 Matrix4 earthFixedTransfomationMatrix(
const testbed_type& testbed)
const;
100 inline const Matrix4 earth_fixed_matrix()
const {
return this->_efmatrix; }
101 inline DrawableGroup3D* drawables() {
return &this->_drawables; }
111 #endif // vim:filetype=cpp
Main class for interacting with virtual testbed via GUI.