138 lines
3.8 KiB
C++
138 lines
3.8 KiB
C++
/*
|
|
* Copyright (C) 2015 Open Source Robotics Foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*/
|
|
#ifndef _GAZEBO_LOG_PLAY_WIDGET_PRIVATE_HH_
|
|
#define _GAZEBO_LOG_PLAY_WIDGET_PRIVATE_HH_
|
|
|
|
#include "gazebo/gui/qt.h"
|
|
|
|
namespace gazebo
|
|
{
|
|
namespace gui
|
|
{
|
|
/// \internal
|
|
/// \brief Private data for the LogPlayWidget class
|
|
class LogPlayWidgetPrivate
|
|
{
|
|
/// \brief Paused state of the simulation.
|
|
public: bool paused;
|
|
|
|
/// \brief Paused state of the simulation.
|
|
public: TimePanel *timePanel;
|
|
|
|
/// \brief Log start time.
|
|
public: common::Time startTime;
|
|
|
|
/// \brief Log end time.
|
|
public: common::Time endTime;
|
|
|
|
/// \brief Log current time.
|
|
public: common::Time currentTime;
|
|
|
|
/// \brief If log is less than 1 hour long.
|
|
public: bool lessThan1h;
|
|
|
|
/// \brief View which containes the timeline.
|
|
public: LogPlayView *view;
|
|
|
|
/// \brief Node used for communication.
|
|
public: transport::NodePtr node;
|
|
|
|
/// \brief Used to start, stop, and step simulation.
|
|
public: transport::PublisherPtr logPlaybackControlPub;
|
|
|
|
/// \brief Spin box which holds the step size.
|
|
public: QSpinBox *stepSpin;
|
|
|
|
/// \brief Button to play.
|
|
public: QToolButton *playButton;
|
|
|
|
/// \brief Button to pause.
|
|
public: QToolButton *pauseButton;
|
|
|
|
/// \brief Button to step back.
|
|
public: QToolButton *stepBackButton;
|
|
|
|
/// \brief Button to step forward.
|
|
public: QToolButton *stepForwardButton;
|
|
|
|
/// \brief Button to rewind.
|
|
public: QToolButton *rewindButton;
|
|
|
|
/// \brief Button to jump forward.
|
|
public: QToolButton *forwardButton;
|
|
|
|
/// \brief Widget to edit the current day.
|
|
public: QLineEdit *currentDayEdit;
|
|
|
|
/// \brief Widget to edit the current hour.
|
|
public: QLineEdit *currentHourEdit;
|
|
|
|
/// \brief Widget to edit the current minute.
|
|
public: QLineEdit *currentMinuteEdit;
|
|
|
|
/// \brief Widget to edit the current second.
|
|
public: QLineEdit *currentSecondEdit;
|
|
|
|
/// \brief Label for the day unit.
|
|
public: QLabel *dayLabel;
|
|
|
|
/// \brief Label for the hour unit.
|
|
public: QLabel *hourLabel;
|
|
|
|
/// \brief Label for the hour separator.
|
|
public: QLabel *hourSeparator;
|
|
|
|
/// \brief Number of steps pending to be published once the simulation
|
|
/// is paused.
|
|
public: int pendingStep = 0;
|
|
};
|
|
|
|
/// \class LogPlayViewPrivate LogPlayViewPrivate.hh
|
|
/// \brief Private data for the LogPlayView class
|
|
class LogPlayViewPrivate
|
|
{
|
|
/// \brief Item which indicates the current time.
|
|
public: CurrentTimeItem *currentTimeItem;
|
|
|
|
/// \brief Start time in milliseconds.
|
|
public: common::Time startTime;
|
|
|
|
/// \brief End time in milliseconds.
|
|
public: common::Time endTime;
|
|
|
|
/// \brief Log start time has been set or not.
|
|
public: bool startTimeSet;
|
|
|
|
/// \brief Log end time has been set or not.
|
|
public: bool endTimeSet;
|
|
|
|
/// \brief Width of this view's scene.
|
|
public: int sceneWidth;
|
|
|
|
/// \brief Height of this view's scene.
|
|
public: int sceneHeight;
|
|
|
|
/// \brief Margin from the ends.
|
|
public: int margin;
|
|
|
|
/// \brief Whether the timeline has already been drawn.
|
|
public: bool timelineDrawn = false;
|
|
};
|
|
}
|
|
}
|
|
#endif
|