seqgradvec.h
1 /***************************************************************************
2  seqgradvec.h - description
3  -------------------
4  begin : Tue Aug 13 2002
5  copyright : (C) 2000-2015 by Thies H. Jochimsen
6  email : thies@jochimsen.de
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef SEQGRADVEC_H
19 #define SEQGRADVEC_H
20 
21 #include <odinseq/seqgradchan.h>
22 #include <odinseq/seqvec.h>
23 
24 
38 class SeqGradVector : public SeqGradChan, public SeqVector {
39 
40  public:
48  SeqGradVector(const STD_string& object_label,direction gradchannel,
49  float maxgradstrength,const fvector& trimarray, double gradduration);
50 
54  SeqGradVector(const SeqGradVector& sgv);
55 
59  SeqGradVector(const STD_string& object_label = "unnamedSeqGradVector");
60 
64  SeqGradVector& set_trims(const fvector& trims);
65 
69  fvector get_trims() const {return trimvals;}
70 
71 
76 
77 
78  private:
79  friend class SeqGradSubVector;
80  friend class SeqGradVectorPulse;
81 
82  // overwriting virtual functions from SeqClass
83  bool prep();
84 
85  // overwriting virtual functions from SeqGradChan
86  SeqGradChan& get_subchan(double starttime, double endtime) const;
87  STD_string get_grdpart(float matrixfactor) const;
88  float get_integral() const {return get_current_strength()*get_gradduration();}
89 
90 
91  // overwriting virtual functions from SeqVector
92  svector get_vector_commands(const STD_string& iterator) const;
93  unsigned int get_vectorsize() const;
94  bool prep_iteration() const;
95  bool is_qualvector() const {return false;}
96  svector get_reord_vector_commands(const STD_string& iterator) const;
97 
98 
99  float get_current_strength() const;
100 
101  const SeqGradVector* parent;
102 
103  fvector trimvals;
104 };
105 
106 
107 
108 
112 
114 
115 
116 
117 
118 
119 #endif
virtual bool prep()
Definition: seqclass.h:116
SeqGradVector & set_trims(const fvector &trims)
Vector of constant gradients.
Definition: seqgradvec.h:38
Vector of gradient pulses.
Definition: seqgradpulse.h:103
SeqGradVector & operator=(const SeqGradVector &sgv)
SeqGradVector(const STD_string &object_label, direction gradchannel, float maxgradstrength, const fvector &trimarray, double gradduration)
fvector get_trims() const
Definition: seqgradvec.h:69
direction
Definition: odinpara.h:38
double get_gradduration() const
Definition: seqgradchan.h:139