ODIN
Public Member Functions | Protected Member Functions | Friends | List of all members

#include <seqvec.h>

Inheritance diagram for SeqVector:
Inheritance graph
[legend]

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 ()
 
SeqVectoroperator= (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
 
SeqVectorset_indexvec (const ivector &iv)
 
ivector get_indexvec () const
 
SeqVectorset_reorder_scheme (reorderScheme scheme, unsigned int nsegments=1)
 
SeqVectorset_encoding_scheme (encodingScheme scheme)
 
const SeqVectorget_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
SeqClassset_temporary ()
 
- Public Member Functions inherited from Labeled
 Labeled (const STD_string &label="unnamed")
 
Labeledset_label (const STD_string &label)
 
const STD_string & get_label () const
 
Labeledoperator= (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 ()
 

Detailed Description

This is the base class for all vector objects, i.e. objects that can can take different values while looping over them.

Definition at line 70 of file seqvec.h.

Constructor & Destructor Documentation

◆ SeqVector() [1/3]

SeqVector::SeqVector ( const STD_string &  object_label = "unnamedSeqVector")

Default Constructor

◆ SeqVector() [2/3]

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:

  • nindices: the total number of iterations
  • slope: the number of indices per iteration
  • offset: the offset of the indices, i.e. the index of the first iteration

◆ SeqVector() [3/3]

SeqVector::SeqVector ( const SeqVector sv)

Copy Constructor

◆ ~SeqVector()

virtual SeqVector::~SeqVector ( )
virtual

Destructor

Member Function Documentation

◆ get_acq_index()

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'.

◆ get_current_index()

virtual int SeqVector::get_current_index ( ) const
virtual

Overload this function to return the current index, intended to use it in combination with reordering of phase encoding steps or slices

◆ get_current_reord_index()

int SeqVector::get_current_reord_index ( ) const

Returns the current index of the reordering vector

◆ get_index_matrix()

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.

◆ get_indexvec()

ivector SeqVector::get_indexvec ( ) const
inline

Returns the vector of indices 'iv' which will be returned by get_acq_index, i.e. the assign reco indices (positions in k-space)

Definition at line 189 of file seqvec.h.

◆ get_loopcommand()

virtual STD_string SeqVector::get_loopcommand ( ) const
inlinevirtual

Overload this function to return the command to iterate to the next item at the end of the loop

Reimplemented in SeqSimultanVector.

Definition at line 176 of file seqvec.h.

◆ get_nesting_relation()

virtual nestingRelation SeqVector::get_nesting_relation ( ) const
virtual

Returns the nesting relation between the vector and its reordering vector

Reimplemented in SeqSimultanVector.

◆ get_numof_iterations()

virtual unsigned int SeqVector::get_numof_iterations ( ) const
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.

◆ get_reord_iterator()

STD_string SeqVector::get_reord_iterator ( const STD_string &  iterator) const

Returns the iterator as modified by the reorder vector as C code

◆ get_reord_vector_commands()

virtual svector SeqVector::get_reord_vector_commands ( const STD_string &  iterator) const
inlineprotectedvirtual

Tell reorder vector what to do within a loop

Definition at line 238 of file seqvec.h.

◆ get_reorder_vector()

const SeqVector& SeqVector::get_reorder_vector ( ) const

Returns the reordering vector (for loop insertion)

◆ get_vector_commands()

virtual svector SeqVector::get_vector_commands ( const STD_string &  iterator) const
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.

Definition at line 170 of file seqvec.h.

◆ get_vectorsize()

virtual unsigned int SeqVector::get_vectorsize ( ) const
inlinevirtual

Overload this function to return the number of elements in the vector (regardless of reordering)

Reimplemented in SeqSimultanVector, SeqRotMatrixVector, SeqFlipAngVector, SeqObjVector, and SeqFreqChan.

Definition at line 107 of file seqvec.h.

◆ is_acq_vector()

virtual bool SeqVector::is_acq_vector ( ) const
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.

◆ is_handled()

bool SeqVector::is_handled ( ) const
inlineprotected

Returns true if vector is actually handled by a loop

Definition at line 243 of file seqvec.h.

◆ is_obj_vector()

virtual bool SeqVector::is_obj_vector ( ) const
inlinevirtual

Returns whether this vector uses a different set of sequence objects at each repetition

Reimplemented in SeqObjVector.

Definition at line 161 of file seqvec.h.

◆ is_qualvector()

virtual bool SeqVector::is_qualvector ( ) const
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.

◆ needs_unrolling_check()

virtual bool SeqVector::needs_unrolling_check ( ) const
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.

Definition at line 122 of file seqvec.h.

◆ operator=()

SeqVector& SeqVector::operator= ( const SeqVector sv)

Assignment operator that makes this vector become a copy of 'sv'

◆ prep_iteration()

virtual bool SeqVector::prep_iteration ( ) const
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.

Definition at line 129 of file seqvec.h.

◆ set_encoding_scheme()

SeqVector& SeqVector::set_encoding_scheme ( encodingScheme  scheme)

Sets the encoding scheme

◆ set_indexvec()

SeqVector& SeqVector::set_indexvec ( const ivector iv)
inline

Sets the vector of indices 'iv' which will be returned by get_acq_index, i.e. the assign reco indices (positions in k-space)

Definition at line 183 of file seqvec.h.

◆ set_reorder_scheme()

SeqVector& SeqVector::set_reorder_scheme ( reorderScheme  scheme,
unsigned int  nsegments = 1 
)

Sets the reordering scheme and the number of segments


The documentation for this class was generated from the following file: