VR-Forces 4.10 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 DtAngleEntryWidget;
40  class DtExtendedLabelsEntryWidget;
41  class DtForceSelectionEntryWidget;
42  class DtShapeValidatingTableWidget;
43  class DtAltitudeEntryWidget;
44  class DtSimpleDoubleVariableWidget;
45 
50  {
51 
52  public:
53 
56 
59 
61  virtual void createConnections();
62 
64  virtual void terminateConnections();
65 
67  virtual void processLocationEdited(int currentRow=-1);
68 
70  virtual void processSelectLocation(int);
71 
73  virtual void processAddNewPoint();
74 
76  virtual void processRemovePoint(int index);
77 
79  virtual void processObjectCreation();
80 
82  virtual void processObjectUpdate();
83 
85  virtual void processDoneRequest();
86 
88  virtual void processCloseRequest();
89 
91  virtual void processCellEdited(int, int);
92 
93  virtual void onAltitudeSet(int, int);
94 
96  virtual void processCellEntered(int, int);
97 
99  virtual void processNamePrefixEdited();
100 
102  virtual void processLabelEdited(const std::string& name);
103 
105  virtual void processExtendedLabelsEdited(const std::map<int, DtString>& name);
106 
108  virtual void processItemSelectionChanged();
109 
113  virtual void processPopulateDialog(const makVrv::DtUniqueID& id );
114 
115  virtual void headingChanged();
116 
117  virtual bool inGeocentric() const;
118 
120  virtual void setupGui();
121 
123  virtual void updateLocations(const std::vector<DtGeodeticCoord>& locs);
124 
126  virtual bool isLine() const;
127 
129  virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd);
130 
132  virtual void populateOverlays();
133 
134  virtual void setForce(int);
135 
137  virtual void processAltitudeTypeChanged();
138 
139  virtual void attachToMouseChanged(bool b);
140 
141  virtual DtGeodeticCoord convertToGeodetic(const DtVector&) const;
142  virtual DtVector convertToLocal(const DtGeodeticCoord&) const;
143 
144  virtual void adjustAltitudesBy(double);
145  virtual void setAltitudesTo(DtAltitudeClampType, double);
146 
148  virtual void processItemAdded(int);
149 
152  virtual void showTerrainProfile();
153 
155  virtual void slot_pointSamplingRateChanged(int);
156 
158  virtual void slot_lineWidthChanged(int);
159 
161  virtual void slot_penStyleChanged(int);
162 
164  virtual void slot_arrowDataChanged(const std::string& s);
165 
167  virtual void slot_fillDataChanged(int);
168 
169  virtual int fillStyle() const;
170 
171  virtual void slot_onFloorChanged(double);
172  virtual void slot_onCeilingChanged(double);
173  virtual void slot_onFloorSet(double);
174  virtual void slot_onCeilingSet(double);
175 
177  virtual void reversePoints();
178  virtual void updateButtons();
179 
180  virtual void setActivationTime();
181 
183  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
184 
185  virtual void setupLabels();
186 
187  protected:
188 
190  virtual void closeDialog();
191 
192  virtual void slot_headingChangedByMouse(double headingInDeg);
193 
195  virtual void slot_onMouseLocationChanged(const DtVector& loc);
196 
198  virtual void slot_onMouseAltitudeChanged(double heading);
199 
201  virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler);
202 
204  virtual void slot_onPlacement(const DtVector& loc);
205 
207  virtual void slot_onColorChanged(int);
208 
210  virtual void slot_onLocationAdded(const DtVector& loc);
211 
213  virtual void slot_onOverlayNameChanged(const std::string& name);
214 
216  virtual void slot_onForceChanged(int);
217 
218  virtual void objectCreated();
219 
220  virtual void slot_onCoordinateSystemChanged(
222  virtual void slot_onDisplayUnitDecimalsChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int newUnit);
223 
224  virtual void slot_onUnitChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int newUnit, int oldUnit);
225 
226  virtual void restoreLocations();
227  virtual void backupLocations();
228 
229 
231  virtual void setupActivationTime(const DtSetDataRequest& setReq);
232 
234  virtual void slot_onPublishObjectChanged(bool);
235 
236  protected:
237 
240  DtReferenceEllipsoid* myReferenceForConversion;
243  std::vector<DtGeodeticCoord> myBackupLocations;
245  };
246 
247 
252  {
253 
254  Q_OBJECT
255 
256  public:
257 
259  DtShapeObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const QString& title="", DtDialogInteractionMode mode=DtCreationMode);
260 
263 
264  virtual void init(const DtEntityType&, const QString& title, bool forPlan,
266 
268  virtual void closeDialog();
269 
271  virtual void setLocationInGridFor(int row, const DtGeodeticCoord&,
274 
276  virtual bool validateDMS(const std::string& str) const;
277 
279  virtual void addLocation(const DtVector& loc, int index = -1);
280 
282  virtual void setEmbarkationAllowed( bool flag );
283 
284  virtual void clear();
285 
287  virtual void removePoint(int);
288 
290  virtual void setUseInputValidation(bool b);
291 
293  virtual void insertLocation(int index, const DtVector& loc);
294 
296  virtual void selectLocation(int index);
297 
299  virtual DtGeodeticCoord getLocation(int index);
300 
302  virtual QString getName();
303 
305  virtual void hideDialog();
306 
308  virtual int selectedPointIndex() const;
309 
311  virtual int rowCount() const;
312 
314  virtual void setAltitudeAboveTerrain(bool);
315 
317  virtual bool altitudeAboveTerrain() const;
318 
320  virtual void setAttachedToMouseVisible(bool);
321 
323  virtual void setName(const QString& name);
324 
326  virtual void setLabel(const QString& name);
327 
329  virtual void setExtendedLabels(const std::map<int, DtString>& lab);
330 
332  virtual void setLabelEntryVisible(bool);
333 
335  virtual void setNameVisible(bool flag);
336 
338  virtual void setSetActivationTimeVisible(bool flag);
339 
341  virtual void setTitle(const QString& title);
342 
344  virtual void setCreateButtonEnabled(bool flag);
345 
346  virtual void setAdjustStyleEnabled(bool);
347 
349  virtual void setCreateButtonText(const QString& text);
350 
352  virtual void setCreateButtonVisible(bool flag);
353 
355  virtual void setUpdateButtonEnabled(bool flag);
356 
358  virtual void setUpdateButtonVisible(bool flag);
359 
361  virtual void setAllowOverlaySelection(bool flag);
362 
364  virtual void setUpdateButtonText(const QString& text);
365 
367  virtual void setDoneButtonEnabled(bool flag);
368 
370  virtual void setDoneButtonVisible(bool flag);
371 
373  virtual void setShowFloorCeiling(bool);
374 
376  virtual void setFloor(double);
377  virtual double floor() const;
378  virtual void setFloorLabel(const QString&);
379 
381  virtual void setFloorIsDistance(bool);
382 
383  boost::signals2::signal<void (double)> signal_floorChanged;
384 
385  virtual void setCeiling(double);
386  virtual double ceiling() const;
387  virtual void setCeilingLabel(const QString&);
388  boost::signals2::signal<void (double)> signal_ceilingChanged;
389 
390  virtual void hideForces();
391 
393  virtual void setUpButtonVisible(bool flag);
394 
396  virtual void setDownButtonVisible(bool flag);
397 
399  virtual void setAddPointButtonVisible(bool flag);
400 
402  virtual void setAddPointButtonEnabled(bool flag);
403 
405  virtual void setAdjustAltitudeButtonVisible(bool flag);
406 
408  virtual void setAdjustAltitudeButtonEnabled(bool flag);
409 
411  virtual void setRemovePointButtonVisible(bool flag);
412 
414  virtual void setRemovePointButtonEnabled(bool flag);
415 
417  virtual void setShowStyleButton(bool flag);
418 
420  virtual void setShowColorButton(bool flag);
421 
423  virtual void setControlButtonsVisible(bool flag);
424 
426  virtual void setAttachObjectToMouse(bool);
427 
429  virtual DtDialogInteractionMode interactionMode();
430 
432  virtual void populate(const makVrv::DtUniqueID&);
433 
435  virtual void populate(const DtCreateObjectCommand* cmd);
436 
438  virtual bool blockSignals(bool);
439 
441  virtual void addOverlay(const QString& name, bool translate = true);
442 
444  virtual void removeOverlay(const QString& name);
445 
447  virtual void renameOverlay(const QString& oldName, const QString& newName);
448 
450  virtual void setOverlay(const QString& name);
451 
453  virtual void setPublishObjectVisible(bool);
454 
456  virtual void setPublishObject(bool);
457  virtual bool publishObject() const;
458 
460  virtual void clearOverlays();
461 
463  virtual void populateOverlays();
464 
466  virtual void setAltitudeAboveTerrain(int row, double alt);
467 
468  bool attachedToMouse() const;
469 
472  virtual double altitude(int) const;
473 
475  virtual void setAltitude(int, double, bool blocked = false);
476 
478  virtual void setAltitudeAllowed(bool);
479  virtual bool disallowsAltitudeAdjustmentBasedOnObjectCharacteristics() const;
480  bool altitudeAllowed() const
481  {
482  return myAltitudeAllowed;
483  }
484 
485  bool altitudeShown() const
486  {
487  return myAltitudeShown;
488  }
489 
491  virtual void setShowForces(bool);
492 
494  virtual void setReadOnly(bool);
495 
497  virtual void setReadOnly(int, bool);
498 
499  virtual void setColor(unsigned int color);
500 
501  virtual void setXLabel(const QString&);
502  virtual void setYLabel(const QString&);
503  virtual void setZLabel(const QString&);
504  virtual void adjustAltitudeAdjustmentDialogLabels();
505 
506  virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
508 
510  virtual void setAllowHeadingChange(bool);
511 
513  virtual void setHeading(double);
514 
516  virtual double heading() const;
517 
519  virtual void refreshLocs();
520  virtual void refreshAltitudes();
521  virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
522 
523  virtual void clearSelection();
524 
526  virtual void setForce(int force);
527 
529  virtual void addExtension(QWidget*);
530 
532  virtual void removeExtension(QWidget*);
533 
535  virtual void showPropertiesDialog(bool);
536 
538  virtual void setTerrainProfileButtonEnabled(bool);
539  virtual void setTerrainProfileButtonVisible(bool);
540 
542  virtual void includeSpacer(bool);
543  virtual bool extendedLabelsValid() const;
544 
546  virtual void setEmbarkationWidgetVisible( bool flag );
547 
549  {
550  return myEmbarkationWidget;
551  }
552 
553  virtual QSize minimumSizeHint() const;
554 
555  protected:
556 
560  virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
563 
565  virtual void setupGui();
566 
568  virtual void setupConnections();
569 
571  virtual void closeEvent(QCloseEvent *event);
572 
577  virtual QDialog* createAltitudeAdjustmentDialog();
578 
580  virtual DtShapeObjectDefinitionDialogLogic* createLogic();
581  virtual bool showAlpha() const;
582 
583  virtual void showEvent(QShowEvent*);
584 
585  virtual void getDistanceAndAltitudeDecimals(int& decimals, int& altDecimals);
586 
587  public slots:
588 
590  virtual void slot_onShapeLocationsCellChanged(int, int);
591 
593  virtual void slot_altitudeTypeChanged();
594 
595  protected slots:
596  virtual void slot_onFloorChanged();
597  virtual void slot_onCeilingChanged();
598  virtual void slot_onReversePoints();
599  virtual void slot_onSetActivationTime();
600  virtual void slot_onLabelEdited();
601  virtual void slot_onExtendedLabelsEdited();
602  virtual void slot_itemSelectionChanged();
603  virtual void slot_onCreateButtonClicked();
604  virtual void slot_onUpdateButtonClicked();
605  virtual void slot_onDoneButtonClicked();
606  virtual void slot_onNamePrefixEdited();
607  virtual void slot_closePressed();
608  virtual void slot_onBtnMoveDownClicked();
609  virtual void slot_onBtnMoveUpClicked();
610  virtual void slot_onBtnAddPointClicked();
611  virtual void slot_onBtnRemovePointClicked();
612  virtual void slot_onShapeLocationsCellEntered( int, int);
613  virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
614  virtual void slot_onForceComboCurrentIndexChanged(int index);
615  virtual void slot_attachedToMouseChanged();
616  virtual void slot_onAdjustAltitudeClicked();
617  virtual void slot_onShowTerrainProfile();
618  virtual void slot_onPublishObjectChanged();
619  virtual void slot_onBtnColorClicked();
620  virtual void slot_onBtnStyleClicked();
621 
622  public:
623 
624  Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
633 
634  protected:
642  QWidget* myParent;
643  unsigned int myBackgroundColor;
644  DtEntityType myEditingType;
646  };
647 
649  {
650  public:
651  virtual DtCreateAndEditObjectDialogInterface* createDialog(makVrv::DtDe& de, QWidget* parent, const QString& title,
653 
654  virtual void initializeDialog(makVrv::DtDe& de, DtCreateAndEditObjectDialogInterface*, const DtEntityType& entityType,
656  const DtEditingType& editType);
657  };
658 
660  {
661  public:
663  virtual ~DtShapeTableValidator();
664 
665  protected:
666  virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
667  const QModelIndex &index) const;
668 
669  protected:
672  QDoubleValidator* myDoubleValidator;
673  QDoubleValidator* myLatValidator;
674  QDoubleValidator* myLonValidator;
676  };
677 
679  {
680  public:
682  virtual ~DtShapeValidatingTableWidget();
683 
685  virtual void commitData(QWidget *editor);
686  virtual bool validateDMS(const std::string&) const;
687 
688  protected:
690  };
691 }
DtEntityType myEditingType
Definition: shapeObjectDefinitionDialog.h:644
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:689
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:57
bool myShowCeilingFloor
Definition: shapeObjectDefinitionDialog.h:645
Definition: createAndEditObjectDialogInterface.h:121
A unicode string.
Definition: DtUnicode.h:33
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: shapeObjectDefinitionDialog.h:388
bool myActivationTimeVisible
Definition: shapeObjectDefinitionDialog.h:635
Definition: shapeObjectDefinitionDialog.h:678
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:242
Simple line text entry widget that will allow the user to enter an altitude value.
Definition: altitudeEntryWidget.h:25
DtShapeObjectDefinitionDialog * myInterface
Definition: shapeObjectDefinitionDialog.h:239
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
unsigned int myBackgroundColor
Definition: shapeObjectDefinitionDialog.h:643
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:241
DtAngleEntryWidget * myHeading
Definition: shapeObjectDefinitionDialog.h:625
DtSimCommand subclass for creating a new VrfObjects.
Definition: createObjectCommand.h:36
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:42
This class implements the logic behind the DtShapeObjectDefinitionDialog.
Definition: shapeObjectDefinitionDialog.h:49
Definition: createAndEditObjectDialogInterface.h:29
QDialog * myAltitudeAdjustmentDialog
Definition: shapeObjectDefinitionDialog.h:641
bool altitudeShown() const
Definition: shapeObjectDefinitionDialog.h:485
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
DtDialogInteractionMode myInteractionMode
Definition: shapeObjectDefinitionDialog.h:637
QDoubleValidator * myLatValidator
Definition: shapeObjectDefinitionDialog.h:673
bool myAltitudeShown
Definition: shapeObjectDefinitionDialog.h:640
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:670
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:56
Definition: simpleVariableWidget.h:275
Contains the DtSharedDisplayUnitsSettings class declaration.
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:238
DtEmbarkationWidget * embarkationWidget()
Definition: shapeObjectDefinitionDialog.h:548
DtSetDataRequest is an abstract base class from which real setDataRequests can derive.
Definition: setDataRequest.h:40
DtShapeValidatingTableWidget * myShapeLocations
Definition: shapeObjectDefinitionDialog.h:627
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
Simple line text entry widget that will allow the user to enter a heading value.
Definition: angleEntryWidget.h:26
std::vector< DtGeodeticCoord > myBackupLocations
Definition: shapeObjectDefinitionDialog.h:243
Definition: vrfObjectManipulationHandlerBaseClass.h:88
DtOverlayParentEntryWidget * myOverlaysCombo
Definition: shapeObjectDefinitionDialog.h:632
bool myBlockSignals
Definition: shapeObjectDefinitionDialog.h:638
DtSimpleDoubleVariableWidget * myFloor
Definition: shapeObjectDefinitionDialog.h:629
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Ui_ShapeObjectDefinitionWidgetUi myUiImpl
Definition: shapeObjectDefinitionDialog.h:624
makVrv::DtSignalConnectionManager myConnectionManager
Definition: shapeObjectDefinitionDialog.h:244
DtAltitudeEntryWidget * myCeiling
Definition: shapeObjectDefinitionDialog.h:630
boost::signals2::signal< void(double)> signal_floorChanged
Definition: shapeObjectDefinitionDialog.h:383
DtDialogInteractionMode
Definition: createAndEditObjectDialogInterface.h:34
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Definition: DtDisplayUnitsSettingsRecord.h:41
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:639
QDoubleValidator * myLonValidator
Definition: shapeObjectDefinitionDialog.h:674
Definition: shapeObjectDefinitionDialog.h:648
Base class to provide boost signal/slot management.
DtForceSelectionEntryWidget * myForces
Definition: shapeObjectDefinitionDialog.h:626
DtShapeObjectDefinitionDialogLogic * myLogic
Definition: shapeObjectDefinitionDialog.h:636
DtEmbarkationWidget * myEmbarkationWidget
Definition: shapeObjectDefinitionDialog.h:631
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:671
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:628
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:251
QDoubleValidator * myDoubleValidator
Definition: shapeObjectDefinitionDialog.h:672
DtReferenceEllipsoid * myReferenceForConversion
Definition: shapeObjectDefinitionDialog.h:240
Definition: shapeObjectDefinitionDialog.h:659
Definition: DtDisplayUnitsSettingsRecord.h:68
DtCreationSignalType
Definition: vrfObjectManipulationHandlerBaseClass.h:71
bool altitudeAllowed() const
Definition: shapeObjectDefinitionDialog.h:480
QWidget * myParent
Definition: shapeObjectDefinitionDialog.h:642
DtShapeObjectDefinitionDialog * myParent
Definition: shapeObjectDefinitionDialog.h:675
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:38

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)