msl 1.3.0
Loading...
Searching...
No Matches
Cartesian.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 _4517d815_f9b3_4561_bb92_65995ed216c8
5#define _4517d815_f9b3_4561_bb92_65995ed216c8
6
7#include "msl/iPATMask.h"
8#include "msl/Sampling.h"
10
11namespace msl
12{
13
15namespace samplings
16{
17
22class Cartesian: public Sampling
23{
24public:
25
26 DECLARE_POINTERS(Cartesian);
27
28 Cartesian();
29 Cartesian(Cartesian const &) = default;
30 Cartesian(Cartesian &&) = default;
31 Cartesian & operator=(Cartesian const &) = default;
32 Cartesian & operator=(Cartesian &&) = default;
33 ~Cartesian() override = default;
34
36 double phase() const override;
37
39 Cartesian & setPhase(double phase) override;
40
42 long contrast() const override;
43
45 Cartesian & setContrast(long contrast) override;
46
51 long timeOffset() const override;
52
57 Cartesian & setTimeOffset(long timeOffset) override;
58
60 GradientSpecs const & gradientSpecs() const override;
61
63 Cartesian & setGradientSpecs(GradientSpecs const & gradientSpecs) override;
64
66 iPATMask const & mask() const;
67
69 Cartesian & setMask(iPATMask const & mask);
70
73
78 double relativeStart() const;
79
84 Cartesian & setRelativeStart(double relativeStart);
85
86 NLSStatus prepare(
87 MrProt & protocol, SeqLim & limits, SeqExpo & exports) override;
88
89 NLSStatus run(
90 MrProt & protocol, SeqLim & limits, SeqExpo & exports) override;
91
92 long startTime() const override;
93
95 long endTime() const override;
96
98 MrProtocolData::SeqExpoRFInfo rfInfo() const override;
99
100 NLSStatus updateReadout(MrProt & protocol, SeqLim & limits, SeqExpo & exports) override;
101
102 readouts::Linear const & readout() const override;
103
104private:
105 readouts::Linear _readout;
106
107 Vector3l _nCenter;
108
109 iPATMask _mask;
110 iPATMask::Points _enabledPoints;
111
112 double _relativeStart;
113};
114
115}
116}
117
118#endif // _4517d815_f9b3_4561_bb92_65995ed216c8
std::vector< Point > Points
Definition MaskBase.h:25
A two dimensional indicator of iPAT status.
Definition iPATMask.h:30
Linear readout defined by its start and end points.
Definition Linear.h:20
long endTime() const override
Return the end time of the events.
readouts::Linear const & readout() const override
Return a reference to the concrete readout.
NLSStatus run(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Run the real-time events.
Cartesian & setGradientSpecs(GradientSpecs const &gradientSpecs) override
Set the gradient specifications constraining the read-out duration.
Cartesian & setPhase(double phase) override
Set the phase of the NCO during the readout.
long timeOffset() const override
Return the time offset to get the effective echo time, accounting e.g. for the time of the excitation...
Cartesian & setTimeOffset(long timeOffset) override
Set the time offset to get the effective echo time, accounting e.g. for the time of the excitation pu...
MrProtocolData::SeqExpoRFInfo rfInfo() const override
Return the RF information for SAR computation.
NLSStatus prepare(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Prepare the real-time events.
iPATMask::Points enabledPoints() const
Return the enabled points of the mask.
long contrast() const override
Return the contrast number.
long startTime() const override
Return the start time of the events.
GradientSpecs const & gradientSpecs() const override
Return the gradient specifications constraining the read-out duration.
double phase() const override
Return the phase of the NCO during the readout.
double relativeStart() const
Return the starting point in the relative k-space (i.e. normalized between -1 and +1).
iPATMask const & mask() const
Return the iPAT mask.
Cartesian & setRelativeStart(double relativeStart)
Set the starting point in the relative k-space (i.e. normalized between -1 and +1).
Cartesian & setMask(iPATMask const &mask)
Set the iPAT mask.
Cartesian & setContrast(long contrast) override
Set the contrast number.
NLSStatus updateReadout(MrProt &protocol, SeqLim &limits, SeqExpo &exports) override
Update the readout with respect to index so that a subsequent call to readout() returns a readout mat...
#define DECLARE_POINTERS(name)
Declare pointer type aliases.
Definition helpers.h:83
Namespace for all Readout-derived objects.
Definition Cartesian.h:16
Top-level namespace of the msl library.
Definition acceleration.h:17
Vector< 3, long > Vector3l
3D vector of longs
Definition Vector.h:139
Specifications of the gradient system.
Definition GradientSpecs.h:14