19 #ifndef rtkImagXGeometryReader_h 20 #define rtkImagXGeometryReader_h 40 template <
typename TInputImage>
55 #ifdef itkOverrideGetNameOfClassMacro 77 itkGetMacro(CalibrationXMLFileName, std::string);
82 itkGetMacro(RoomXMLFileName, std::string);
91 if (m_ProjectionsFileNames != name)
93 m_ProjectionsFileNames = name;
97 const FileNamesContainer &
100 return m_ProjectionsFileNames;
106 : m_Geometry(nullptr)
107 , m_CalibrationXMLFileName(
"")
108 , m_RoomXMLFileName(
""){};
115 GenerateData()
override;
133 float constantDetectorOffset, xMinus,
xPlus;
136 std::vector<float> Px, Py, Pz,
142 GetGeometryForAI2p1();
151 interpolate(
const std::vector<float> & flexAngles,
bool bIsCW,
float angleDegree);
158 std::vector<float> Px, Py, Pz,
164 sourceToNozzleOffsetAngle = -90.f;
165 Px = std::vector<float>(5, 0.f);
166 Py = std::vector<float>(5, 0.f);
167 Pz = std::vector<float>(5, 0.f);
168 Rx = std::vector<float>(5, 0.f);
169 Ry = std::vector<float>(5, 0.f);
170 Rz = std::vector<float>(5, 0.f);
171 Tx = std::vector<float>(5, 0.f);
172 Ty = std::vector<float>(5, 0.f);
173 Tz = std::vector<float>(5, 0.f);
178 GetGeometryForAI1p5();
181 GetGeometryForAI1p5FromXMLFiles();
184 isCW(
const std::vector<float> & angles);
187 getInterpolatedValue(
const InterpResultType & ires,
188 const std::vector<float> & Dx,
189 const std::vector<float> & Dy,
190 const std::vector<float> & Dz);
194 getDeformations(
float gantryAngle,
195 const std::vector<float> & Dx,
196 const std::vector<float> & Dy,
197 const std::vector<float> & Dz);
200 addEntryToGeometry(
float gantryAngleDegree,
201 float nozzleToRadAngleOffset,
204 std::vector<float> & detTrans,
205 std::vector<float> & detRot,
206 std::vector<float> & srcTrans);
209 addEntryToGeometry(
const FlexmapType & f,
float gantryAngle);
212 addEntryToGeometry(
const CalibrationModelType & c,
float gantryAngle);
221 #ifndef ITK_MANUAL_INSTANTIATION 222 # include "rtkImagXGeometryReader.hxx" 225 #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