00001 // -*- mode:c++ -*- 00017 class CutController 00018 { 00019 %TypeHeaderCode 00020 #include "controllers/CutController.h" 00021 %End 00022 00023 private: 00024 00025 CutController (); 00026 CutController ( const CutController & ); 00027 00028 public: 00029 00031 static CutController * instance (); 00039 Cut1DPlotter * addCut ( PlotterBase *, const std::string & ); 00044 PlotterBase * addCut ( PlotterBase *, 00045 std::vector< std::string > & ); 00046 00048 void addCut ( PlotterBase * ,PlotterBase * ); 00049 00053 void linkCutAndRep ( PlotterBase * , DataRep * ); 00054 00055 // /** Adds cut (associated with the given cut plotter)to the projector 00056 // of target rep and registers targetrep as the target of the 00057 // cut_plotter for cut plotter. 00058 // */ 00059 // void linkCutAndRep ( CutPlotter * , DataRep * ); 00060 00061 00068 PlotterBase * 00069 createCut ( const std::string & , 00070 const DataSource * , 00071 const std::vector < std::string > & , 00072 const Color & = Color::yellow ) const; 00073 00076 void removeCut ( PlotterBase * , PlotterBase * ); 00077 00078 // /** Clears and fills the @a cut_list with those PlotterBase objects 00079 // in @a plotter_list that are CutPlotter objects. 00080 // */ 00081 // void fillCutList ( const std::vector < PlotterBase * > & , 00082 // std::vector < CutPlotter * > & ); 00083 00084 // /** Clears and fills the @a cut_list with the CutPlotter objects 00085 // that target the @a data_rep. 00086 // */ 00087 // void fillCutList ( const DataRep * , 00088 // std::vector < PlotterBase * > & ); 00089 00090 // /** Returns a list of CutPlotter objects that are in PlotterBase 00091 // list and which use the same DataSource as @a ntuple. 00092 // */ 00093 // const std::vector < PlotterBase * > & 00094 // getCutList ( const std::vector < PlotterBase * > &, 00095 // const DataSource * ) const; 00096 00097 // /** Clears and fills the @a web with the PlotterBase objects in @a 00098 // plotters, each of their CutPlotter objects that target them, and 00099 // all of their targets. If the web could not be created, clears 00100 // the @a web. 00101 // */ 00102 // void fillCutWeb ( const std::vector < PlotterBase * > & , 00103 // std::vector < PlotterBase * > & ); 00104 00105 // /** Appends to the @a web the plotter and any cuts targeting the 00106 // contained active data rep. 00107 // */ 00108 // void appendToWeb ( PlotterBase * , PlotterList_t & ); 00109 00110 // /** Appends to the @a web the @a cutter if it is not already in it.*/ 00111 // void appendToWeb ( CutPlotter * , PlotterList_t & ); 00112 00113 // /** Appends to @a web all the targets of each @a cutters. */ 00114 // void appendToWeb ( const std::vector < PlotterBase * > & , 00115 // PlotterList_t & ); 00116 00120 PlotterBase * findPlotter ( const DataRep * ); 00121 00122 // /** Fills the @a cut_map with the TupleCut objects contained the 00123 // list of views, if any. The key of the map is the address of 00124 // the TupleCut object represented as integer. */ 00125 // void fillTupleCutList ( const std::vector < const ViewBase * > & , 00126 // std::vector < TupleCut * > & ); 00127 00128 // /** Connects the DataRep objects to its appropriate (cut) PlotterBase. This 00129 // method is intended to be used when creating new objects that are 00130 // copies of old ones If the newly created object contains cuts, 00131 // then it's corresponding (cut) PlotterBase needs to add it to its target 00132 // list. In the list @a views, the appropriate (cut) PlotterBase object 00133 // should be found. */ 00134 // void connectDataRep ( const std::list < ViewBase * > & , 00135 // const std::vector < const ViewBase * > & ); 00136 00140 void setAxisBinding ( PlotterBase * , 00141 const std::string & , 00142 const std::string & ); 00143 00144 // /** Sets the zoom/pan status of plotter. If @a yes is @c true, the 00145 // @a plotter is put in list of plotters with the zoom pan mode set, 00146 // otherwise it is removed from the list. 00147 // */ 00148 // void setZoomPan ( PlotterBase * , 00149 // hippodraw::Axes::Type , 00150 // bool ); 00151 00152 // /** Returns @c true if @a plotter is in zoom/pan list. 00153 // */ 00154 // bool isZoomPan ( const PlotterBase * , 00155 // hippodraw::Axes::Type ) const; 00156 };