VR-Forces 5.0.1 Developer's Guide
 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 
17 #include "shapeObjectDefinitionWidgetUi.hpp"
22 #endif
23 #include <boost/signals2.hpp>
24 
25 #include <QtWidgets/QItemDelegate>
26 #include <QtWidgets/QTableWidget>
27 
28 class DtReferenceEllipsoid;
29 class QDialog;
30 class QDoubleValidator;
31 class QRegExpValidator;
32 class DtSetDataRequest;
33 
34 namespace makVrf
35 {
36  class DtOverlayParentEntryWidget;
37  class DtEmbarkationWidget;
38  class DtShapeObjectDefinitionDialog;
39  class DtVrfObjectManipulationHandlerBaseClass;
40  class DtAngleEntryWidget;
41  class DtExtendedLabelsEntryWidget;
42  class DtForceSelectionEntryWidget;
43  class DtShapeValidatingTableWidget;
44  class DtAltitudeEntryWidget;
45  class DtSmallRangeEntryWidget;
46  class DtSimpleDoubleVariableWidget;
47 
52  {
53 
54  public:
55 
58 
61 
63  virtual void createConnections();
64 
66  virtual void terminateConnections();
67 
69  virtual void processLocationEdited(int currentRow=-1);
70 
72  virtual void processSelectLocation(int);
73 
75  virtual void processAddNewPoint();
76 
78  virtual void processRemovePoint(int index);
79 
81  virtual void processObjectCreation();
82 
84  virtual void processObjectUpdate();
85 
87  virtual void processDoneRequest();
88 
90  virtual void processCloseRequest();
91 
93  virtual void processCellEdited(int, int);
94 
95  virtual void onAltitudeSet(int, int);
96 
98  virtual void processCellEntered(int, int);
99 
101  virtual void processNamePrefixEdited();
102 
104  virtual void processLabelEdited(const std::string& name);
105 
107  virtual void processExtendedLabelsEdited(const std::map<int, DtString>& name);
108 
110  virtual void processItemSelectionChanged();
111 
115  virtual void processPopulateDialog(const makVrv::DtUniqueID& id );
116 
117  virtual void headingChanged();
118 
119  virtual bool inGeocentric() const;
120 
122  virtual void setupGui();
123 
125  virtual void updateLocations(const std::vector<DtGeodeticCoord>& locs);
126 
128  virtual bool isLine() const;
129 
131  virtual void populateDialogWithStmt(const DtCreateObjectCommand* cmd);
132 
134  virtual void populateOverlays();
135 
136  virtual void setForce(int);
137 
139  virtual void processAltitudeTypeChanged();
140 
141  virtual void attachToMouseChanged(bool b);
142 
143  virtual DtGeodeticCoord convertToGeodetic(const DtVector&) const;
144  virtual DtVector convertToLocal(const DtGeodeticCoord&) const;
145 
146  virtual void adjustAltitudesBy(double);
147  virtual void setAltitudesTo(DtAltitudeClampType, double);
148 
150  virtual void processItemAdded(int);
151 
154  virtual void showTerrainProfile();
155 
157  virtual void slot_pointSamplingRateChanged(int);
158 
160  virtual void slot_lineWidthChanged(int);
161 
163  virtual void slot_penStyleChanged(int);
164 
166  virtual void slot_arrowDataChanged(const std::string& s);
167 
169  virtual void slot_fillDataChanged(int);
170 
171  virtual int fillStyle() const;
172 
173  virtual void slot_onFloorChanged(double);
174  virtual void slot_onCeilingChanged(double);
175  virtual void slot_onFloorSet(double);
176  virtual void slot_onCeilingSet(double);
177 
179  virtual void reversePoints();
180  virtual void updateButtons();
181 
182  virtual void setActivationTime();
183 
185  virtual void setEmbarkationInformation(makVrv::DtUniqueID, bool);
186 
187  virtual void setupLabels();
188 
189  protected:
190 
192  virtual void closeDialog();
193 
194  virtual void slot_headingChangedByMouse(double headingInDeg);
195 
197  virtual void slot_onMouseLocationChanged(const DtVector& loc);
198 
200  virtual void slot_onMouseAltitudeChanged(double heading);
201 
203  virtual void slot_onHandlerStopped(DtVrfObjectManipulationHandlerBaseClass* handler);
204 
206  virtual void slot_onPlacement(const DtVector& loc);
207 
209  virtual void slot_onColorChanged(int);
210 
212  virtual void slot_onLocationAdded(const DtVector& loc);
213 
215  virtual void slot_onOverlayNameChanged(const std::string& name);
216 
218  virtual void slot_onForceChanged(int);
219 
220  virtual void objectCreated();
221 
222  virtual void slot_onCoordinateSystemChanged(
224  virtual void slot_onDisplayUnitDecimalsChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int newUnit);
225 
226  virtual void slot_onUnitChanged(const makVrv::DtUnicode& category, const makVrv::DtUnicode& type, int newUnit, int oldUnit);
227 
228  virtual void restoreLocations();
229  virtual void backupLocations();
230 
231 
233  virtual void setupActivationTime(const DtSetDataRequest& setReq);
234 
236  virtual void slot_onPublishObjectChanged(bool);
237 
238  protected:
239 
242  DtReferenceEllipsoid* myReferenceForConversion;
245  std::vector<DtGeodeticCoord> myBackupLocations;
247  };
248 
249 
254  {
255 
256  Q_OBJECT
257 
258  public:
259 
261  DtShapeObjectDefinitionDialog(makVrv::DtDe& de, QWidget* parent, const QString& title="", DtDialogInteractionMode mode=DtCreationMode);
262 
265 
266  virtual void init(const DtEntityType&, const QString& title, bool forPlan,
268 
270  virtual void closeDialog();
271 
273  virtual void setLocationInGridFor(int row, const DtGeodeticCoord&,
276 
278  virtual bool validateDMS(const std::string& str) const;
279 
281  virtual void addLocation(const DtVector& loc, int index = -1);
282 
284  virtual void setEmbarkationAllowed( bool flag );
285 
286  virtual void clear();
287 
289  virtual void removePoint(int);
290 
292  virtual void setUseInputValidation(bool b);
293 
295  virtual void insertLocation(int index, const DtVector& loc);
296 
298  virtual void selectLocation(int index);
299 
301  virtual DtGeodeticCoord getLocation(int index);
302 
304  virtual QString getName();
305 
307  virtual void hideDialog();
308 
310  virtual int selectedPointIndex() const;
311 
313  virtual int rowCount() const;
314 
316  virtual void setAltitudeAboveTerrain(bool);
317 
319  virtual bool altitudeAboveTerrain() const;
320 
322  virtual void setAttachedToMouseVisible(bool);
323 
325  virtual void setName(const QString& name);
326 
328  virtual void setLabel(const QString& name);
329 
331  virtual void setExtendedLabels(const std::map<int, DtString>& lab);
332 
334  virtual void setLabelEntryVisible(bool);
335 
337  virtual void setNameVisible(bool flag);
338 
340  virtual void setSetActivationTimeVisible(bool flag);
341 
343  virtual void setTitle(const QString& title);
344 
346  virtual void setCreateButtonEnabled(bool flag);
347 
348  virtual void setAdjustStyleEnabled(bool);
349 
351  virtual void setCreateButtonText(const QString& text);
352 
354  virtual void setCreateButtonVisible(bool flag);
355 
357  virtual void setUpdateButtonEnabled(bool flag);
358 
360  virtual void setUpdateButtonVisible(bool flag);
361 
363  virtual void setAllowOverlaySelection(bool flag);
364 
366  virtual void setUpdateButtonText(const QString& text);
367 
369  virtual void setDoneButtonEnabled(bool flag);
370 
372  virtual void setDoneButtonVisible(bool flag);
373 
375  virtual void setShowFloorCeiling(bool);
376 
378  virtual void setFloor(double);
379  virtual double floor() const;
380  virtual void setFloorLabel(const QString&);
381 
383  virtual void setFloorIsDistance(bool);
384 
385  boost::signals2::signal<void (double)> signal_floorChanged;
386 
387  virtual void setCeiling(double);
388  virtual double ceiling() const;
389  virtual void setCeilingLabel(const QString&);
390  boost::signals2::signal<void (double)> signal_ceilingChanged;
391 
392  virtual void hideForces();
393 
395  virtual void setUpButtonVisible(bool flag);
396 
398  virtual void setDownButtonVisible(bool flag);
399 
401  virtual void setAddPointButtonVisible(bool flag);
402 
404  virtual void setAddPointButtonEnabled(bool flag);
405 
407  virtual void setAdjustAltitudeButtonVisible(bool flag);
408 
410  virtual void setAdjustAltitudeButtonEnabled(bool flag);
411 
413  virtual void setRemovePointButtonVisible(bool flag);
414 
416  virtual void setRemovePointButtonEnabled(bool flag);
417 
419  virtual void setShowStyleButton(bool flag);
420 
422  virtual void setShowColorButton(bool flag);
423 
425  virtual void setControlButtonsVisible(bool flag);
426 
428  virtual void setAttachObjectToMouse(bool);
429 
431  virtual DtDialogInteractionMode interactionMode();
432 
434  virtual void populate(const makVrv::DtUniqueID&);
435 
437  virtual void populate(const DtCreateObjectCommand* cmd);
438 
440  virtual bool blockSignals(bool);
441 
443  virtual void addOverlay(const QString& name, bool translate = true);
444 
446  virtual void removeOverlay(const QString& name);
447 
449  virtual void renameOverlay(const QString& oldName, const QString& newName);
450 
452  virtual void setOverlay(const QString& name);
453 
455  virtual void setPublishObjectVisible(bool);
456 
458  virtual void setPublishObject(bool);
459  virtual bool publishObject() const;
460 
462  virtual void clearOverlays();
463 
465  virtual void populateOverlays();
466 
468  virtual void setAltitudeAboveTerrain(int row, double alt);
469 
470  bool attachedToMouse() const;
471 
474  virtual double altitude(int) const;
475 
477  virtual void setAltitude(int, double, bool blocked = false);
478 
480  virtual void setAltitudeAllowed(bool);
481  virtual bool disallowsAltitudeAdjustmentBasedOnObjectCharacteristics() const;
482  bool altitudeAllowed() const
483  {
484  return myAltitudeAllowed;
485  }
486 
487  bool altitudeShown() const
488  {
489  return myAltitudeShown;
490  }
491 
493  virtual void setShowForces(bool);
494 
496  virtual void setReadOnly(bool);
497 
499  virtual void setReadOnly(int, bool);
500 
501  virtual void setColor(unsigned int color);
502 
503  virtual void setXLabel(const QString&);
504  virtual void setYLabel(const QString&);
505  virtual void setZLabel(const QString&);
506  virtual void adjustAltitudeAdjustmentDialogLabels();
507 
508  virtual void setupForCoordinateSystemAndUnits(makVrv::DtSharedDisplayUnitsSettings::CoordSys,
510 
512  virtual void setAllowHeadingChange(bool);
513 
515  virtual void setHeading(double);
516 
518  virtual double heading() const;
519 
521  virtual void refreshLocs();
522  virtual void refreshAltitudes();
523  virtual void refreshLocs(const std::vector<DtGeodeticCoord>&);
524 
525  virtual void clearSelection();
526 
528  virtual void setForce(int force);
529 
531  virtual void addExtension(QWidget*);
532 
534  virtual void removeExtension(QWidget*);
535 
537  virtual void showPropertiesDialog(bool, bool showAttachObjectToMouse = true);
538 
540  virtual void setTerrainProfileButtonEnabled(bool);
541  virtual void setTerrainProfileButtonVisible(bool);
542 
544  virtual void includeSpacer(bool);
545  virtual bool extendedLabelsValid() const;
546 
548  virtual void setEmbarkationWidgetVisible( bool flag );
549 
551  {
552  return myEmbarkationWidget;
553  }
554 
555  virtual QSize minimumSizeHint() const;
556 
557  protected:
558 
562  virtual void addLocationIntoList(const DtGeodeticCoord& loc, int pos=-1,
565 
567  virtual void setupGui();
568 
570  virtual void setupConnections();
571 
573  virtual void closeEvent(QCloseEvent *event);
574 
579  virtual QDialog* createAltitudeAdjustmentDialog();
580 
582  virtual DtShapeObjectDefinitionDialogLogic* createLogic();
583  virtual bool showAlpha() const;
584 
585  virtual void showEvent(QShowEvent*);
586 
587  virtual void getDistanceAndAltitudeDecimals(int& decimals, int& altDecimals);
588 
590  virtual DtSimpleDoubleVariableWidget* floorVariable() const;
591 
592  public slots:
593 
595  virtual void slot_onShapeLocationsCellChanged(int, int);
596 
598  virtual void slot_altitudeTypeChanged();
599 
600  protected slots:
601  virtual void slot_onFloorChanged();
602  virtual void slot_onCeilingChanged();
603  virtual void slot_onReversePoints();
604  virtual void slot_onSetActivationTime();
605  virtual void slot_onLabelEdited();
606  virtual void slot_onExtendedLabelsEdited();
607  virtual void slot_itemSelectionChanged();
608  virtual void slot_onCreateButtonClicked();
609  virtual void slot_onUpdateButtonClicked();
610  virtual void slot_onDoneButtonClicked();
611  virtual void slot_onNamePrefixEdited();
612  virtual void slot_closePressed();
613  virtual void slot_onBtnMoveDownClicked();
614  virtual void slot_onBtnMoveUpClicked();
615  virtual void slot_onBtnAddPointClicked();
616  virtual void slot_onBtnRemovePointClicked();
617  virtual void slot_onShapeLocationsCellEntered( int, int);
618  virtual void slot_onOverlaysComboCurrentIndexChanged(int index);
619  virtual void slot_onForceComboCurrentIndexChanged(int index);
620  virtual void slot_attachedToMouseChanged();
621  virtual void slot_onAdjustAltitudeClicked();
622  virtual void slot_onShowTerrainProfile();
623  virtual void slot_onPublishObjectChanged();
624  virtual void slot_onBtnColorClicked();
625  virtual void slot_onBtnStyleClicked();
626 
627  public:
628 
629  Ui_ShapeObjectDefinitionWidgetUi myUiImpl;
639 
640  protected:
648  QWidget* myParent;
649  unsigned int myBackgroundColor;
650  DtEntityType myEditingType;
652  };
653 
655  {
656  public:
657  virtual DtCreateAndEditObjectDialogInterface* createDialog(makVrv::DtDe& de, QWidget* parent, const QString& title,
659 
660  virtual void initializeDialog(makVrv::DtDe& de, DtCreateAndEditObjectDialogInterface*, const DtEntityType& entityType,
662  const DtEditingType& editType);
663  };
664 
666  {
667  public:
669  virtual ~DtShapeTableValidator();
670 
671  protected:
672  virtual QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option,
673  const QModelIndex &index) const;
674 
675  protected:
678  QDoubleValidator* myDoubleValidator;
679  QDoubleValidator* myLatValidator;
680  QDoubleValidator* myLonValidator;
682  };
683 
685  {
686  public:
688  virtual ~DtShapeValidatingTableWidget();
689 
691  virtual void commitData(QWidget *editor);
692  virtual bool validateDMS(const std::string&) const;
693 
694  protected:
696  };
697 }
DtEntityType myEditingType
Definition: shapeObjectDefinitionDialog.h:650
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:695
Widget that allows the selection of a force.
Definition: forceSelectionEntryWidget.h:61
bool myShowCeilingFloor
Definition: shapeObjectDefinitionDialog.h:651
Definition: createAndEditObjectDialogInterface.h:121
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
boost::signals2::signal< void(double)> signal_ceilingChanged
Definition: shapeObjectDefinitionDialog.h:390
bool myActivationTimeVisible
Definition: shapeObjectDefinitionDialog.h:641
Definition: shapeObjectDefinitionDialog.h:684
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:244
Simple line text entry widget that will allow the user to enter an altitude value.
Definition: altitudeEntryWidget.h:26
DtShapeObjectDefinitionDialog * myInterface
Definition: shapeObjectDefinitionDialog.h:241
#define DT_DLL_VRFGUICOREQT
Definition: vrfGuiCoreQt.h:26
unsigned int myBackgroundColor
Definition: shapeObjectDefinitionDialog.h:649
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:243
Simple line text entry widget that will allow the user to enter a small range value.
Definition: smallRangeEntryWidget.h:27
DtAngleEntryWidget * myHeading
Definition: shapeObjectDefinitionDialog.h:630
DtSimCommand subclass for creating a new VrfObjects. Used for both single and multi-point objects...
Definition: createObjectCommand.h:36
DtEditingType
Definition: vrfObjectManipulationHandlerBaseClass.h:42
This class implements the logic behind the DtShapeObjectDefinitionDialog.
Definition: shapeObjectDefinitionDialog.h:51
Definition: createAndEditObjectDialogInterface.h:29
QDialog * myAltitudeAdjustmentDialog
Definition: shapeObjectDefinitionDialog.h:647
bool altitudeShown() const
Definition: shapeObjectDefinitionDialog.h:487
CoordSys
Enumeration of the different coordinate system types.
Definition: DtDisplayUnitsSettingsRecord.h:30
DtDialogInteractionMode myInteractionMode
Definition: shapeObjectDefinitionDialog.h:643
QDoubleValidator * myLatValidator
Definition: shapeObjectDefinitionDialog.h:679
bool myAltitudeShown
Definition: shapeObjectDefinitionDialog.h:646
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:676
DistanceUnits
Enumeration of the different distance units.
Definition: DtDisplayUnitsSettingsRecord.h:56
A styled version of the QTableWidget. Cells in this table widget can be styled when enabled or disabl...
Definition: DtStyledQTableWidget.h:33
Definition: simpleVariableWidget.h:281
Contains the DtSharedDisplayUnitsSettings class declaration.
makVrv::DtDe & myDe
Definition: shapeObjectDefinitionDialog.h:240
DtEmbarkationWidget * embarkationWidget()
Definition: shapeObjectDefinitionDialog.h:550
DtSetDataRequest is an abstract base class from which real setDataRequests can derive. It manages the read/write capability; derived classes need only use and register read/writatble data types for derived information.
Definition: setDataRequest.h:41
DtShapeValidatingTableWidget * myShapeLocations
Definition: shapeObjectDefinitionDialog.h:632
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:245
Definition: vrfObjectManipulationHandlerBaseClass.h:90
DtOverlayParentEntryWidget * myOverlaysCombo
Definition: shapeObjectDefinitionDialog.h:638
bool myBlockSignals
Definition: shapeObjectDefinitionDialog.h:644
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Ui_ShapeObjectDefinitionWidgetUi myUiImpl
Definition: shapeObjectDefinitionDialog.h:629
makVrv::DtSignalConnectionManager myConnectionManager
Definition: shapeObjectDefinitionDialog.h:246
DtAltitudeEntryWidget * myCeiling
Definition: shapeObjectDefinitionDialog.h:636
boost::signals2::signal< void(double)> signal_floorChanged
Definition: shapeObjectDefinitionDialog.h:385
DtDialogInteractionMode
Definition: createAndEditObjectDialogInterface.h:34
Definition: DtDisplayUnitsSettingsRecord.h:41
bool myAltitudeAllowed
Definition: shapeObjectDefinitionDialog.h:645
QDoubleValidator * myLonValidator
Definition: shapeObjectDefinitionDialog.h:680
Definition: shapeObjectDefinitionDialog.h:654
Base class to provide boost signal/slot management.
DtForceSelectionEntryWidget * myForces
Definition: shapeObjectDefinitionDialog.h:631
DtSmallRangeEntryWidget * myFloorAsWidth
Definition: shapeObjectDefinitionDialog.h:635
DtShapeObjectDefinitionDialogLogic * myLogic
Definition: shapeObjectDefinitionDialog.h:642
DtEmbarkationWidget * myEmbarkationWidget
Definition: shapeObjectDefinitionDialog.h:637
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:677
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtExtendedLabelsEntryWidget * myExtendedLabelsEntryWidget
Definition: shapeObjectDefinitionDialog.h:633
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:253
QDoubleValidator * myDoubleValidator
Definition: shapeObjectDefinitionDialog.h:678
DtReferenceEllipsoid * myReferenceForConversion
Definition: shapeObjectDefinitionDialog.h:242
DtAltitudeEntryWidget * myFloorAsAltitude
Definition: shapeObjectDefinitionDialog.h:634
Definition: shapeObjectDefinitionDialog.h:665
Definition: DtDisplayUnitsSettingsRecord.h:68
DtCreationSignalType
Option to supply to the createObject method.
Definition: vrfObjectManipulationHandlerBaseClass.h:73
bool altitudeAllowed() const
Definition: shapeObjectDefinitionDialog.h:482
QWidget * myParent
Definition: shapeObjectDefinitionDialog.h:648
DtShapeObjectDefinitionDialog * myParent
Definition: shapeObjectDefinitionDialog.h:681
DtAltitudeClampType
Definition: vrfObjectFacadeInterface.h:43

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)