|
||||
File indexing completed on 2025-01-18 09:28:09
0001 // -*- C++ -*- 0002 // AID-GENERATED 0003 // ========================================================================= 0004 // This class was generated by AID - Abstract Interface Definition 0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 0006 // ========================================================================= 0007 #ifndef AIDA_IPLOTTERREGION_H 0008 #define AIDA_IPLOTTERREGION_H 1 0009 0010 // This file is part of the AIDA library 0011 // Copyright (C) 2002 by the AIDA team. All rights reserved. 0012 // This library is free software and under the terms of the 0013 // GNU Library General Public License described in the LGPL.txt 0014 0015 #include <string> 0016 #include <vector> 0017 0018 namespace AIDA { 0019 0020 class IBaseHistogram; 0021 class IDataPointSet; 0022 class IFunction; 0023 class IInfo; 0024 class IPlotterLayout; 0025 class IPlotterStyle; 0026 0027 /** 0028 * User level interface to a plotter region. 0029 * A region is managed by a plotter. 0030 * A region must be seen as a scene manager handling 0031 * a custome "plotting" scene. In general this kind of scene 0032 * may be in 2D or 3D. In 2D, the scene have "coarse graining parts" 0033 * like two axis, data representations within the axis. It may have 0034 * various other parts like a grid, a title, an info area. In 3D, 0035 * the scene have in general three axis, 0036 * a different global layout, some data representations within the 0037 * axis area and also scene parts like title, grid, etc... 0038 * 0039 * To customize all these, some "style" interfaces had been introduced. 0040 * In general there is one style interface per "scene part" ; then 0041 * IAxisStyle, IDataStyle, ITitleStyle, IInfoStyle. Oftenly 0042 * a "scene part" contains text, line, fill area, etc.... For example 0043 * an "axis" have a line, ticks, text for tick labels, text for 0044 * the label of the axis, the magnitude, etc... A "coarse graining scene part" 0045 * style contains various accessor to "atomic" styles like IMarkerStyle, 0046 * ILineStyle, IFillStyle that permits to build a "customization block" 0047 * to modify a scene part. 0048 * 0049 * A global style "block", the IPlotterStyle, could be retreived 0050 * from a plotting region. This global style block have accessors 0051 * to the various "coarse graining scene parts" of the plotting scene. 0052 * Through it, we hope to offer a lot of customization in a convenient 0053 * way... 0054 * 0055 * The keywords "scene" and "part" had been borrowed from the 0056 * OpenInventor terminology. 0057 * 0058 * @author The AIDA team (http://aida.freehep.org/) 0059 * 0060 */ 0061 0062 class IPlotterRegion { 0063 0064 public: 0065 /// Destructor. 0066 virtual ~IPlotterRegion() { /* nop */; } 0067 0068 /** 0069 * Add a data analysis object (histogram, function, cloud,...) 0070 * in the list of things to plot in the region. 0071 * Activate the underlying graphic toolkit in order to bring 0072 * something in the screen window(s) attached to the plotter. 0073 * It assumes that the plotter had been mapped on the 0074 * screen with its show method. 0075 */ 0076 virtual bool plot(const IBaseHistogram & histogram, const std::string & options = "") = 0; 0077 0078 virtual bool plot(const IBaseHistogram & histogram, const IPlotterStyle & style, const std::string & options = "") = 0; 0079 0080 virtual bool plot(const IFunction & function, const std::string & options = "") = 0; 0081 0082 virtual bool plot(const IFunction & function, const IPlotterStyle & style, const std::string & options = "") = 0; 0083 0084 virtual bool plot(const IDataPointSet & dataPointSet, const std::string & options = "") = 0; 0085 0086 virtual bool plot(const IDataPointSet & dataPointSet, const IPlotterStyle & style, const std::string & options = "") = 0; 0087 0088 /** 0089 * Remove a data analysis object in the list of things to plot in the region. 0090 * Activate the graphic layer to update the screen window. 0091 */ 0092 virtual bool remove(const IBaseHistogram & histogram) = 0; 0093 0094 virtual bool remove(const IFunction & function) = 0; 0095 0096 virtual bool remove(const IDataPointSet & dataPointSet) = 0; 0097 0098 /** 0099 * Clear the list of things to plot in the region. 0100 * Clear the corresponding area on screen window(s). 0101 */ 0102 virtual void clear() = 0; 0103 0104 /** 0105 * Set various plotting paramters for the region. 0106 * Activate the graphic layer and update the screen window(s) 0107 * if needed. 0108 */ 0109 virtual bool setParameter(const std::string & parameter, const std::string & options = "") = 0; 0110 0111 /** 0112 * Get value of a parameter. 0113 * @param paramName Name of the parameter. 0114 * @return the value. 0115 */ 0116 virtual std::string parameterValue(const std::string & parameter) const = 0; 0117 0118 virtual std::vector<std::string> availableParameterOptions(const std::string & parameter) const = 0; 0119 0120 virtual std::vector<std::string> availableParameters() const = 0; 0121 0122 /** 0123 * Get the style of the region. 0124 */ 0125 virtual IPlotterStyle & style() = 0; 0126 0127 /** 0128 * Set the style of a region. 0129 */ 0130 virtual bool setStyle(const IPlotterStyle & style) = 0; 0131 0132 /** 0133 * Set the style of a region and apply it to scene objects. 0134 */ 0135 virtual bool applyStyle(const IPlotterStyle & style) = 0; 0136 0137 /** 0138 * Set the title of a region. 0139 */ 0140 virtual void setTitle(const std::string & title) = 0; 0141 0142 /** 0143 * Set limit of an axis representation the region area. 0144 */ 0145 virtual bool setXLimits(double min = 0, double max = 0) = 0; 0146 0147 virtual bool setYLimits(double min = 0, double max = 0) = 0; 0148 0149 virtual bool setZLimits(double min = 0, double max = 0) = 0; 0150 0151 /** 0152 * To customize axis position,etc... 0153 * Change object position in the scence. 0154 */ 0155 virtual IPlotterLayout & layout() = 0; 0156 0157 virtual bool setLayout(const IPlotterLayout & layout) = 0; 0158 0159 /** 0160 * Return an IInfo object describing the info area. 0161 */ 0162 virtual IInfo & info() = 0; 0163 }; // class 0164 } // namespace AIDA 0165 #endif /* ifndef AIDA_IPLOTTERREGION_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |