![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /***************************************************************************** 00002 * Copyright (c) 2012 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/vrvCore.h> 00013 00014 #include <vrvUtil/DtBaseSettingsManager.h> 00015 00016 #include <makArchives/DtGridLinesSettingsRecord.h> 00017 00018 namespace makArchives 00019 { 00020 class DtGridLinesSettingsRecord; 00021 } 00022 00023 namespace makVrv 00024 { 00025 00026 class DtDe; 00027 00030 class DT_DLL_VRVCORE DtGridLinesSettingsManager 00031 : public DtBaseSettingsManager<makArchives::DtGridLinesSettingsRecord> 00032 { 00033 public: 00034 00036 static DtGridLinesSettingsManager& instance( DtDe& de ); 00037 00039 virtual ~DtGridLinesSettingsManager(); 00040 00043 00045 bool autoSpacing() const; 00046 00048 void setAutoSpacing( bool autoSpacing ); 00049 00051 double fixedSpacingAmount( 00052 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit) const; 00053 00055 void setFixedSpacingAmount( 00056 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, 00057 double amount ); 00058 00060 double fixedSpacingAmount( 00061 makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit) const; 00062 00064 void setFixedSpacingAmount( 00065 makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit, 00066 double amount ); 00067 00070 int minSpacing() const; 00071 00074 void setMinSpacing( int pixels ); 00075 00077 makArchives::DtDisplayUnitsSettingsRecord::CoordSys gridType() const; 00078 00080 void setGridType( makArchives::DtDisplayUnitsSettingsRecord::CoordSys gridType ); 00081 00083 bool unitTypeIsAngular() const; 00084 00090 makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unitType() const; 00091 00094 makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits angularUnitType() const; 00095 00097 void setUnitType( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ); 00098 00100 void setUnitType( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit ); 00101 00103 double xOffset( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ) const; 00104 00106 void setXOffset( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, double offset ); 00107 00109 double yOffset( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ) const; 00110 00112 void setYOffset( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, double offset ); 00113 00115 double longitudeOffset( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit ) const; 00116 00118 void setLongitudeOffset( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit, double offset ); 00119 00121 double latitudeOffset( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit ) const; 00122 00124 void setLatitudeOffset( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit, double offset ); 00125 00127 unsigned decimalPlaces( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit ) const; 00128 00130 void setDecimalPlaces( makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits unit, unsigned amount ); 00131 00133 unsigned decimalPlaces( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit ) const; 00134 00136 void setDecimalPlaces( makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits unit, unsigned amount ); 00137 00139 00142 00143 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::CoordSys)> signal_gridTypeSet; 00144 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits)> signal_unitTypeSet; 00145 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits)> signal_angularUnitTypeSet; 00146 boost::signal<void (bool)> signal_autoSpacingSet; 00147 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits,double)> signal_fixedSpacingAmountSet; 00148 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits,double)> signal_fixedAngularSpacingAmountSet; 00149 boost::signal<void (int)> signal_minSpacingSet; 00150 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits,double)> signal_xOffsetSet; 00151 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits,double)> signal_yOffsetSet; 00152 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits,double)> signal_longitudeOffsetSet; 00153 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits,double)> signal_latitudeOffsetSet; 00154 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::DistanceUnits,unsigned) >signal_decimalPlacesSet; 00155 boost::signal<void (makArchives::DtDisplayUnitsSettingsRecord::OrientationUnits,unsigned)> signal_angularDecimalPlacesSet; 00156 00158 00161 00163 void setFromRecord( const makArchives::DtGridLinesSettingsRecord& rec ); 00164 00166 void getRecord( makArchives::DtGridLinesSettingsRecord& rec ) const; 00167 00169 00170 protected: 00171 00173 template <typename ManagerClass> 00174 friend ManagerClass& defaultManagerInstanceFunction( DtDe&, bool ); 00175 00177 template <typename ManagerClass> 00178 friend void defaultManagerRegisterInstanceFunction( DtDe&, ManagerClass* ); 00179 00181 DtGridLinesSettingsManager( DtDe& ); 00182 00186 00188 void setFixedSpacings( const makArchives::DtGridLinesSettingsRecord& rec ); 00189 00191 void setXOffsets( const makArchives::DtGridLinesSettingsRecord& rec ); 00192 00194 void setYOffsets( const makArchives::DtGridLinesSettingsRecord& rec ); 00195 00197 void setFixedAngularSpacings( const makArchives::DtGridLinesSettingsRecord& rec ); 00198 00200 void setLongitudeOffsets( const makArchives::DtGridLinesSettingsRecord& rec ); 00201 00203 void setLatitudeOffsets( const makArchives::DtGridLinesSettingsRecord& rec ); 00204 00206 00207 protected: 00208 00209 makArchives::DtGridLinesSettingsRecord mySettingsRecord; 00210 00211 }; 00212 00213 }