VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
shapeObjectDefinitionDialog.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 
10 #pragma once
11 
12 #if !defined(Q_MOC_RUN)
13 #include <vrvUtil/signalslib.h>
17 #include "shapeObjectDefinitionWidgetUi.hpp"
21 #endif
22 #include <boost/signals2.hpp>
23 
24 #include <QtWidgets/QItemDelegate>
25 #include <QtWidgets/QTableWidget>
26 
27 class DtReferenceEllipsoid;
28 class QDialog;
29 class QDoubleValidator;
30 class QRegExpValidator;
31 class DtSetDataRequest;
32 
33 namespace makVrf
34 {
35  class DtOverlayParentEntryWidget;
36  class DtEmbarkationWidget;
37  class DtShapeObjectDefinitionDialog;
38  class DtVrfObjectManipulationHandlerBaseClass;
39  class DtHeadingEntryWidget;
40  class DtExtendedLabelsEntryWidget;
41  class DtForceSelectionEntryWidget;
42  class DtShapeValidatingTableWidget;
43  class DtAltitudeEntryWidget;
44 
49  {
50 
51  public:
52 
55 
58 
60  virtual void createConnections();
61 
63  virtual void terminateConnections();
64 
66  virtual void processLocationEdited(int currentRow=-1);
67 
69  virtual void processSelectLocation(int);
70 
72  virtual void processAddNewPoint();
73 
75  virtual void processRemovePoint(int index);
76 
78  virtual void processObjectCreation();
79 
81  virtual void processObjectUpdate();
82 
84  virtual void processDoneRequest();
85 
87  virtual void processCloseRequest();
88 
90  virtual void processCellEdited(int, int);
91 
92  virtual void onAltitudeSet(int, int);
93 
95  virtual void processCellEntered(int, int);
96 
98  virtual void processNamePrefixEdited();
99 
101  virtual void processLabelEdited(const std::string& name);
102 
104  virtual void processExtendedLabelsEdited(const std::map<int, DtString>& name);
105 
107  virtual void processItemSelectionChanged();
108 
112  virtual void processPopulateDialog(const makVrv::DtUniqueID& id );
113 
114  virtual void headingChanged();
115 
116  virtual bool inGeocentric() const;
117 
119  virtual void setupGui();
120 
122  virtual void updateLocations(const std::vector<DtGeodeticCoord>& locs);
123 
125  virtual bool isLine() const;
126 
128  virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd);
129 
131  virtual void populateOverlays();
132 
133  virtual void setForce(int);
134 
136  virtual void processAltitudeTypeChanged();
137 
138  virtual void attachToMouseChanged(bool b);
139 
140  virtual DtGeodeticCoord convertToGeodetic(const DtVector&) const;
141  virtual DtVector convertToLocal(const DtGeodeticCoord&) const;
142 
143  virtual void adjustAltitudesBy(double);
144  virtual void setAltitudesTo(DtAltitudeClampType, double);
145 
147  virtual void processItemAdded(int);
148 
151  virtual void showTerrainProfile();
152 
154  virtual void slot_pointSamplingRateChanged(int);
155 
157  virtual void slot_lineWidthChanged(int);
158 
160  virtual void slot_penStyleChanged(int);
161 
163  virtual void slot_arrowDataChanged(const std::string& s);
164 
166  virtual void slot_fillDataChanged(int);
167 
168  virtual int fillStyle() const;
169 
170  virtual void slot_onFloorChanged(double);
171  virtual void slot_onCeilingChanged(double);
172  virtual void slot_onFloorSet(double);
173  virtual void slot_onCeilingSet(double);
174 
176  virtual void reversePoints();
177  virtual void updateButtons();
178 
179  virtual void setActivationTime();
180 
182  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
183 
184  virtual void setupLabels();
185 
186  protected:
187 
189  virtual void closeDialog();
190 
191  virtual void slot_headingChangedByMouse(double headingInDeg);
192 
194  virtual void slot_onMouseLocationChanged(const DtVector& loc);
195 
197  virtual void slot_onMouseAltitudeChanged(double heading);
198 
200  virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler);
201 
203  virtual void slot_onPlacement(const DtVector& loc);
204 
206  virtual void slot_onColorChanged(int);
207 
209  virtual void slot_onLocationAdded(const DtVector& loc);
210 
212  virtual void slot_onOverlayNameChanged(const std::string& name);
213 
215  virtual void slot_onForceChanged(int);
216 
217  virtual void objectCreated();
218 
219  virtual void slot_onCoordinateSystemChanged(
221  virtual void slot_onDisplayUnitDecimalsChanged(int);
222 
223  virtual void slot_onUnitChanged(int attribute, int from);
224 
225  virtual void restoreLocations();
226  virtual void backupLocations();
227 
228 
230  virtual void setupActivationTime(const DtSetDataRequest& setReq);
231 
233  virtual void slot_onPublishObjectChanged(bool);
234 
235  protected:
236 
239  DtReferenceEllipsoid* myReferenceForConversion;
242  std::vector<DtGeodeticCoord> myBackupLocations;
244  };
245 
246 
251  {
252 
253  Q_OBJECT
254 
255  public:
256 
258  DtShapeObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const QString& title="", DtDialogInteractionMode mode=DtCreationMode);
259 
262 
263  virtual void init(const DtEntityType&, const QString& title, bool forPlan,
265 
267  virtual void closeDialog();
268 
270  virtual void setLocationInGridFor(int row, const DtGeodeticCoord&,
273 
275  virtual bool validateDMS(const std::string& str) const;
276 
278  virtual void addLocation(const DtVector& loc, int index = -1);
279 
281  virtual void setEmbarkationAllowed( bool flag );
282 
283  virtual void clear();
284 
286  virtual void removePoint(int);
287 
289  virtual void setUseInputValidation(bool b);
290 
292  virtual void insertLocation(int index, const DtVector& loc);
293 
295  virtual void selectLocation(int index);
296 
298  virtual DtGeodeticCoord getLocation(int index);
299 
301  virtual QString getName();
302 
304  virtual void hideDialog();
305 
307  virtual int selectedPointIndex() const;
308 
310  virtual int rowCount() const;
311 
313  virtual void setAltitudeAboveTerrain(bool);
314 
316  virtual bool altitudeAboveTerrain() const;
317 
319  virtual void setAttachedToMouseVisible(bool);
320 
322  virtual void setName(const QString& name);
323 
325  virtual void setLabel(const QString& name);
326 
328  virtual void setExtendedLabels(const std::map<int, DtString>& lab);
329 
331  virtual void setLabelEntryVisible(bool);
332 
334  virtual void setNameVisible(bool flag);
335 
337  virtual void setSetActivationTimeVisible(bool flag);
338 
340  virtual void setTitle(const QString& title);
341 
343  virtual void setCreateButtonEnabled(bool flag);
344 
345  virtual void setAdjustStyleEnabled(bool);
346 
348  virtual void setCreateButtonText(const QString& text);
349 
351  virtual void setCreateButtonVisible(bool flag);
352 
354  virtual void setUpdateButtonEnabled(bool flag);
355 
357  virtual void setUpdateButtonVisible(bool flag);
358 
360  virtual void setAllowOverlaySelection(bool flag);
361 
363  virtual void setUpdateButtonText(const QString& text);
364 
366  virtual void setDoneButtonEnabled(bool flag);
367 
369  virtual void setDoneButtonVisible(bool flag);
370 
372  virtual void setShowFloorCeiling(bool);
373 
375  virtual void setFloor(double);
376  virtual double floor() const;
377  virtual void setFloorLabel(const QString&);
378  boost::signals2::signal<void (double)> signal_floorChanged;
379 
380  virtual void setCeiling(double);
381  virtual double ceiling() const;
382  virtual void setCeilingLabel(const QString&);
383  boost::signals2::signal<void (double)> signal_ceilingChanged;
384 
385  virtual void hideForces();
386 
388  virtual void setUpButtonVisible(bool flag);
389 
391  virtual void setDownButtonVisible(bool flag);
392 
394  virtual void setAddPointButtonVisible(bool flag);
395 
397  virtual void setAddPointButtonEnabled(bool flag);
398 
400  virtual void setAdjustAltitudeButtonVisible(bool flag);
401 
403  virtual void setAdjustAltitudeButtonEnabled(bool flag);
404 
406  virtual void setRemovePointButtonVisible(bool flag);
407 
409  virtual void setRemovePointButtonEnabled(bool flag);
410 
412  virtual void setShowStyleButton(bool flag);
413 
415  virtual void setShowColorButton(bool flag);
416 
418  virtual void setControlButtonsVisible(bool flag);
419 
421  virtual void setAttachObjectToMouse(bool);
422 
424  virtual DtDialogInteractionMode interactionMode();
425 
427  virtual void populate(const makVrv::DtUniqueID&);
428 
430  virtual void populate(const DtCreateObjectCommand* cmd);
431 
433  virtual bool blockSignals(bool);
434 
436  virtual void addOverlay(const QString& name, bool translate = true);
437 
439  virtual void removeOverlay(const QString& name);
440 
442  virtual void renameOverlay(const QString& oldName, const QString& newName);
443 
445  virtual void setOverlay(const QString& name);
446 
448  virtual void setPublishObjectVisible(bool);
449 
451  virtual void setPublishObject(bool);
452  virtual bool publishObject() const;
453 
455  virtual void clearOverlays();
456 
458  virtual void populateOverlays();
459 
461  virtual void setAltitudeAboveTerrain(int row, double alt);
462 
463  bool attachedToMouse() const;
464 
467  virtual double altitude(int) const;
468 
470  virtual void setAltitude(int, double, bool blocked = false);
471 
473  virtual void setAltitudeAllowed(bool);
474  virtual bool disallowsAltitudeAdjustmentBasedOnObjectCharacteristics() const;
475  bool altitudeAllowed() const
476  {
477  return myAltitudeAllowed;
478  }
479 
480  bool altitudeShown() const
481  {
482  return myAltitudeShown;
483  }
484 
486  virtual void setShowForces(bool);
487 
489  virtual void setReadOnly(bool);
490 
492  virtual void setReadOnly(int, bool);
493 
494  virtual void setColor(unsigned int color);
495 
496  virtual void setXLabel(const QString&);
497  virtual void setYLabel(const QString&);
498  virtual void setZLabel(const QString&);
499  virtual void adjustAltitudeAdjustmentDialogLabels();
500 
501  virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
503 
505  virtual void setAllowHeadingChange(bool);
506 
508  virtual void setHeading(double);
509 
511  virtual double heading() const;
512 
514  virtual void refreshLocs();
515  virtual void refreshAltitudes();
516  virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
517 
518  virtual void clearSelection();
519 
521  virtual void setForce(int force);
522 
524  virtual void addExtension(QWidget*);
525 
527  virtual void removeExtension(QWidget*);
528 
530  virtual void showPropertiesDialog(bool);
531 
533  virtual void setTerrainProfileButtonEnabled(bool);
534  virtual void setTerrainProfileButtonVisible(bool);
535 
537  virtual void includeSpacer(bool);
538  virtual bool extendedLabelsValid() const;
539 
541  virtual void setEmbarkationWidgetVisible( bool flag );
542 
544  {
545  return myEmbarkationWidget;
546  }
547 
548  virtual QSize minimumSizeHint() const;
549 
550  protected:
551 
555  virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
558 
560  virtual void setupGui();
561 
563  virtual void setupConnections();
564 
566  virtual void closeEvent(QCloseEvent *event);
567 
572  virtual QDialog* createAltitudeAdjustmentDialog();
573 
575  virtual DtShapeObjectDefinitionDialogLogic* createLogic();
576  virtual bool showAlpha() const;
577 
578  virtual void showEvent(QShowEvent*);
579 
580  virtual void getDistanceAndAltitudeDecimals(int& decimals, int& altDecimals);
581 
582  public slots:
583 
585  virtual void slot_onShapeLocationsCellChanged(int, int);
586 
588  virtual void slot_altitudeTypeChanged();
589 
590  protected slots:
591  virtual void slot_onFloorChanged();
592  virtual void slot_onCeilingChanged();
593  virtual void slot_onReversePoints();
594  virtual void slot_onSetActivationTime();
595  virtual void slot_onLabelEdited();
596  virtual void slot_onExtendedLabelsEdited();
597  virtual void slot_itemSelectionChanged();
598  virtual void slot_onCreateButtonClicked();
599  virtual void slot_onUpdateButtonClicked();
600  virtual void slot_onDoneButtonClicked();
601  virtual void slot_onNamePrefixEdited();
602  virtual void slot_closePressed();
603  virtual void slot_onBtnMoveDownClicked();
604  virtual void slot_onBtnMoveUpClicked();
605  virtual void slot_onBtnAddPointClicked();
606  virtual void slot_onBtnRemovePointClicked();
607  virtual void slot_onShapeLocationsCellEntered( int, int);
608  virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
609  virtual void slot_onForceComboCurrentIndexChanged(int index);
610  virtual void slot_attachedToMouseChanged();
611  virtual void slot_onAdjustAltitudeClicked();
612  virtual void slot_onShowTerrainProfile();
613  virtual void slot_onPublishObjectChanged();
614  virtual void slot_onBtnColorClicked();
615  virtual void slot_onBtnStyleClicked();
616 
617  public:
618 
619  Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
628 
629  protected:
637  QWidget* myParent;
638  unsigned int myBackgroundColor;
639  DtEntityType myEditingType;
640  };
641 
643  {
644  public:
645  virtual DtCreateAndEditObjectDialogInterface* createDialog(makVrv::DtDe& de, QWidget* parent, const QString& title,
647 
648  virtual void initializeDialog(makVrv::DtDe& de, DtCreateAndEditObjectDialogInterface*, const DtEntityType& entityType,
650  const DtEditingType& editType);
651  };
652 
654  {
655  public:
657  virtual ~DtShapeTableValidator();
658 
659  protected:
660  virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
661  const QModelIndex &index) const;
662 
663  protected:
666  QDoubleValidator* myDoubleValidator;
667  QDoubleValidator* myLatValidator;
668  QDoubleValidator* myLonValidator;
670  };
671 
673  {
674  public:
676  virtual ~DtShapeValidatingTableWidget();
677 
679  virtual void commitData(QWidget *editor);
680  virtual bool validateDMS(const std::string&) const;
681 
682  protected:
684  };
685 }
DtEntityType myEditingType
Definition: shapeObjectDefinitionDialog.h:639
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:683
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:57
Definition: createAndEditObjectDialogInterface.h:121
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: shapeObjectDefinitionDialog.h:383
bool myActivationTimeVisible
Definition: shapeObjectDefinitionDialog.h:630
Definition: shapeObjectDefinitionDialog.h:672
Represents a new kind of dock widget: it has a &quot;pin&quot; button that allows the widget to pin/unpin from ...
Definition: autoHideDock.h:34
makVrv::DtSharedDisplayUnitsSettings::CoordSys myCoordSys
Definition: shapeObjectDefinitionDialog.h:241
Simple line text entry widget that will allow the user to enter an altitude value.
Definition: altitudeEntryWidget.h:25
DtShapeObjectDefinitionDialog * myInterface
Definition: shapeObjectDefinitionDialog.h:238
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
unsigned int myBackgroundColor
Definition: shapeObjectDefinitionDialog.h:638
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:240
DtSimCommand subclass for creating a new VrfObjects.
Definition: createObjectCommand.h:36
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:44
This class implements the logic behind the DtShapeObjectDefinitionDialog.
Definition: shapeObjectDefinitionDialog.h:48
Definition: createAndEditObjectDialogInterface.h:29
QDialog * myAltitudeAdjustmentDialog
Definition: shapeObjectDefinitionDialog.h:636
bool altitudeShown() const
Definition: shapeObjectDefinitionDialog.h:480
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
DtDialogInteractionMode myInteractionMode
Definition: shapeObjectDefinitionDialog.h:632
QDoubleValidator * myLatValidator
Definition: shapeObjectDefinitionDialog.h:667
bool myAltitudeShown
Definition: shapeObjectDefinitionDialog.h:635
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:664
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:53
Contains the DtSharedDisplayUnitsSettings class declaration.
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:237
DtEmbarkationWidget * embarkationWidget()
Definition: shapeObjectDefinitionDialog.h:543
DtSetDataRequest is an abstract base class from which real setDataRequests can derive.
Definition: setDataRequest.h:40
DtShapeValidatingTableWidget * myShapeLocations
Definition: shapeObjectDefinitionDialog.h:622
Widget that allows the selection of an overlay.
Definition: overlayParentEntryWidget.h:35
Simple widget that, if a location is set, will see if there is an entity under that location...
Definition: embarkationWidget.h:36
std::vector< DtGeodeticCoord > myBackupLocations
Definition: shapeObjectDefinitionDialog.h:242
DtAltitudeEntryWidget * myFloor
Definition: shapeObjectDefinitionDialog.h:624
Definition: vrfObjectManipulationHandlerBaseClass.h:88
DtOverlayParentEntryWidget * myOverlaysCombo
Definition: shapeObjectDefinitionDialog.h:627
bool myBlockSignals
Definition: shapeObjectDefinitionDialog.h:633
Simple line text entry widget that will allow the user to enter a heading value.
Definition: headingEntryWidget.h:26
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Ui_ShapeObjectDefinitionWidgetUi myUiImpl
Definition: shapeObjectDefinitionDialog.h:619
makVrv::DtSignalConnectionManager myConnectionManager
Definition: shapeObjectDefinitionDialog.h:243
DtAltitudeEntryWidget * myCeiling
Definition: shapeObjectDefinitionDialog.h:625
boost::signals2::signal< void(double)> signal_floorChanged
Definition: shapeObjectDefinitionDialog.h:378
DtDialogInteractionMode
Definition: createAndEditObjectDialogInterface.h:34
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Definition: DtDisplayUnitsSettingsRecord.h:40
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:634
DtHeadingEntryWidget * myHeading
Definition: shapeObjectDefinitionDialog.h:620
QDoubleValidator * myLonValidator
Definition: shapeObjectDefinitionDialog.h:668
Definition: shapeObjectDefinitionDialog.h:642
Base class to provide boost signal/slot management.
DtForceSelectionEntryWidget * myForces
Definition: shapeObjectDefinitionDialog.h:621
DtShapeObjectDefinitionDialogLogic * myLogic
Definition: shapeObjectDefinitionDialog.h:631
DtEmbarkationWidget * myEmbarkationWidget
Definition: shapeObjectDefinitionDialog.h:626
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const char int mode
Definition: ioapi.h:38
QRegExpValidator * myRegValidator
Definition: shapeObjectDefinitionDialog.h:665
Widget that will allow for entry of label and any extended labels.
Definition: extendedLabelsEntryWidget.h:30
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtExtendedLabelsEntryWidget * myExtendedLabelsEntryWidget
Definition: shapeObjectDefinitionDialog.h:623
Contains the DtDisplayUnitsSettingsRecord class declaration.
This class defines the dialog that allows the creation/update of point objects in the scenario (entit...
Definition: shapeObjectDefinitionDialog.h:250
QDoubleValidator * myDoubleValidator
Definition: shapeObjectDefinitionDialog.h:666
DtReferenceEllipsoid * myReferenceForConversion
Definition: shapeObjectDefinitionDialog.h:239
Definition: shapeObjectDefinitionDialog.h:653
Definition: DtDisplayUnitsSettingsRecord.h:60
DtCreationSignalType
Definition: vrfObjectManipulationHandlerBaseClass.h:71
bool altitudeAllowed() const
Definition: shapeObjectDefinitionDialog.h:475
QWidget * myParent
Definition: shapeObjectDefinitionDialog.h:637
DtShapeObjectDefinitionDialog * myParent
Definition: shapeObjectDefinitionDialog.h:669
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:38

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)