VR-Forces 4.0.4 Class Documentation
include/makArchives/DtOverlaySettingsRecord.h
Go to the documentation of this file.
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  

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)