ODIN
seqgradpulse.h
1 /***************************************************************************
2  seqgradpulse.h - description
3  -------------------
4  begin : Tue Aug 13 2002
5  copyright : (C) 2000-2021 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 SEQGRADPULSE_H
19 #define SEQGRADPULSE_H
20 
21 #include <odinseq/seqgradconst.h>
22 #include <odinseq/seqgradvec.h>
23 #include <odinseq/seqgradchanlist.h>
24 #include <odinseq/seqgradchanparallel.h>
25 
26 
27 
35 
42 
43  public:
50  SeqGradConstPulse(const STD_string& object_label,direction gradchannel, float gradstrength, float gradduration);
51 
52 
57 
61  SeqGradConstPulse(const STD_string& object_label = "unnamedSeqGradConstPulse");
62 
67 
68 
72  SeqGradConstPulse& set_constduration(float duration) {constgrad.set_duration(duration);return *this;};
73 
74 
78  double get_constduration() const {return constgrad.get_gradduration();}
79 
80 
81  // overloading virtual function from SeqGradInterface
82  SeqGradInterface& set_strength(float gradstrength);
83 
84 
85  private:
86  SeqGradConst constgrad;
87  SeqGradDelay offgrad;
88 
89 };
90 
91 
92 
94 
104 
105  public:
113  SeqGradVectorPulse(const STD_string& object_label,direction gradchannel, float maxgradstrength,
114  const fvector& trimarray, float gradduration);
115 
120 
124  SeqGradVectorPulse(const STD_string& object_label = "unnamedSeqGradVectorPulse");
125 
130 
131 
135  SeqGradVectorPulse& set_trims(const fvector& trims) { vectorgrad.set_trims(trims); return *this;}
136 
140  fvector get_trims() const {return vectorgrad.get_trims();}
141 
145  SeqGradVectorPulse& set_reorder_scheme(reorderScheme scheme,unsigned int nsegments=1) {vectorgrad.set_reorder_scheme(scheme,nsegments); return *this;}
146 
147 
151  SeqGradVectorPulse& set_encoding_scheme(encodingScheme scheme) {vectorgrad.set_encoding_scheme(scheme); return *this;}
152 
156  const SeqVector& get_reorder_vector() const {return vectorgrad.get_reorder_vector();}
157 
161  SeqGradVectorPulse& set_constduration(float duration){vectorgrad.set_duration(duration);return *this;};
162 
166  double get_constduration() const {return vectorgrad.get_gradduration();}
167 
171  operator const SeqVector& () const {return vectorgrad;}
172 
173 
174  // overloading virtual function from SeqGradInterface
175  SeqGradInterface& set_strength(float gradstrength);
176 
177  private:
178  friend class SeqGradPhaseEnc;
179  friend class SeqGradEcho;
180 
181  SeqGradVector vectorgrad;
182  SeqGradDelay offgrad;
183 };
184 
185 
186 
187 
191 #endif
SeqDur & set_duration(float duration)
double get_gradduration() const
Definition: seqgradchan.h:139
Constant gradient pulse.
Definition: seqgradpulse.h:41
SeqGradConstPulse & operator=(const SeqGradConstPulse &sgcp)
SeqGradConstPulse(const SeqGradConstPulse &sgcp)
SeqGradConstPulse & set_constduration(float duration)
Definition: seqgradpulse.h:72
double get_constduration() const
Definition: seqgradpulse.h:78
SeqGradConstPulse(const STD_string &object_label="unnamedSeqGradConstPulse")
SeqGradInterface & set_strength(float gradstrength)
SeqGradConstPulse(const STD_string &object_label, direction gradchannel, float gradstrength, float gradduration)
Constant gradient.
Definition: seqgradconst.h:33
Gradient delay.
Definition: seqgradconst.h:84
Gradient echo module.
Definition: seqgradecho.h:45
Phase Encoding.
Definition: seqgradphase.h:37
Vector of gradient pulses.
Definition: seqgradpulse.h:103
SeqGradVectorPulse & set_trims(const fvector &trims)
Definition: seqgradpulse.h:135
SeqGradVectorPulse(const STD_string &object_label="unnamedSeqGradVectorPulse")
SeqGradVectorPulse & set_constduration(float duration)
Definition: seqgradpulse.h:161
double get_constduration() const
Definition: seqgradpulse.h:166
SeqGradVectorPulse & operator=(const SeqGradVectorPulse &sgvp)
fvector get_trims() const
Definition: seqgradpulse.h:140
SeqGradVectorPulse & set_reorder_scheme(reorderScheme scheme, unsigned int nsegments=1)
Definition: seqgradpulse.h:145
SeqGradVectorPulse(const SeqGradVectorPulse &sgvp)
SeqGradVectorPulse(const STD_string &object_label, direction gradchannel, float maxgradstrength, const fvector &trimarray, float gradduration)
SeqGradInterface & set_strength(float gradstrength)
const SeqVector & get_reorder_vector() const
Definition: seqgradpulse.h:156
SeqGradVectorPulse & set_encoding_scheme(encodingScheme scheme)
Definition: seqgradpulse.h:151
Vector of constant gradients.
Definition: seqgradvec.h:38
fvector get_trims() const
Definition: seqgradvec.h:69
SeqGradVector & set_trims(const fvector &trims)
SeqVector & set_reorder_scheme(reorderScheme scheme, unsigned int nsegments=1)
const SeqVector & get_reorder_vector() const
SeqVector & set_encoding_scheme(encodingScheme scheme)
direction
Definition: odinpara.h:41
encodingScheme
Definition: seqvec.h:37
reorderScheme
Definition: seqvec.h:48