msl 1.3.0
Loading...
Searching...
No Matches
Spiral.h
Go to the documentation of this file.
1// Copyright 2026 Julien Lamy, ICube, Université de Strasbourg-CNRS.
2// Part of msl, distributed under the terms of the MIT license.
3
4#ifndef _4358ca9e_ad53_41eb_acfa_6e22f2211d8a
5#define _4358ca9e_ad53_41eb_acfa_6e22f2211d8a
6
7#include <vector>
8
9#include "msl/Readout.h"
10#include "msl/Vector.h"
11
12namespace msl
13{
14
15namespace readouts
16{
17
28class Spiral: public Readout
29{
30public:
33 {
38 };
39
42
43 Spiral(Spiral const &) = default;
44 Spiral(Spiral &&) = default;
45 Spiral & operator=(Spiral const &) = default;
46 Spiral & operator=(Spiral &&) = default;
47 ~Spiral() override = default;
48
49 Direction const & direction() const;
50 Spiral setDirection(Direction const & direction);
51
56 int32_t interleaves() const;
57
58 NLSStatus prepare(
59 MrProt & protocol, SeqLim & limits, SeqExpo & exports) override;
60 NLSStatus run(
61 MrProt & protocol, SeqLim & limits, SeqExpo & exports) override;
62
67 Spiral & rotate(double angle);
68
69private:
71 int32_t _interleaves;
72
74 Direction _direction;
75
77 std::vector<Vector3d> _nonRotatedAmplitude;
78
80 std::vector<Vector3d> _rotatedAmplitude;
81};
82
83}
84
85}
86
87#endif // _4358ca9e_ad53_41eb_acfa_6e22f2211d8a
NLSStatus prepare(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Prepare the real-time events.
int32_t interleaves() const
Return the number of interleaves.
NLSStatus run(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Run the real-time events.
Spiral & rotate(double angle)
Rotate the original spiral.
Direction
Direction of the spiral.
Definition Spiral.h:33
@ In
From edge to center of k-space.
Definition Spiral.h:37
@ Out
From center to edge of k-space.
Definition Spiral.h:35
Spiral()
Create a default readout.
Namespace for all Readout-derived objects.
Definition Linear.h:16
Top-level namespace of the msl library.
Definition acceleration.h:17