19 #ifndef rtkImagXGeometryReader_h 20 #define rtkImagXGeometryReader_h 40 template <
typename TInputImage>
72 itkGetMacro(CalibrationXMLFileName, std::string);
77 itkGetMacro(RoomXMLFileName, std::string);
86 if (m_ProjectionsFileNames != name)
88 m_ProjectionsFileNames = name;
92 const FileNamesContainer &
95 return m_ProjectionsFileNames;
101 : m_Geometry(nullptr)
102 , m_CalibrationXMLFileName(
"")
103 , m_RoomXMLFileName(
"") {};
110 GenerateData()
override;
128 float constantDetectorOffset, xMinus,
xPlus;
131 std::vector<float> Px, Py, Pz,
137 GetGeometryForAI2p1();
146 interpolate(
const std::vector<float> & flexAngles,
bool bIsCW,
float angleDegree);
153 std::vector<float> Px, Py, Pz,
159 sourceToNozzleOffsetAngle = -90.f;
160 Px = std::vector<float>(5, 0.f);
161 Py = std::vector<float>(5, 0.f);
162 Pz = std::vector<float>(5, 0.f);
163 Rx = std::vector<float>(5, 0.f);
164 Ry = std::vector<float>(5, 0.f);
165 Rz = std::vector<float>(5, 0.f);
166 Tx = std::vector<float>(5, 0.f);
167 Ty = std::vector<float>(5, 0.f);
168 Tz = std::vector<float>(5, 0.f);
173 GetGeometryForAI1p5();
176 GetGeometryForAI1p5FromXMLFiles();
179 isCW(
const std::vector<float> & angles);
182 getInterpolatedValue(
const InterpResultType & ires,
183 const std::vector<float> & Dx,
184 const std::vector<float> & Dy,
185 const std::vector<float> & Dz);
189 getDeformations(
float gantryAngle,
190 const std::vector<float> & Dx,
191 const std::vector<float> & Dy,
192 const std::vector<float> & Dz);
195 addEntryToGeometry(
float gantryAngleDegree,
196 float nozzleToRadAngleOffset,
199 std::vector<float> & detTrans,
200 std::vector<float> & detRot,
201 std::vector<float> & srcTrans);
204 addEntryToGeometry(
const FlexmapType & f,
float gantryAngle);
207 addEntryToGeometry(
const CalibrationModelType & c,
float gantryAngle);
216 #ifndef ITK_MANUAL_INSTANTIATION 217 # include "rtkImagXGeometryReader.hxx" 220 #endif // rtkImagXGeometryReader_h GeometryType::Pointer m_Geometry
std::vector< float > anglesDeg
float sourceToNozzleOffsetAngle
std::string m_RoomXMLFileName
typename InputImageType::RegionType InputImageRegionType
static const std::string m_AI_VERSION_1p5
TInputImage InputImageType
std::string activeArcName
FileNamesContainer m_ProjectionsFileNames
Projection geometry for a source and a 2-D flat panel.
void SetProjectionsFileNames(const FileNamesContainer &name)
#define itkSetMacro(name, type)
typename InputImageType::PixelType InputImagePixelType
float sourceToNozzleOffsetAngle
static const std::string m_AI_VERSION_2pX
std::string activeGeocalUID
typename InputImageType::Pointer InputImagePointer
static const std::string m_AI_VERSION_1p2
std::string m_CalibrationXMLFileName
const FileNamesContainer & GetProjectionsFileNames() const
std::vector< std::string > FileNamesContainer