00001 /* 00002 NPlot - A charting library for .NET 00003 00004 IPlotSurface2D.cs 00005 Copyright (C) 2003 00006 Paolo Pierini, Matt Howlett 00007 00008 Redistribution and use of NPlot or parts there-of in source and 00009 binary forms, with or without modification, are permitted provided 00010 that the following conditions are met: 00011 00012 1. Re-distributions in source form must retain at the head of each 00013 source file the above copyright notice, this list of conditions 00014 and the following disclaimer. 00015 00016 2. Any product ("the product") that makes use NPlot or parts 00017 there-of must either: 00018 00019 (a) allow any user of the product to obtain a complete machine- 00020 readable copy of the corresponding source code for the 00021 product and the version of NPlot used for a charge no more 00022 than your cost of physically performing source distribution, 00023 on a medium customarily used for software interchange, or: 00024 00025 (b) reproduce the following text in the documentation, about 00026 box or other materials intended to be read by human users 00027 of the product that is provided to every human user of the 00028 product: 00029 00030 "This product includes software developed as 00031 part of the NPlot library project available 00032 from: http://www.nplot.com/" 00033 00034 The words "This product" may optionally be replace with 00035 the actual name of the product. 00036 00037 ------------------------------------------------------------------------ 00038 00039 THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00040 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00041 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 00042 IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 00043 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 00044 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00045 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00046 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00047 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 00048 THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00049 00050 */ 00051 using System; 00052 using System.Collections; 00053 00054 namespace NPlot 00055 { 00056 00062 public interface IPlotSurface2D 00063 { 00064 00071 void Add( IDrawable p, int zOrder ); 00072 00073 00082 void Add( IDrawable p, NPlot.PlotSurface2D.XAxisPosition xp, NPlot.PlotSurface2D.YAxisPosition yp, int zOrder ); 00083 00084 00090 void Add(IDrawable p); 00091 00092 00100 void Add(IDrawable p, NPlot.PlotSurface2D.XAxisPosition xax, NPlot.PlotSurface2D.YAxisPosition yax); 00101 00102 00106 void Clear(); 00107 00108 00112 NPlot.Legend Legend { get; set; } 00113 00118 int LegendZOrder { get; set; } 00119 00124 int Padding { get; set; } 00125 00126 00130 System.Drawing.Color PlotBackColor { set; } 00131 00132 00136 System.Drawing.Bitmap PlotBackImage { set; } 00137 00138 00142 IRectangleBrush PlotBackBrush { set; } 00143 00144 00148 string Title { get; set; } 00149 00150 00155 bool AutoScaleTitle { get; set; } 00156 00157 00166 bool AutoScaleAutoGeneratedAxes { get; set; } 00167 00168 00172 System.Drawing.Color TitleColor { set; } 00173 00174 00178 System.Drawing.Brush TitleBrush { get; set; } 00179 00180 00184 System.Drawing.Font TitleFont { get; set; } 00185 00186 00190 System.Drawing.Drawing2D.SmoothingMode SmoothingMode { get; set; } 00191 00192 00198 void AddAxesConstraint( AxesConstraint c ); 00199 00200 00204 Axis XAxis1 { get; set; } 00205 00206 00210 Axis XAxis2 { get; set; } 00211 00212 00216 Axis YAxis1 { get; set; } 00217 00218 00222 Axis YAxis2 { get; set; } 00223 00224 00230 void Remove( IDrawable p, bool updateAxes ); 00231 00232 00236 ArrayList Drawables { get; } 00237 00238 /* 00244 void AutoCalculateAxes(); 00245 00246 00251 void UpdateAxes( IPlot p ); 00252 */ 00253 00254 } 00255 }