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 #ifndef POLARGRIDLINES_H 00011 #define POLARGRIDLINES_H 00012 00013 #include "Gridlines.h" 00014 00015 /** 00016 * Circular gridlines for a PolarPlot. 00017 * 00018 * This subclass of Subject will notify upon the following conditions: 00019 * - The setRadialInterval() method is called. 00020 * - Everything else documented in Gridlines. 00021 * 00022 * @see Gridlines 00023 */ 00024 class PolarGridlines : public Gridlines 00025 { 00026 public: 00027 /** 00028 * Sets the angular interval of the lines extending out from the center of 00029 * the polar plot. 00030 * 00031 * @param angle 00032 * The angular interval for the lines extending out from the plot 00033 * center in degrees. The value should be between 0.0 and 360.0. 00034 * 00035 * @notify This method notifies Subject::signalModified() if the given 00036 * interval is different than the current interval. 00037 */ 00038 virtual void setRadialInterval(double angle) = 0; 00039 00040 /** 00041 * Returns the angular interval of the lines extending out from the center 00042 * of the polar plot. 00043 * 00044 * @return The angular interval for the lines extending out from the plot 00045 * center in degrees. The value ranges from 0.0 to 360.0. 00046 */ 00047 virtual double getRadialInterval() const = 0; 00048 00049 protected: 00050 /** 00051 * A plug-in cannot create this object, it can only retrieve an already 00052 * existing object by calling PolarPlot::getGridlines(). The polar plot 00053 * manages its own instance of this object. 00054 */ 00055 virtual ~PolarGridlines() {} 00056 }; 00057 00058 #endif