![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************** 00002 * Copyright (c) 2011 MaK Technologies, Inc. 00003 * All rights reserved. 00004 ********************************************************************/ 00005 /******************************************************************** 00006 * $RCSfile: DtCloudLayerDialogLogic.h,v $ $Revision: 1.19 $ $State: Exp $ 00007 ********************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCoreQt/vrvCoreQt.h> 00015 #include <vrvUtil/DtSignalConnectionManager.h> 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 #include <makArchives/DtCloudLayerRecord.h> 00018 #include <makArchives/DtDisplayUnitsSettingsRecord.h> 00019 #include <string> 00020 00021 class QString; 00022 class DtVector; 00023 00024 namespace makVrv 00025 { 00026 00027 class DtCloudLayerDialogInterface; 00028 00032 class DT_DLL_VRVCOREQT DtCloudLayerDialogLogic : public DtVirtualBaseClass 00033 { 00034 public: 00035 00037 friend class DtCloudLayerDialogLogicCreator; 00038 00040 virtual ~DtCloudLayerDialogLogic(); 00041 00044 virtual void onCoordSysChanged( const QString& s ); 00045 00048 virtual void onCloudTypeChanged(const QString& type); 00049 00051 virtual const makArchives::DtCloudLayerRecord* record(); 00052 00054 virtual void editLayer(const makArchives::DtCloudLayerRecord& rec); 00055 00058 virtual void centerOnObserver(); 00059 00061 double currentLayerAltitude() const; 00062 00064 virtual void setCurrentLayerAltitude(double alt); 00065 00068 virtual void centerOnTerrain(); 00069 00071 virtual void setPositionFromDisplayUnitStrings(QString x, QString y, QString z); 00072 00074 virtual void setWidthFromDisplayUnit(double duValue); 00075 00077 virtual void setLengthFromDisplayUnit(double duValue); 00078 00080 virtual void setThicknessFromDisplayUnit(double duValue); 00081 00083 virtual void setDensity(double value); 00084 00085 protected: 00086 00088 DtCloudLayerDialogLogic( DtDe& de, DtCloudLayerDialogInterface* iFace ); 00089 00091 virtual void initGui(); 00092 00096 void updateCloudLayerTypeProperties(); 00097 00100 void updateCloudLayerPositionProperties(); 00101 00103 void updateCloudLayerSizeProperties(); 00104 00107 QString translateCloudType(const std::string& cloudType); 00108 00111 std::string untranslateCloudType(const QString& cloudType); 00112 00115 DtVector convertStringCoords(QString x, QString y, QString z); 00116 00117 protected: 00118 DtDe& myDe; 00119 DtSignalConnectionManager mySignals; 00120 DtCloudLayerDialogInterface* myInterface; 00121 makArchives::DtDisplayUnitsSettingsRecord::CoordSys myCoordSys; 00122 makArchives::DtCloudLayerRecord myCloudLayerRecord; 00123 }; 00124 00126 class DT_DLL_VRVCOREQT DtCloudLayerDialogLogicCreator : public DtVirtualBaseClass 00127 { 00128 public: 00129 00131 static DtCloudLayerDialogLogicCreator& instance(DtDe& de); 00132 00134 static void registerInstance(DtDe& de, DtCloudLayerDialogLogicCreator*); 00135 00137 virtual DtCloudLayerDialogLogic* create( DtDe& de, 00138 DtCloudLayerDialogInterface* iFace); 00139 }; 00140 }