The DtSetSpeedAndHeadingDialog is a Qt Widget-derived object that defines a dialog box. This dialog box allows the user to enter in the heading and speed of the selected objects.
#include <QtGui/QLineEdit>
#include <QtGui/QLabel>
#include <QtGui/QLayout>
#include <QtGui/QValidator>
#include <matrix/vlMath.h>
#include <matrix/topoCoord.h>
#include "../addSetSim/setSpeedAndHeading.h"
#include <boost/bind.hpp>
using namespace makVrf;
namespace vrfAddSetExample
{
DtSetSpeedAndHeadingDialog::DtSetSpeedAndHeadingDialog(
makVrv::DtDe& de,
QWidget* parent,
const Qt::WindowFlags& flags)
, myValidator(0)
{
setWindowTitle(tr("Speed And Heading"));
}
DtSetSpeedAndHeadingDialog::~DtSetSpeedAndHeadingDialog()
{
delete myValidator;
}
{
myContentLayout = new QGridLayout(myCanvas);
myOrderedSpeedLabel =
new QLabel(tr(
"Ordered Speed (m/s):"), myCanvas);
myContentLayout->addWidget(myOrderedSpeedLabel, 0, 0);
myOrderedSpeed->setText("0.00");
myValidator = new QDoubleValidator(myOrderedSpeed);
myOrderedSpeed->setValidator(myValidator);
myContentLayout->addWidget(myOrderedSpeed, 0, 1);
myHeadingLabel =
new QLabel(tr(
"Heading (deg.):"), myCanvas);
myContentLayout->addWidget(myHeadingLabel, 1, 0);
myHeading->setText("0.00");
myValidator = new QDoubleValidator(myHeading);
myHeading->setValidator(myValidator);
myContentLayout->addWidget(myHeading, 1, 1);
return myCanvas;
}
void DtSetSpeedAndHeadingDialog::setHeading(double d)
{
myHeading->setText(QString::number(d));
}
double DtSetSpeedAndHeadingDialog::heading() const
{
return myHeading->text().toFloat();
}
void DtSetSpeedAndHeadingDialog::setSpeed(double d)
{
myOrderedSpeed->setText(QString::number(d));
}
double DtSetSpeedAndHeadingDialog::speed() const
{
return myOrderedSpeed->text().toFloat();
}
{
}
{
return (DtSetSpeedAndHeadingRequest().type() == t);
}
{
DtSetSpeedAndHeadingRequest set;
set.init();
set.setHeading(DtDeg2Rad(heading()));
set.setSpeed(speed());
sendSetRequest(set);
close();
}
{
DtBaseTaskSetDialogInterface::setupGui(data);
if (data.size() == 1)
{
if (state)
{
DtGeodeticCoord geodetic;
DtCoordTransform geocToTopo;
DtGeocToTopoTransform(geodetic.lat(), geodetic.lon(), &geocToTopo);
DtTaitBryan topoEuler;
setHeading(DtRad2Deg(topoEuler.psi()));
}
}
}
{
{
{
DtSetSpeedAndHeadingRequest* col =
dynamic_cast<DtSetSpeedAndHeadingRequest*
>(setStmt->
setDataRequest());
if (col)
{
setHeading(DtRad2Deg(col->heading()));
setSpeed(col->speed());
}
}
}
}
}