![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtOverlaySettingsRecord.h,v $ $Revision: 1.10 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtOverlaySettingsRecord_H_ 00014 #define DtOverlaySettingsRecord_H_ 00015 00016 #include <makArchives/makArchives.h> 00017 00018 #include <string> 00019 #include <vector> 00020 00021 namespace makArchives 00022 { 00023 00027 class DT_DLL_MAKARCHIVES DtGradientControlPoint 00028 { 00029 00030 public: 00031 00032 DtGradientControlPoint(double location, double red, double green, double blue, double alpha) 00033 : myLocation(location) 00034 , myRed(red) 00035 , myGreen(green) 00036 , myBlue(blue) 00037 , myAlpha(alpha) 00038 { 00039 } 00040 00041 DtGradientControlPoint() 00042 : myLocation(0) 00043 , myRed(0) 00044 , myGreen(0) 00045 , myBlue(0) 00046 , myAlpha(0) 00047 { 00048 } 00049 00050 inline double location() const 00051 { 00052 return myLocation; 00053 } 00054 00055 inline double red() const 00056 { 00057 return myRed; 00058 } 00059 00060 inline double green() const 00061 { 00062 return myGreen; 00063 } 00064 00065 inline double blue() const 00066 { 00067 return myBlue; 00068 } 00069 00070 inline double alpha() const 00071 { 00072 return myAlpha; 00073 } 00074 00075 inline void getColor(float& r, float& g, float& b, float& a) const 00076 { 00077 r = myRed; 00078 g = myGreen; 00079 b = myBlue; 00080 a = myAlpha; 00081 } 00082 00083 protected: 00084 00085 friend class boost::serialization::access; 00086 00090 template<class Archive> 00091 void serialize(Archive & ar, const unsigned int version) 00092 { 00093 ar & BOOST_SERIALIZATION_NVP(myLocation); 00094 ar & BOOST_SERIALIZATION_NVP(myRed); 00095 ar & BOOST_SERIALIZATION_NVP(myGreen); 00096 ar & BOOST_SERIALIZATION_NVP(myBlue); 00097 ar & BOOST_SERIALIZATION_NVP(myAlpha); 00098 } 00099 00100 protected: 00101 double myLocation; 00102 double myRed; 00103 double myGreen; 00104 double myBlue; 00105 double myAlpha; 00106 00107 }; 00108 00111 class DT_DLL_MAKARCHIVES DtRasterLayerRecord 00112 { 00113 public: 00114 00116 DtRasterLayerRecord(); 00117 00119 DtRasterLayerRecord(const DtRasterLayerRecord& orig); 00120 00122 DtRasterLayerRecord& operator=(const DtRasterLayerRecord& orig); 00123 00125 ~DtRasterLayerRecord(); 00126 00127 public: 00129 00130 void setEnabled(bool); 00131 bool enabled() const; 00132 00133 void setName(const std::string&); 00134 const std::string& name() const; 00135 00136 void setFilename(const std::string&); 00137 const std::string& filename() const; 00138 00139 void setWrapMode(char); 00140 char wrapMode() const; 00141 00142 void setBlendMode(char); 00143 char blendMode() const; 00144 00145 void setTransformIsSet(bool); 00146 bool transformIsSet() const; 00147 00148 void setScale(double x, double y); 00149 void scale(double& x, double& y) const; 00150 00151 void setOffset(double x, double y); 00152 void offset(double& x, double& y) const; 00153 00154 void setRasterOperation(int); 00155 int rasterOperation() const; 00157 00158 protected: 00159 00160 friend class boost::serialization::access; 00161 00165 template<class Archive> 00166 void serialize(Archive & ar, const unsigned int version) 00167 { 00168 ar & BOOST_SERIALIZATION_NVP(myEnabled); 00169 ar & BOOST_SERIALIZATION_NVP(myName); 00170 ar & BOOST_SERIALIZATION_NVP(myFilename); 00171 ar & BOOST_SERIALIZATION_NVP(myWrapMode); 00172 ar & BOOST_SERIALIZATION_NVP(myBlendMode); 00173 ar & BOOST_SERIALIZATION_NVP(myTransformIsSet); 00174 ar & BOOST_SERIALIZATION_NVP(myScaleX); 00175 ar & BOOST_SERIALIZATION_NVP(myScaleY); 00176 ar & BOOST_SERIALIZATION_NVP(myOffsetX); 00177 ar & BOOST_SERIALIZATION_NVP(myOffsetY); 00178 } 00179 00180 protected: 00181 bool myEnabled; 00182 std::string myFilename; 00183 std::string myName; 00184 char myWrapMode; 00185 char myBlendMode; 00186 bool myTransformIsSet; 00187 double myScaleX; 00188 double myScaleY; 00189 double myOffsetX; 00190 double myOffsetY; 00191 00193 int myRasterOperation; 00194 }; 00195 00199 class DT_DLL_MAKARCHIVES DtOverlaySettingsRecord 00200 { 00201 00202 public: 00203 00205 DtOverlaySettingsRecord(); 00206 00208 DtOverlaySettingsRecord(const DtOverlaySettingsRecord& orig); 00209 00211 DtOverlaySettingsRecord& operator=(const DtOverlaySettingsRecord& orig); 00212 00214 ~DtOverlaySettingsRecord(); 00215 00216 typedef std::vector<DtGradientControlPoint> ControlPointList; 00217 00218 00220 00221 00223 bool baseSourceEnabled() const; 00224 00226 void setBaseSourceEnabled(bool enabled); 00228 00230 00231 00232 void addRasterLayer(const DtRasterLayerRecord& rec); 00233 00236 std::string addRasterLayer(const std::string& name = ""); 00237 00240 bool removeRasterLayer(const std::string& name); 00241 00243 void insertRasterLayerRecord(const DtRasterLayerRecord&, int iIndex); 00244 00247 int moveRasterLayer(const std::string& raster, int iBy); 00248 00251 virtual bool renameRasterLayer(const std::string& oldName, const std::string& newName); 00252 00255 bool hasRasterLayer(const std::string& name) const; 00256 00258 DtRasterLayerRecord rasterLayerRecord(const std::string& name) const; 00259 00262 int rasterLayerIndex(const std::string& name) const; 00263 00265 const DtRasterLayerRecord& rasterLayerRecord(int) const; 00266 DtRasterLayerRecord& rasterLayerRecord(int); 00267 00269 int numRasterLayers() const; 00270 00271 void setEnabled(const std::string& raster, bool); 00272 bool enabled(const std::string& raster) const; 00273 00274 void setName(const std::string& raster, const std::string&); 00275 std::string name(const std::string& raster) const; 00276 00277 void setFilename(const std::string& raster, const std::string&); 00278 std::string filename(const std::string& raster) const; 00279 00280 void setRasterOperation(const std::string& raster, int); 00281 int rasterOperation(const std::string&) const; 00282 00283 void setWrapMode(const std::string& raster, char); 00284 char wrapMode(const std::string& raster) const; 00285 00286 void setBlendMode(const std::string& raster, char); 00287 char blendMode(const std::string& raster) const; 00288 00289 void setTransformIsSet(const std::string& raster, bool); 00290 bool transformIsSet(const std::string& raster) const; 00291 00292 void setScale(const std::string& raster, double x, double y); 00293 void scale(const std::string& raster, double& x, double& y) const; 00294 00295 void setOffset(const std::string& raster, double x, double y); 00296 void offset(const std::string& raster, double& x, double& y) const; 00297 00299 00301 00302 00304 bool contourEnabled() const; 00305 00307 bool contourIntermediateLinesEnabled() const; 00308 00310 double contourInterval() const; 00311 00313 double contourThickness() const; 00314 00316 void setContourEnabled(bool enabled); 00317 00319 void setContourIntermediateLinesEnabled(bool enabled); 00320 00322 void setContourInterval(double interval); 00323 00325 void setContourThickness(double thickness); 00327 00329 00330 00332 bool elevationEnabled() const; 00333 00335 const DtOverlaySettingsRecord::ControlPointList& elevationGradient() const; 00336 00338 void setElevationEnabled(bool enabled); 00339 00341 void setElevationGradient(const DtOverlaySettingsRecord::ControlPointList& gradient); 00342 00344 00345 protected: 00346 00347 friend class boost::serialization::access; 00348 00352 template<class Archive> 00353 void serialize(Archive & ar, const unsigned int version) 00354 { 00355 ar & BOOST_SERIALIZATION_NVP(myBaseSourceEnabled); 00356 ar & BOOST_SERIALIZATION_NVP(myContourEnabled); 00357 ar & BOOST_SERIALIZATION_NVP(myContourIntermediateLinesEnabled); 00358 ar & BOOST_SERIALIZATION_NVP(myContourInterval); 00359 ar & BOOST_SERIALIZATION_NVP(myContourThickness); 00360 ar & BOOST_SERIALIZATION_NVP(myElevationEnabled); 00361 ar & BOOST_SERIALIZATION_NVP(myElevationGradient); 00362 ar & BOOST_SERIALIZATION_NVP(myRasterLayerRecords); 00363 } 00364 00365 00366 protected: 00367 00368 bool myBaseSourceEnabled; 00369 bool myContourEnabled; 00370 bool myContourIntermediateLinesEnabled; 00371 double myContourInterval; 00372 double myContourThickness; 00373 bool myElevationEnabled; 00374 ControlPointList myElevationGradient; 00375 std::vector<DtRasterLayerRecord> myRasterLayerRecords; 00376 }; 00377 } 00378 00379 BOOST_CLASS_VERSION(makArchives::DtOverlaySettingsRecord, 0) 00380 00381 #endif 00382