Allgemeines einstellungsdock, verschiedenes anderes
git-svn-id: http://svn.lsim.tuxzone.org/trunk@15 4bec179b-ab65-46ed-a5f8-55b8b5c735d0
This commit is contained in:
@@ -93,6 +93,7 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) {
|
|||||||
|
|
||||||
//startpunkt in den Pfad setzen
|
//startpunkt in den Pfad setzen
|
||||||
flightPath = QPainterPath(startPoint);
|
flightPath = QPainterPath(startPoint);
|
||||||
|
int path_entry_step = ceil(steps/5000.0); //jeder entry_step(te) step wird eingetragen
|
||||||
|
|
||||||
int debugTime = 0;
|
int debugTime = 0;
|
||||||
time_t start_time = time(0);
|
time_t start_time = time(0);
|
||||||
@@ -125,7 +126,8 @@ void GraphicsEllipseItem::calculateProbePath(QPointF startPoint) {
|
|||||||
currProbePath->append(newPoint);
|
currProbePath->append(newPoint);
|
||||||
speedListX->append(newspeedX);
|
speedListX->append(newspeedX);
|
||||||
speedListY->append(newspeedY);
|
speedListY->append(newspeedY);
|
||||||
flightPath.lineTo(newPoint);
|
|
||||||
|
if (i%path_entry_step == 0 || i==steps) flightPath.lineTo(newPoint);
|
||||||
|
|
||||||
}
|
}
|
||||||
qDebug()<< difftime(time(0),start_time);
|
qDebug()<< difftime(time(0),start_time);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ HomoBFieldItem::HomoBFieldItem(QRectF sizeRect): FieldItem() {
|
|||||||
setOuterPenWidth (2);
|
setOuterPenWidth (2);
|
||||||
dockWidget = new HomoBFieldWidget(0,0,this);
|
dockWidget = new HomoBFieldWidget(0,0,this);
|
||||||
setIsDirectionIntoPlane(true);
|
setIsDirectionIntoPlane(true);
|
||||||
setFluxDensity(233);
|
setFluxDensity(2e-5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ HomoEFieldItem::HomoEFieldItem(QRectF sizeRect)
|
|||||||
: FieldItem() {
|
: FieldItem() {
|
||||||
setRectF(sizeRect);
|
setRectF(sizeRect);
|
||||||
dockWidget = new HomoEFieldWidget(0,0,this);
|
dockWidget = new HomoEFieldWidget(0,0,this);
|
||||||
setFieldPower(2.8e+3);
|
setFieldPower(10);
|
||||||
setFieldLineDistance(10);
|
setFieldLineDistance(10);
|
||||||
setFlag(ItemIsMovable);
|
setFlag(ItemIsMovable);
|
||||||
setFlag(ItemIsSelectable);
|
setFlag(ItemIsSelectable);
|
||||||
|
|||||||
136
src/lsim.cpp
136
src/lsim.cpp
@@ -27,10 +27,12 @@
|
|||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QActionGroup>
|
#include <QActionGroup>
|
||||||
|
#include <QGroupBox>
|
||||||
#include <QDoubleSpinBox>
|
#include <QDoubleSpinBox>
|
||||||
#include <QListView>
|
#include <QListView>
|
||||||
#include <QStringListModel>
|
#include <QStringListModel>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
|
#include <QGridLayout>
|
||||||
#include "expdoublespinbox.h"
|
#include "expdoublespinbox.h"
|
||||||
#include "homoefieldwidget.h"
|
#include "homoefieldwidget.h"
|
||||||
|
|
||||||
@@ -78,6 +80,10 @@ void lsim::createActions() {
|
|||||||
acts.oglDisable->setStatusTip (tr ("OGL aus"));
|
acts.oglDisable->setStatusTip (tr ("OGL aus"));
|
||||||
connect (acts.oglDisable, SIGNAL (triggered()), gview, SLOT (disableOGLViewport()));
|
connect (acts.oglDisable, SIGNAL (triggered()), gview, SLOT (disableOGLViewport()));
|
||||||
|
|
||||||
|
acts.calculate = new QAction (tr ("Berechnen"), this);
|
||||||
|
acts.calculate->setStatusTip (tr ("Flugbahn berechnen"));
|
||||||
|
connect (acts.calculate, SIGNAL (triggered()), simulscene, SLOT (startCalculation()));
|
||||||
|
|
||||||
acts.timerStart = new QAction (tr ("Timer Start"), this);
|
acts.timerStart = new QAction (tr ("Timer Start"), this);
|
||||||
acts.timerStart->setStatusTip (tr ("Timer starten"));
|
acts.timerStart->setStatusTip (tr ("Timer starten"));
|
||||||
connect (acts.timerStart, SIGNAL (triggered()), simulscene, SLOT (startTimer()));
|
connect (acts.timerStart, SIGNAL (triggered()), simulscene, SLOT (startTimer()));
|
||||||
@@ -117,14 +123,16 @@ void lsim::createActions() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void lsim::createMenus() {
|
void lsim::createMenus() {
|
||||||
fileMenu = menuBar()->addMenu("Datei");
|
fileMenu = menuBar()->addMenu(tr("Datei"));
|
||||||
fileMenu->addAction(acts.oglEnable);
|
|
||||||
fileMenu->addAction(acts.oglDisable);
|
|
||||||
fileMenu->addSeparator();
|
|
||||||
fileMenu->addAction(acts.exitAct);
|
fileMenu->addAction(acts.exitAct);
|
||||||
menuBar()->addMenu("Bearbeiten");
|
menuBar()->addMenu(tr("Bearbeiten"));
|
||||||
menuBar()->addMenu("Ansicht");
|
|
||||||
menuBar()->addMenu("Einstellungen");
|
viewMenu = menuBar()->addMenu(tr("Ansicht"));
|
||||||
|
viewMenu->addAction(acts.oglDisable);
|
||||||
|
viewMenu->addAction(acts.oglEnable);
|
||||||
|
|
||||||
|
menuBar()->addMenu(tr("Einstellungen"));
|
||||||
|
|
||||||
|
|
||||||
helpMenu = menuBar()->addMenu (tr ("&Help"));
|
helpMenu = menuBar()->addMenu (tr ("&Help"));
|
||||||
@@ -135,20 +143,21 @@ void lsim::createMenus() {
|
|||||||
|
|
||||||
void lsim::createToolBars() {
|
void lsim::createToolBars() {
|
||||||
fileToolBar = addToolBar (tr ("File"));
|
fileToolBar = addToolBar (tr ("File"));
|
||||||
fileToolBar->addAction(acts.oglEnable);
|
fileToolBar->addAction(acts.calculate);
|
||||||
fileToolBar->addAction(acts.oglDisable);
|
fileToolBar->addSeparator();
|
||||||
|
fileToolBar->addAction(acts.timerStart);
|
||||||
|
fileToolBar->addAction(acts.timerStop);
|
||||||
|
|
||||||
|
|
||||||
editToolBar = addToolBar (tr ("Edit"));
|
editToolBar = addToolBar (tr ("Edit"));
|
||||||
editToolBar->addAction(acts.timerStart);
|
|
||||||
editToolBar->addAction(acts.timerStop);
|
|
||||||
editToolBar->addSeparator();
|
|
||||||
editToolBar->addAction(acts.itemEditModeAct);
|
editToolBar->addAction(acts.itemEditModeAct);
|
||||||
editToolBar->addAction(acts.insertEFieldItemAct);
|
editToolBar->addAction(acts.insertEFieldItemAct);
|
||||||
editToolBar->addAction(acts.insertBFieldItemAct);
|
editToolBar->addAction(acts.insertBFieldItemAct);
|
||||||
}
|
}
|
||||||
|
|
||||||
void lsim::createStatusBar() {
|
void lsim::createStatusBar() {
|
||||||
statusBar()->showMessage (tr ("Ready"));
|
statusBar()->showMessage (tr ("Willkommen zu lsim"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void lsim::createScene() {
|
void lsim::createScene() {
|
||||||
@@ -157,48 +166,91 @@ void lsim::createScene() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void lsim::createDocks() {
|
void lsim::createDocks() {
|
||||||
QPushButton *button1 = new QPushButton("Loeschen");
|
|
||||||
QPushButton *button2 = new QPushButton("calculate");
|
|
||||||
|
|
||||||
|
//steps box
|
||||||
|
QSpinBox *steps_box = new QSpinBox;
|
||||||
|
steps_box->setRange(1, 2e+6);
|
||||||
|
steps_box->setKeyboardTracking(false);
|
||||||
|
steps_box->setValue(simulscene->getSteps());
|
||||||
|
connect(steps_box, SIGNAL(valueChanged(int)),simulscene, SLOT(setSteps(int)));
|
||||||
|
connect(simulscene, SIGNAL(stepsChanged(int)),steps_box, SLOT(setValue(int)));
|
||||||
|
|
||||||
|
//time Per step Box
|
||||||
ExpDoubleSpinBox *time_step_box = new ExpDoubleSpinBox;
|
ExpDoubleSpinBox *time_step_box = new ExpDoubleSpinBox;
|
||||||
time_step_box->setRange(-pow(10,66), pow(10,66));
|
time_step_box->setRange(-pow(10,-100), pow(10,66));
|
||||||
time_step_box->setDecimals(30);
|
time_step_box->setDecimals(100);
|
||||||
time_step_box->setDisplayDecimals(10);
|
time_step_box->setDisplayDecimals(3);
|
||||||
time_step_box->setKeyboardTracking(false);
|
time_step_box->setKeyboardTracking(false);
|
||||||
|
time_step_box->setSuffix(" ms");
|
||||||
time_step_box->setValue(simulscene->getTimePerStep());
|
time_step_box->setValue(simulscene->getTimePerStep());
|
||||||
connect(time_step_box, SIGNAL(valueChanged(double)),simulscene, SLOT(setTimePerStep(double)));
|
connect(time_step_box, SIGNAL(valueChanged(double)),simulscene, SLOT(setTimePerStep(double)));
|
||||||
connect(simulscene, SIGNAL(timePerStepChanged(double)),time_step_box, SLOT(setValue( double )));
|
connect(simulscene, SIGNAL(timePerStepChanged(double)),time_step_box, SLOT(setValue( double )));
|
||||||
|
|
||||||
|
|
||||||
|
//meterPerPixel Box
|
||||||
ExpDoubleSpinBox *meter_per_px_box = new ExpDoubleSpinBox;
|
ExpDoubleSpinBox *meter_per_px_box = new ExpDoubleSpinBox;
|
||||||
meter_per_px_box->setRange(-pow(10,66), pow(10,66));
|
meter_per_px_box->setRange(pow(10,-100), pow(10,66));
|
||||||
meter_per_px_box->setDecimals(30);
|
meter_per_px_box->setDecimals(100);
|
||||||
meter_per_px_box->setDisplayDecimals(10);
|
meter_per_px_box->setDisplayDecimals(3);
|
||||||
|
meter_per_px_box->setSuffix(" m");
|
||||||
meter_per_px_box->setKeyboardTracking(false);
|
meter_per_px_box->setKeyboardTracking(false);
|
||||||
meter_per_px_box->setValue(simulscene->getMeterPerPx());
|
meter_per_px_box->setValue(simulscene->getMeterPerPx());
|
||||||
connect(meter_per_px_box, SIGNAL(valueChanged(double)),simulscene, SLOT(setMeterPerPx(double)));
|
connect(meter_per_px_box, SIGNAL(valueChanged(double)),simulscene, SLOT(setMeterPerPx(double)));
|
||||||
connect(simulscene, SIGNAL(meterPerPxChanged(double)),meter_per_px_box, SLOT(setValue( double )));
|
connect(simulscene, SIGNAL(meterPerPxChanged(double)),meter_per_px_box, SLOT(setValue( double )));
|
||||||
|
|
||||||
QSlider *slider1 = new QSlider();
|
//FlugbahnAnzeigeBox
|
||||||
slider1->setMinimum(0);
|
QCheckBox *flight_path_box = new QCheckBox("");
|
||||||
slider1->setMaximum(360);
|
flight_path_box->setChecked(simulscene->isFlightPathVisible());
|
||||||
|
connect(flight_path_box, SIGNAL(toggled(bool)),simulscene, SLOT(setFlightPathVisible(bool)));
|
||||||
|
connect(simulscene, SIGNAL(flightPathVisibilityChanged(bool)),flight_path_box, SLOT(setChecked(bool)));
|
||||||
|
|
||||||
connect (button1, SIGNAL(clicked()) , simulscene, SLOT(deleteSelectedFieldItems()));
|
//timer laenge Box
|
||||||
connect (button2, SIGNAL(clicked()) , simulscene, SLOT(startCalculation()));
|
QSpinBox *timer_box = new QSpinBox;
|
||||||
|
timer_box->setRange(1, 1e+10);
|
||||||
|
timer_box->setKeyboardTracking(false);
|
||||||
|
timer_box->setValue(simulscene->getTimeLineDuration());
|
||||||
|
timer_box->setSuffix(" ms");
|
||||||
|
connect(timer_box, SIGNAL(valueChanged(int)),simulscene, SLOT(setTimeLineDuration(int)));
|
||||||
|
connect(simulscene, SIGNAL(timeLineDurationChanged(int)),timer_box, SLOT(setValue(int)));
|
||||||
|
|
||||||
QVBoxLayout *layout = new QVBoxLayout;
|
|
||||||
layout->addWidget(button1);
|
|
||||||
layout->addWidget(button2);
|
|
||||||
layout->addWidget(slider1);
|
|
||||||
layout->addWidget(time_step_box);
|
|
||||||
layout->addWidget(meter_per_px_box);
|
|
||||||
QWidget *widget2 = new QWidget;
|
|
||||||
widget2->setLayout(layout);
|
|
||||||
|
|
||||||
//HomoEFieldWidget *eFieldOpt = new HomoEFieldWidget(0,0,qgraphicsitem_cast<HomoEFieldItem *>(simulscene->items().first()));
|
//description labels
|
||||||
//HomoEFieldItem *homoitem = new HomoEFieldItem(QRectF(44,44,99,99));
|
QLabel *time_per_step_label = new QLabel(tr("Zeit pro Schritt:"));
|
||||||
|
QLabel *steps_label = new QLabel(tr("Schritte:"));
|
||||||
|
QLabel *meter_per_pixel_label = new QLabel(tr("Ein Pixel entspricht:"));
|
||||||
|
QLabel *flight_path_label = new QLabel(tr("Flugbahn anzeigen:"));
|
||||||
|
QLabel *timer_label = new QLabel(tr("L\344nge der Animation:"));
|
||||||
|
|
||||||
|
//Scene settings Layout
|
||||||
|
QGridLayout *sceneGridLayout = new QGridLayout;
|
||||||
|
sceneGridLayout->addWidget(steps_label,0,0,Qt::AlignRight);
|
||||||
|
sceneGridLayout->addWidget(steps_box,0,1);
|
||||||
|
sceneGridLayout->addWidget(time_per_step_label,1,0,Qt::AlignRight);
|
||||||
|
sceneGridLayout->addWidget(time_step_box,1,1);
|
||||||
|
sceneGridLayout->addWidget(meter_per_pixel_label,2,0,Qt::AlignRight);
|
||||||
|
sceneGridLayout->addWidget(meter_per_px_box,2,1);
|
||||||
|
sceneGridLayout->addWidget(flight_path_label,3,0,Qt::AlignRight);
|
||||||
|
sceneGridLayout->addWidget(flight_path_box,3,1);
|
||||||
|
sceneGridLayout->addWidget(timer_label,4,0,Qt::AlignRight);
|
||||||
|
sceneGridLayout->addWidget(timer_box,4,1);
|
||||||
|
|
||||||
|
QGroupBox *sceneGroupBox = new QGroupBox(tr("Allgemeines"));
|
||||||
|
sceneGroupBox->setLayout(sceneGridLayout);
|
||||||
|
|
||||||
|
QVBoxLayout *allgVBoxLayout = new QVBoxLayout();
|
||||||
|
allgVBoxLayout->addWidget(sceneGroupBox);
|
||||||
|
allgVBoxLayout->addStretch();
|
||||||
|
|
||||||
|
QWidget *allgWidget = new QWidget;
|
||||||
|
allgWidget->setLayout(allgVBoxLayout);
|
||||||
|
|
||||||
|
sceneDock = new QDockWidget(tr("Allgemeines"), this);
|
||||||
|
sceneDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||||
|
sceneDock->setWidget((allgWidget));
|
||||||
|
addDockWidget(Qt::LeftDockWidgetArea, sceneDock);
|
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
|
||||||
fieldItemEditDock = new QDockWidget(tr("Feldeinstellungen"), this);
|
fieldItemEditDock = new QDockWidget(tr("Feldeinstellungen"), this);
|
||||||
fieldItemEditDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
fieldItemEditDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
||||||
@@ -207,11 +259,6 @@ void lsim::createDocks() {
|
|||||||
connect (simulscene, SIGNAL(selectionChanged ()) , this, SLOT(updateDockFieldWidget()));
|
connect (simulscene, SIGNAL(selectionChanged ()) , this, SLOT(updateDockFieldWidget()));
|
||||||
updateDockFieldWidget();
|
updateDockFieldWidget();
|
||||||
|
|
||||||
dock_2 = new QDockWidget(tr("Ein Testdock 2"), this);
|
|
||||||
dock_2->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::BottomDockWidgetArea);
|
|
||||||
dock_2->setWidget((widget2));
|
|
||||||
addDockWidget(Qt::LeftDockWidgetArea, dock_2);
|
|
||||||
|
|
||||||
|
|
||||||
probeItemDock = new QDockWidget(tr("Probleladung"), this);
|
probeItemDock = new QDockWidget(tr("Probleladung"), this);
|
||||||
probeItemDock->setWidget(simulscene->getProbeDockWidget());
|
probeItemDock->setWidget(simulscene->getProbeDockWidget());
|
||||||
@@ -219,8 +266,8 @@ void lsim::createDocks() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
tabifyDockWidget(dock_2,fieldItemEditDock);
|
tabifyDockWidget(probeItemDock,fieldItemEditDock);
|
||||||
tabifyDockWidget(fieldItemEditDock, probeItemDock);
|
tabifyDockWidget(fieldItemEditDock, sceneDock);
|
||||||
setDockOptions(QMainWindow::VerticalTabs);
|
setDockOptions(QMainWindow::VerticalTabs);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -254,6 +301,7 @@ void lsim::setSceneMode(int mode) {
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
lsim::~lsim() {
|
lsim::~lsim() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ class lsim: public QMainWindow {
|
|||||||
QMenu *fileMenu;
|
QMenu *fileMenu;
|
||||||
QMenu *editMenu;
|
QMenu *editMenu;
|
||||||
QMenu *helpMenu;
|
QMenu *helpMenu;
|
||||||
|
QMenu *viewMenu;
|
||||||
|
|
||||||
QToolBar *fileToolBar;
|
QToolBar *fileToolBar;
|
||||||
QToolBar *editToolBar;
|
QToolBar *editToolBar;
|
||||||
@@ -78,6 +79,7 @@ class lsim: public QMainWindow {
|
|||||||
QAction *aboutQtAct;
|
QAction *aboutQtAct;
|
||||||
QAction *oglEnable;
|
QAction *oglEnable;
|
||||||
QAction *oglDisable;
|
QAction *oglDisable;
|
||||||
|
QAction *calculate;
|
||||||
QAction *timerStart;
|
QAction *timerStart;
|
||||||
QAction *timerStop;
|
QAction *timerStop;
|
||||||
|
|
||||||
@@ -93,7 +95,7 @@ class lsim: public QMainWindow {
|
|||||||
|
|
||||||
QDockWidget *fieldItemEditDock;
|
QDockWidget *fieldItemEditDock;
|
||||||
QDockWidget *probeItemDock;
|
QDockWidget *probeItemDock;
|
||||||
QDockWidget *dock_2;
|
QDockWidget *sceneDock;
|
||||||
|
|
||||||
SimulScene *simulscene;
|
SimulScene *simulscene;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -39,10 +39,10 @@
|
|||||||
|
|
||||||
SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) {
|
SimulScene::SimulScene ( QObject* parent ) : QGraphicsScene ( parent ) {
|
||||||
//variablen initialisieren
|
//variablen initialisieren
|
||||||
setTimePerStep(0.00001);
|
setTimePerStep(1e-7);
|
||||||
setSteps(210000);
|
setSteps(300000);
|
||||||
//setMeterPerPx(1/1000.0);
|
//setMeterPerPx(1/1000.0);
|
||||||
setMeterPerPx(1);
|
setMeterPerPx(0.01);
|
||||||
|
|
||||||
currHomoEfieldInsertItem = 0;
|
currHomoEfieldInsertItem = 0;
|
||||||
currHomoEfieldEditItem = 0;
|
currHomoEfieldEditItem = 0;
|
||||||
@@ -587,7 +587,7 @@ void SimulScene::setTimePerStep(double time) {
|
|||||||
void SimulScene::startCalculation() {
|
void SimulScene::startCalculation() {
|
||||||
pathItem1->setPath(QPainterPath());
|
pathItem1->setPath(QPainterPath());
|
||||||
|
|
||||||
//Feld Item Listen erzeugen
|
//Feld Item Listen erzeugen (viel schneller, als jedes mal items(point) durchlaufen)
|
||||||
calcEFieldList.clear();
|
calcEFieldList.clear();
|
||||||
calcBFieldList.clear();
|
calcBFieldList.clear();
|
||||||
for(int i = 0; i < items().size(); ++i) {
|
for(int i = 0; i < items().size(); ++i) {
|
||||||
@@ -607,7 +607,6 @@ void SimulScene::startCalculation() {
|
|||||||
pathItem1->setPath(ellipse1->getFlightPath());
|
pathItem1->setPath(ellipse1->getFlightPath());
|
||||||
|
|
||||||
//animationspfad berechnen
|
//animationspfad berechnen
|
||||||
time_t anitimeb = time(0);
|
|
||||||
ani->clear();
|
ani->clear();
|
||||||
int currSteps = ellipse1->getCurrProbePath()->count();
|
int currSteps = ellipse1->getCurrProbePath()->count();
|
||||||
int entry_step = ceil(currSteps/2500.0); //jeder entry_step(te) step wird eingetragen
|
int entry_step = ceil(currSteps/2500.0); //jeder entry_step(te) step wird eingetragen
|
||||||
@@ -616,10 +615,7 @@ void SimulScene::startCalculation() {
|
|||||||
if (i%entry_step == 0 || i==currSteps) {
|
if (i%entry_step == 0 || i==currSteps) {
|
||||||
ani->setPosAt(i/(double)currSteps, ellipse1->getCurrProbePath()->at(i) );
|
ani->setPosAt(i/(double)currSteps, ellipse1->getCurrProbePath()->at(i) );
|
||||||
}
|
}
|
||||||
//qDebug()<< getSteps();
|
|
||||||
}
|
}
|
||||||
time_t anitimea = time(0);
|
|
||||||
qDebug()<< "animationszeit" <<difftime(anitimea,anitimeb);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -748,6 +744,21 @@ QWidget* SimulScene::getProbeDockWidget() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SimulScene::setFlightPathVisible(bool visible) {
|
void SimulScene::setFlightPathVisible(bool visible) {
|
||||||
|
if(pathItem1->isVisible() == visible) return;
|
||||||
pathItem1->setVisible(visible);
|
pathItem1->setVisible(visible);
|
||||||
emit flightPathVisibilityChanged(visible);
|
emit flightPathVisibilityChanged(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SimulScene::isFlightPathVisible() {
|
||||||
|
return pathItem1->isVisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SimulScene::setTimeLineDuration(int duration) {
|
||||||
|
if(timer->duration() == duration) return;
|
||||||
|
timer->setDuration(duration);
|
||||||
|
emit timeLineDurationChanged(duration);
|
||||||
|
}
|
||||||
|
|
||||||
|
int SimulScene::getTimeLineDuration() {
|
||||||
|
return timer->duration();
|
||||||
|
}
|
||||||
@@ -59,6 +59,9 @@ class SimulScene : public QGraphicsScene {
|
|||||||
|
|
||||||
QWidget* getProbeDockWidget() const;
|
QWidget* getProbeDockWidget() const;
|
||||||
|
|
||||||
|
bool isFlightPathVisible();
|
||||||
|
int getTimeLineDuration();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void setSceneMode(SceneMode mode);
|
void setSceneMode(SceneMode mode);
|
||||||
void startTimer();
|
void startTimer();
|
||||||
@@ -72,6 +75,8 @@ class SimulScene : public QGraphicsScene {
|
|||||||
void setMeterPerPx ( double theValue );
|
void setMeterPerPx ( double theValue );
|
||||||
double getMeterPerPx() const;
|
double getMeterPerPx() const;
|
||||||
void setFlightPathVisible(bool visible = true);
|
void setFlightPathVisible(bool visible = true);
|
||||||
|
void setTimeLineDuration(int duration);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
@@ -85,6 +90,7 @@ class SimulScene : public QGraphicsScene {
|
|||||||
void timePerStepChanged(double timePerStep);
|
void timePerStepChanged(double timePerStep);
|
||||||
void meterPerPxChanged(double meterPerPx);
|
void meterPerPxChanged(double meterPerPx);
|
||||||
void flightPathVisibilityChanged(bool visible);
|
void flightPathVisibilityChanged(bool visible);
|
||||||
|
void timeLineDurationChanged(int duration);
|
||||||
private:
|
private:
|
||||||
QTimeLine *timer;
|
QTimeLine *timer;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user