AnnotationLayer.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 ANNOTATIONLAYER_H
00013 #define ANNOTATIONLAYER_H
00014 
00015 #include "GraphicLayer.h"
00016 #include "LocationType.h"
00017 
00018 #include <list>
00019 #include <string>
00020 
00021 /**
00022  *  Adjusts the properties of an Annotation layer.
00023  *
00024  *  This subclass of Subject will notify upon the following conditions:
00025  *  - Everything else documented in GraphicLayer.
00026  *
00027  *  @see     Layer
00028  */
00029 class AnnotationLayer : public GraphicLayer
00030 {
00031 public:
00032    /**
00033     * Correct the coordinate for whatever snapping may be required.
00034     *
00035     * AnnotationLayer will snap to gridlines if the user has selected this
00036     * option in the GUI.
00037     *
00038     * @param coord
00039     *        Coordinate to correct.
00040     *
00041     * @return The corrected coordinate.
00042     */
00043    virtual LocationType correctCoordinate(const LocationType &coord) const = 0;
00044 
00045 protected:
00046    /**
00047     * This should be destroyed by calling SpatialDataView::deleteLayer.
00048     */
00049    virtual ~AnnotationLayer() {}
00050 };
00051 
00052 #endif

Software Development Kit - Opticks 4.9.0 Build 16218