From 28bd7ec12b1887b86704f3a1db34b49f548fc207 Mon Sep 17 00:00:00 2001 From: Eric Squires Date: Mon, 1 Mar 2021 12:39:22 -0500 Subject: [PATCH] allow setting initial scale of aircraft in a mission file (#511) --- docs/source/overview/xml-tags.rst | 2 ++ include/scrimmage/viewer/Updater.h | 2 ++ include/scrimmage/viewer/Viewer.h | 2 ++ src/viewer/Updater.cpp | 2 +- src/viewer/Viewer.cpp | 3 +++ 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/source/overview/xml-tags.rst b/docs/source/overview/xml-tags.rst index 88801a9886..ace75f8ba2 100644 --- a/docs/source/overview/xml-tags.rst +++ b/docs/source/overview/xml-tags.rst @@ -331,3 +331,5 @@ and match between the two paradigms for a single entity. - ``controller`` : whether to enable or disable running controller plugins in threads (``default = true``) - ``motion`` : whether to enable or disable running motion plugins in threads (``default = true``) - ``sensor`` : whether to enable or disable running sensor plugins in threads (``default = true``) + +- ``scale``: the initial scale of the vehicles in the gui (``default = 1.0``) diff --git a/include/scrimmage/viewer/Updater.h b/include/scrimmage/viewer/Updater.h index 59de127d45..ee573fd793 100644 --- a/include/scrimmage/viewer/Updater.h +++ b/include/scrimmage/viewer/Updater.h @@ -171,6 +171,7 @@ class Updater : public vtkCommand { const double &z); void reset_scale(); + void set_init_scale(double init_scale) {init_scale_ = init_scale;} void set_reset_camera(); void set_camera_reset_params(double pos_x, double pos_y, double pos_z, @@ -351,6 +352,7 @@ class Updater : public vtkCommand { bool show_helpmenu_; double label_scale_ = 0.3; + double init_scale_ = 1.0; }; } // namespace scrimmage diff --git a/include/scrimmage/viewer/Viewer.h b/include/scrimmage/viewer/Viewer.h index 317a95a3de..f867397766 100644 --- a/include/scrimmage/viewer/Viewer.h +++ b/include/scrimmage/viewer/Viewer.h @@ -87,6 +87,8 @@ class Viewer { int local_port_ = 50051; std::string remote_ip_ = "localhost"; int remote_port_ = 50052; + + double init_scale_ = 1.0; }; } // namespace scrimmage diff --git a/src/viewer/Updater.cpp b/src/viewer/Updater.cpp index fc76bf8ff7..72bbfa2b29 100644 --- a/src/viewer/Updater.cpp +++ b/src/viewer/Updater.cpp @@ -1527,7 +1527,7 @@ void Updater::inc_follow_offset() {follow_offset_ *= 1.1;} void Updater::dec_follow_offset() {follow_offset_ /= 1.1;} void Updater::reset_scale() { - scale_ = 1.0; + scale_ = init_scale_; scale_required_ = true; } diff --git a/src/viewer/Viewer.cpp b/src/viewer/Viewer.cpp index 317d3a864b..5d400dde58 100644 --- a/src/viewer/Viewer.cpp +++ b/src/viewer/Viewer.cpp @@ -93,6 +93,7 @@ bool Viewer::init(const std::shared_ptr& mp, renderWindow_->SetFullScreen(false); renderWindow_->SetSize(mp->window_width(), mp->window_height()); } + init_scale_ = get("scale", mp->params(), 1.0); log_dir_ = mp->log_dir(); dt_ = mp->dt(); @@ -134,6 +135,8 @@ bool Viewer::run() { updater->set_incoming_interface(incoming_interface_); updater->set_outgoing_interface(outgoing_interface_); updater->set_max_update_rate(update_rate); + updater->set_init_scale(init_scale_); + updater->reset_scale(); std::string camera_pos_str = get("pos", camera_params_, "0, 1, 200");