00001 /*************************************************************************** 00002 seqgradchanlist.h - description 00003 ------------------- 00004 begin : Thu Apr 22 2004 00005 copyright : (C) 2001 by Thies H. Jochimsen 00006 email : jochimse@cns.mpg.de 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef SEQGRADCHANLIST_H 00019 #define SEQGRADCHANLIST_H 00020 00021 00022 #include <odinseq/seqgradchan.h> 00023 00033 class SeqGradChanList : public List<SeqGradChan,SeqGradChan*, SeqGradChan&>, public Handled<SeqGradChanList*>, public virtual SeqGradInterface, public virtual SeqTreeObj { 00034 00035 public: 00036 00040 SeqGradChanList(const STD_string& object_label = "unnamedSeqGradChanList" ); 00041 00045 SeqGradChanList(const SeqGradChanList& sgcl); 00046 00050 ~SeqGradChanList(); 00051 00052 00056 SeqGradChanList& operator = (const SeqGradChanList& sgcl); 00057 00058 00059 // overloading virtual function from SeqTreeObj 00060 double get_duration() const; 00061 STD_string get_properties() const; 00062 unsigned int event(eventContext& context) const; 00063 void query(queryContext& context) const; 00064 00065 // overloading virtual function from SeqGradInterface 00066 SeqGradInterface& set_strength(float gradstrength); 00067 SeqGradInterface& invert_strength(); 00068 float get_strength() const; 00069 fvector get_gradintegral() const; 00070 double get_gradduration() const; 00071 SeqGradInterface& set_gradrotmatrix(const RotMatrix& matrix); 00072 00073 00077 direction get_channel() const; 00078 00082 SeqGradChanList& operator += (SeqGradChanList& sgcl); 00083 00087 SeqGradChanList& operator += (SeqGradChan& sgc); 00088 00089 00090 fvector get_switchpoints() const; 00091 SeqGradChanList& get_chanlist4gp(const fvector& switchpoints); 00092 00093 private: 00094 00095 friend class SeqGradChanParallel; 00096 00097 // overloading virtual function from SeqClass 00098 void clear_container(); 00099 00100 00101 00102 SeqGradChan* get_chan(double& chanstart, double midtime); 00103 00104 }; 00105 00106 00110 #endif
1.5.6