![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 00008 00010 00011 #pragma once 00012 00013 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00014 #include <vrfGuiCore/DtVrfObjectFacadeInterface.h> 00015 00017 #include <makArchives/DtDisplayUnitsSettingsRecord.h> 00018 #include <vrvCore/DtInputDriverSignaler.h> 00019 #include <vrvUtil/DtSignalConnectionManager.h> 00020 #include <vrvUtil/DtUnitConverterCollection.h> 00021 00023 #include <matrix/vlVector.h> 00024 00025 #include <QString> 00026 00027 namespace makVrv 00028 { 00029 class DtDe; 00030 } 00031 00032 namespace makVrf 00033 { 00034 class DtAltitudeSelectionWidgetInterface; 00035 class DtAltitudeEventProcessor; 00036 00040 class DT_DLL_VRFGUICOREQT DtAltitudeSelectionWidgetLogic 00041 { 00042 public: 00043 //CTOR 00044 DtAltitudeSelectionWidgetLogic(makVrv::DtDe& de, DtAltitudeSelectionWidgetInterface*); 00045 00046 //DTOR 00047 virtual ~DtAltitudeSelectionWidgetLogic(); 00048 00049 public: 00052 virtual void setLocation(const DtVector& local, bool resetAltitude = true); 00053 00055 virtual void setMouseClickSupportEnabled(bool); 00056 00058 virtual void setCoordinateSystem( 00059 const makArchives::DtDisplayUnitsSettingsRecord::CoordSys&); 00060 00062 const makArchives::DtDisplayUnitsSettingsRecord::CoordSys& 00063 coordinateSystem() const; 00064 00066 virtual void slot_onAltitudeAboveSeaLevelChanged(); 00067 00069 virtual void slot_onAltitudeAboveGroundLevelChanged(); 00070 00072 virtual void slot_onAltitudeAboveSeaLevelEdited(); 00073 00075 virtual void slot_onAltitudeAboveGroundLevelEdited(); 00076 00078 virtual void slot_onAltitudeSelectionTypeChanged(); 00079 00081 virtual void setDatabaseLocation(double x, double y, double z); 00082 00083 virtual QString zUnitsLabel() const; 00084 00085 virtual DtGeodeticCoord geodeticLocation() const; 00086 00088 virtual void setClampToNearestPolygon(bool); 00089 00091 virtual void setIgnoreList(const std::vector<makVrv::DtElementID>&); 00092 virtual const std::vector<makVrv::DtElementID>& ignoreList() const; 00093 00094 protected: 00095 00096 virtual void initialize(); 00097 00099 virtual double groundHeight(const DtVector& loc); 00100 00101 virtual void refreshLabels(); 00102 00103 virtual void slot_onUnitChanged(int attribute, int from); 00104 00107 virtual void slot_onDisplayUnitDecimalsChanged( 00108 makVrv::DtUnitConverterCollection::DisplayUnitType, int unit, 00109 int newValue); 00110 00111 protected: 00112 makVrv::DtDe& myDe; 00113 00114 DtAltitudeSelectionWidgetInterface* myInterface; 00115 makArchives::DtDisplayUnitsSettingsRecord::CoordSys myCoordSys; 00116 DtAltitudeEventProcessor *myAltitudeEventProcessor; 00117 DtVector myNearestPoint; 00118 00119 makVrv::DtSignalConnectionManager myConnectionManager; 00120 00121 DtAltitudeClampType myAltitudeSelectionType; 00122 DtVector myLastLocation; 00123 bool myInitialized; 00124 00125 DtGeodeticCoord myGeodeticLocation; 00126 bool myClampToNearestPolygon; 00127 00128 std::vector<makVrv::DtElementID> myIgnoreList; 00129 }; 00130 }