GcpLayer.h

Go to the documentation of this file.
00001 /*
00002  * The information in this file is
00003  * Copyright(c) 2007 Ball Aerospace & Technologies Corporation
00004  * and is subject to the terms and conditions of the
00005  * GNU Lesser General Public License Version 2.1
00006  * The license text is available from   
00007  * http://www.gnu.org/licenses/lgpl.html
00008  */
00009 
00010 
00011 
00012 #ifndef GCPLAYER_H
00013 #define GCPLAYER_H
00014 
00015 #include "ColorType.h"
00016 #include "Layer.h"
00017 #include "ConfigurationSettings.h"
00018 #include "TypesFile.h"
00019 
00020 /**
00021  *  Adjusts the properties of a GCP layer.
00022  *
00023  *  A GCP layer consists of markers identifying locations in a scene that are used as
00024  *  ground control points.  The marker has three properties: color, symbol, and symbol
00025  *  size.  The size of the marker represents the number of pixels in diameter that the
00026  *  marker covers.  This class provides the means to set the properties for the current
00027  *  GCP layer and also the default properties for new GCP layers.
00028  *
00029  *  This subclass of Subject will notify upon the following conditions:
00030  *  - The following methods are called: setColor(), setSymbol(),
00031  *    setSymbolSize().
00032  *  - Everything else documented in Layer.
00033  *
00034  *  @see     Layer
00035  */
00036 class GcpLayer : public Layer
00037 {
00038 public:
00039    SETTING(MarkerColor, GcpLayer, ColorType, ColorType())
00040    SETTING(MarkerSize, GcpLayer, unsigned int, 0)
00041    SETTING(MarkerSymbol, GcpLayer, GcpSymbol, GCP_X)
00042 
00043    /**
00044     *  Emitted with any<ColorType> when a member element is externally deleted.
00045     */
00046    SIGNAL_METHOD(GcpLayer, ColorChanged)
00047    /**
00048     *  Emitted with any<SymbolType> when a member element is externally deleted.
00049     */
00050    SIGNAL_METHOD(GcpLayer, SymbolChanged)
00051    /**
00052     *  Emitted with any<int> when a member element is externally deleted.
00053     */
00054    SIGNAL_METHOD(GcpLayer, SizeChanged)
00055 
00056    /**
00057     *  Sets the marker color for the current GCP layer.
00058     *
00059     *  @param   colorType
00060     *           The new marker color.
00061     *
00062     *  @notify  This method will notify signalColorChanged with any<ColorType>.
00063     *
00064     *  @see     getColor()
00065     */
00066    virtual void setColor(const ColorType& colorType) = 0;
00067 
00068    /**
00069     *  Returns the marker color of the current GCP layer.
00070     *
00071     *  @return  The current marker color.
00072     *
00073     *  @see     setColor()
00074     */
00075    virtual ColorType getColor() const = 0;
00076 
00077    /**
00078     *  Sets the marker symbol for the current GCP layer.
00079     *
00080     *  @param   eSymbol
00081     *           The new marker symbol.
00082     *
00083     *  @notify  This method will notify signalSymbolChanged with any<SymbolType>.
00084     *
00085     *  @see     getSymbol()
00086     */
00087    virtual void setSymbol(const GcpSymbol& eSymbol) = 0;
00088 
00089    /**
00090     *  Returns the marker symbol of the current GCP layer.
00091     *
00092     *  @return  The current marker symbol.
00093     *
00094     *  @see     setSymbol()
00095     */
00096    virtual GcpSymbol getSymbol() const = 0;
00097 
00098    /**
00099     *  Sets the marker symbol size for the current GCP layer.
00100     *
00101     *  @param   iSize
00102     *           The new marker symbol size.
00103     *
00104     *  @notify  This method will notify signalSizeChanged with any<int>.
00105     *
00106     *  @see     getSymbolSize()
00107     */
00108    virtual void setSymbolSize(int iSize) = 0;
00109 
00110    /**
00111     *  Returns the marker symbol size of the current GCP layer.
00112     *
00113     *  @return  The current marker symbol size.
00114     *
00115     *  @see     setSymbolSize()
00116     */
00117    virtual int getSymbolSize() const = 0;
00118 
00119 protected:
00120    /**
00121     * This should be destroyed by calling SpatialDataView::deleteLayer.
00122     */
00123    virtual ~GcpLayer() {}
00124 };
00125 
00126 #endif

Software Development Kit - Opticks 4.9.0 Build 16218