ODIN
|
#include <seqvec.h>
Public Member Functions | |
SeqVector (const STD_string &object_label="unnamedSeqVector") | |
SeqVector (const STD_string &object_label, unsigned int nindices, int slope=1, int offset=0) | |
SeqVector (const SeqVector &sv) | |
virtual | ~SeqVector () |
SeqVector & | operator= (const SeqVector &sv) |
virtual unsigned int | get_vectorsize () const |
virtual unsigned int | get_numof_iterations () const |
virtual bool | needs_unrolling_check () const |
virtual bool | prep_iteration () const |
virtual int | get_current_index () const |
int | get_acq_index () const |
virtual bool | is_qualvector () const |
virtual bool | is_acq_vector () const |
virtual bool | is_obj_vector () const |
virtual svector | get_vector_commands (const STD_string &iterator) const |
virtual STD_string | get_loopcommand () const |
SeqVector & | set_indexvec (const ivector &iv) |
ivector | get_indexvec () const |
SeqVector & | set_reorder_scheme (reorderScheme scheme, unsigned int nsegments=1) |
SeqVector & | set_encoding_scheme (encodingScheme scheme) |
const SeqVector & | get_reorder_vector () const |
virtual nestingRelation | get_nesting_relation () const |
iarray | get_index_matrix () const |
int | get_current_reord_index () const |
STD_string | get_reord_iterator (const STD_string &iterator) const |
Public Member Functions inherited from SeqClass | |
SeqClass & | set_temporary () |
Public Member Functions inherited from Labeled | |
Labeled (const STD_string &label="unnamed") | |
Labeled & | set_label (const STD_string &label) |
const STD_string & | get_label () const |
Labeled & | operator= (const Labeled &l) |
Protected Member Functions | |
virtual svector | get_reord_vector_commands (const STD_string &iterator) const |
bool | is_handled () const |
Protected Member Functions inherited from SeqClass | |
void | marshall_error () const |
virtual void | clear_container () |
virtual bool | prep () |
Friends | |
class | SeqReorderVector |
class | SeqCounter |
class | SeqObjLoop |
class | SeqSimultanVector |
Additional Inherited Members | |
Static Protected Member Functions inherited from SeqClass | |
static void | clear_temporary () |
static void | clear_containers () |
This is the base class for all vector objects, i.e. objects that can can take different values while looping over them.
SeqVector::SeqVector | ( | const STD_string & | object_label = "unnamedSeqVector" | ) |
Default Constructor
SeqVector::SeqVector | ( | const STD_string & | object_label, |
unsigned int | nindices, | ||
int | slope = 1 , |
||
int | offset = 0 |
||
) |
Constructs an index vector labeled 'object_label' with the following properties:
SeqVector::SeqVector | ( | const SeqVector & | sv | ) |
Copy Constructor
|
virtual |
Destructor
int SeqVector::get_acq_index | ( | ) | const |
Returns the current index relevant for acquisition (reco dimensions). This is the value of the index vector (set_indexvec) at the position returned by 'get_current_index'.
|
virtual |
Overload this function to return the current index, intended to use it in combination with reordering of phase encoding steps or slices
int SeqVector::get_current_reord_index | ( | ) | const |
Returns the current index of the reordering vector
iarray SeqVector::get_index_matrix | ( | ) | const |
Returns a matrix whereby the elements of rows (second dimension) contain the reordered index for each iteration. The other dimension (first dimension) represents reordering iterations.
|
inline |
|
inlinevirtual |
Overload this function to return the command to iterate to the next item at the end of the loop
Reimplemented in SeqSimultanVector.
|
virtual |
Returns the nesting relation between the vector and its reordering vector
Reimplemented in SeqSimultanVector.
|
virtual |
Returns the number of iterations with proper consideration of reordering, e.g. if the vector has N values distributed over M reordering segments, this function will return N/M.
Reimplemented in SeqSimultanVector.
STD_string SeqVector::get_reord_iterator | ( | const STD_string & | iterator | ) | const |
Returns the iterator as modified by the reorder vector as C code
|
inlineprotectedvirtual |
const SeqVector& SeqVector::get_reorder_vector | ( | ) | const |
Returns the reordering vector (for loop insertion)
|
inlinevirtual |
If the vector is used as a variable in the code-generated pulse program, overload this function to return a unique label/command for the vector which is either attached to the loop (Bruker), or executed at the beginning of the loop (EPIC).
Reimplemented in SeqSimultanVector, SeqRotMatrixVector, SeqFlipAngVector, and SeqFreqChan.
|
inlinevirtual |
Overload this function to return the number of elements in the vector (regardless of reordering)
Reimplemented in SeqSimultanVector, SeqRotMatrixVector, SeqFlipAngVector, SeqObjVector, and SeqFreqChan.
|
virtual |
Returns whether this vector is used to specify an acquisition dimension through the set_*_vector(...) functions of all classes derived from SeqAcqInterface
Reimplemented in SeqObjVector.
|
inlineprotected |
|
inlinevirtual |
Returns whether this vector uses a different set of sequence objects at each repetition
Reimplemented in SeqObjVector.
|
virtual |
Overload this function to tell whether the vector qualitatively alters the sequence concerning timings and RF power deposition. This is useful for accelerating duration and SAR calculations (Siemens).
Reimplemented in SeqSimultanVector, SeqRotMatrixVector, SeqObjVector, SeqFreqChan, SeqDiffWeightFlowComp, and SeqDiffWeight.
|
inlinevirtual |
Overload this function to trigger a check whether the loop must possibly be unrolled in pulse or gradient program
Reimplemented in SeqSimultanVector, SeqRotMatrixVector, SeqFlipAngVector, and SeqObjVector.
Assignment operator that makes this vector become a copy of 'sv'
|
inlinevirtual |
Overload this function to prepare objects at run-time before the execution of a loop repetition return 'false' when preparation fails
Reimplemented in SeqSimultanVector, SeqRotMatrixVector, SeqFlipAngVector, and SeqFreqChan.
SeqVector& SeqVector::set_encoding_scheme | ( | encodingScheme | scheme | ) |
Sets the encoding scheme
SeqVector& SeqVector::set_reorder_scheme | ( | reorderScheme | scheme, |
unsigned int | nsegments = 1 |
||
) |
Sets the reordering scheme and the number of segments