pxmlw6n2f/Gazebo_Distributed_MPI/gazebo/gui/LogPlayWidgetPrivate.hh

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