/usr/include/odinseq/seqgradchanparallel.h is in libodin-dev 1.8.8-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | /***************************************************************************
seqgradchanparallel.h - description
-------------------
begin : Thu Apr 22 2004
copyright : (C) 2000-2014 by Thies H. Jochimsen
email : thies@jochimsen.de
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef SEQGRADCHANPARALLEL_H
#define SEQGRADCHANPARALLEL_H
#include <odinseq/seqgradchanlist.h>
#include <odinseq/seqgradobj.h>
#include <odinseq/seqdriver.h>
////////////////////////////////////////////////////////////////////
/**
* @ingroup odinseq_internals
* The base class for platform specific drivers of lists of simultaneous gradient objects
*/
class SeqGradChanParallelDriver : public SeqDriverBase {
public:
SeqGradChanParallelDriver() {}
virtual ~SeqGradChanParallelDriver() {}
virtual bool prep_driver(SeqGradChanList* chanlists[3]) const = 0;
virtual STD_string get_program(programContext& context) const = 0;
virtual SeqGradChanParallelDriver* clone_driver() const = 0;
};
////////////////////////////////////////////////////////////////////
/**
* @addtogroup odinseq_internals
* @{
*/
/**
* This class is a container for three SeqGradChanList's
*/
class SeqGradChanParallel : public SeqGradObjInterface {
public:
/**
* Construct an empty gradient channel list with the given label
*/
SeqGradChanParallel(const STD_string& object_label = "unnamedSeqGradChanParallel" );
/**
* Constructs a copy of 'sgcp'
*/
SeqGradChanParallel(const SeqGradChanParallel& sgcp);
/**
* Destructor
*/
~SeqGradChanParallel();
/**
* Assignment operator that makes this gradient sequence object become a copy of 'sgcp'
*/
SeqGradChanParallel& operator = (const SeqGradChanParallel& sgcp);
/**
* Uses 'sgc' for the corresponding channel
*/
SeqGradChanParallel& operator /= (SeqGradChan& sgc);
/**
* Uses 'sgcl' for the corresponding channel
*/
SeqGradChanParallel& operator /= (SeqGradChanList& sgcl);
// overloading virtual function from SeqTreeObj
STD_string get_program(programContext& context) const;
STD_string get_properties() const;
unsigned int event(eventContext& context) const;
void query(queryContext& context) const;
// overloading virtual function from SeqGradInterface
SeqGradInterface& set_strength(float gradstrength);
SeqGradInterface& invert_strength();
float get_strength() const;
fvector get_gradintegral() const;
double get_gradduration() const;
SeqGradInterface& set_gradrotmatrix(const RotMatrix& matrix);
/**
* Appends 'sgc' to this
*/
SeqGradChanParallel& operator += (SeqGradChan& sgc);
/**
* Appends 'sgcl' to this
*/
SeqGradChanParallel& operator += (SeqGradChanList& sgcl);
/**
* Appends 'sgcp' to this
*/
SeqGradChanParallel& operator += (SeqGradChanParallel& sgcp);
/**
* Clear all sublists
*/
void clear();
private:
friend class SeqOperator;
friend class SeqGradChan;
friend class SeqGradChanList;
friend class SeqGradEPI;
friend class SeqEpiKernel;
// overwriting virtual functions from SeqClass
bool prep();
void clear_container();
// overwriting virtual functions from SeqGradObjInterface
bool need_gp_terminator() const {return true;}
void padd_channel_with_delay(direction chanNo, double maxdur);
SeqGradChanList* get_gradchan(direction channel) const;
SeqGradChanParallel& set_gradchan(direction channel, SeqGradChanList* sgcl);
mutable SeqDriverInterface<SeqGradChanParallelDriver> paralleldriver;
Handler<SeqGradChanList* > gradchan[3];
};
/** @}
*/
#endif
|