00001 // -*- mode:c++ -*- 00002 00020 class DataRep 00021 { 00022 %TypeHeaderCode 00023 #include "datareps/DataRep.h" 00024 %End 00025 00026 protected: 00027 00028 // /** A projector used to transform data to projected values that will 00029 // be plotted. A display may have multiple projectors that make up 00030 // its composite display. This data member points to the one that 00031 // should receive messages from the display. Projectors are owned 00032 // by the plotters that use them, and the projectors are responsible 00033 // for deleting the plotters. */ 00034 // ProjectorBase * m_projector; 00035 00036 // /** There are times when a given DataRep results from some operations 00037 // performed on some other DataRep. The following variable contains pointer 00038 // to the original data rep*/ 00039 // DataRep * m_parent_datarep; 00040 00042 DataRep ( ); 00043 00045 DataRep ( const DataRep & ); 00046 00047 00048 public: 00049 00051 virtual ~DataRep(); 00052 00055 virtual DataRep * clone () = 0; 00056 00058 const std::string & name () const; 00059 00061 virtual void update ( const Observable * ); 00062 00069 virtual bool hasErrorDisplay ( ) const; 00070 00073 virtual bool hasNTupleBindings () const; 00074 00081 virtual void setAxisBinding ( const std::string & , 00082 const std::string & ); 00083 00090 virtual 00091 void setAxisBindings ( const std::vector < std::string > & ); 00092 00100 virtual void matrixTranspose ( bool ); 00101 00102 // /** Draws the projected values.. Each of the @ref 00103 // overview_projectedvalue objects will be drawn in @a view after a 00104 // coordinate transform represented by @a transform using its m_rep 00105 // object. Uses its @ref overview_projector object to access the 00106 // projected values stored in a NTuple. Some DataRep object may be 00107 // dependent on the projected value objects are returned in a 00108 // certain order. 00109 // */ 00110 // virtual void drawProjectedValues ( TransformBase * , 00111 // ViewBase * ); 00112 00113 // /** Returns the smallest positive number from in the range of the 00114 // data. */ 00115 // double getPosRange ( hippodraw::Axes::Type ); 00116 00118 RepBase * getRepresentation () const; 00119 00121 const Color & getRepColor () const; 00122 00125 bool isDirty () const; 00126 00127 // /** Returns true if the error bars are being displayed. */ 00128 // bool isErrorDisplayed ( hippodraw::Axes::Type ) const; 00129 00136 // Range preferredRange ( hippodraw::Axes::Type ); 00137 00138 // /** Sets the AxisModel for axis @a axis. */ 00139 // void setAxisModel ( hippodraw::Axes::Type , AxisModelBase * ); 00140 00141 // /** Sets the display of error bar, if applicable, on the specified 00142 // @a axis. */ 00143 // void setErrorDisplay ( hippodraw::Axes::Type , bool ); 00144 00150 virtual void setRepresentation ( RepBase * ); 00151 00153 void setRepColor ( const Color & ); 00154 00156 void setRepSize ( float ); 00157 00160 void setRepStyle ( int ); 00161 00162 00165 virtual void setDirty ( bool = true ); 00166 00167 // /** Sets the range of the @a axis. The optional @a const_width 00168 // parameter if @c true, tells binning projectors to hold a 00169 // constant bin width parameter. */ 00170 // void setRange ( hippodraw::Axes::Type, bool = true ); 00171 00172 00173 // /** Returns the Projector object controlling the data. */ 00174 // virtual ProjectorBase * getProjector ( ) const; 00175 00177 virtual bool needColorRep() const; 00178 00183 virtual void setSelected ( bool = true ); 00184 00188 virtual bool isSelected ( ) const; 00189 00195 virtual bool acceptFunction ( int ); 00196 00199 virtual bool hasZeroRows ( ); 00200 00206 virtual void addValues ( const std::vector < double > & ); 00207 00210 virtual const DataSource * getProjectedValues (); 00211 00214 virtual NTuple * getNTupleAfterCuts () const; 00215 00219 virtual double getMean ( const std::string & ); 00220 00224 virtual double getRMS ( const std::string & ); 00225 00226 // /** Returns @c true if the specified axis is binned, otherwise returns 00227 // @c false. 00228 // */ 00229 // bool isAxisBinned ( hippodraw::Axes::Type ) const; 00230 00232 virtual DataRep * getParentDataRep(); 00233 00235 virtual void setParentDataRep( DataRep * ); 00236 00242 virtual void update (); 00243 00246 virtual void normalizeTo ( const DataRep * ); 00247 00248 // /** Sets the bin width, if binned, on specified @a axis to @a 00249 // width. 00250 // */ 00251 // void setBinWidth ( hippodraw::Axes::Type , double ); 00252 00255 int getNumberOfEntries () const; 00256 00264 virtual bool isTargetable () const; 00265 00266 // /** Returns @c true if the data representation has specified axis 00267 // type @a axis 00268 // */ 00269 // virtual bool hasAxis ( hippodraw::Axes::Type axis ) const = 0; 00270 00271 00272 00273 };