CustusX  2023.01.05-dev+develop.0da12
An IGT application
cxtestSyntheticReconstructInput.h
Go to the documentation of this file.
1 /*=========================================================================
2 This file is part of CustusX, an Image Guided Therapy Application.
3 
4 Copyright (c) SINTEF Department of Medical Technology.
5 All rights reserved.
6 
7 CustusX is released under a BSD 3-Clause license.
8 
9 See Lisence.txt (https://github.com/SINTEFMedtek/CustusX/blob/master/License.txt) for details.
10 =========================================================================*/
11 
12 #ifndef CXTESTSYNTHETICRECONSTRUCTINPUT_H
13 #define CXTESTSYNTHETICRECONSTRUCTINPUT_H
14 
15 #include "cxtestutilities_export.h"
18 
19 namespace cxtest
20 {
21 
22 typedef boost::shared_ptr<class SyntheticReconstructInput> SyntheticReconstructInputPtr;
23 
31 class CXTESTUTILITIES_EXPORT SyntheticReconstructInput
32 {
33 public:
35  void defineProbeMovementNormalizedTranslationRange(double range);
36  void defineProbeMovementAngleRange(double range);
37  void defineProbeMovementSteps(int steps);
38  void defineProbe(cx::ProbeDefinition probe);
39  void setOverallBoundsAndSpacing(double size, double spacing);
40 
41  void setBoxAndLinesPhantom();
42  void setSpherePhantom();
43  void setWireCrossPhantom();
44 
45  cx::cxSyntheticVolumePtr getPhantom() { return mPhantom; }
46  void printConfiguration();
47  cx::Vector3D getBounds() const { return mBounds; }
48 
49  // SyntheticReconstructInput();
50  cx::USReconstructInputData generateSynthetic_USReconstructInputData();
51  cx::ProcessedUSInputDataPtr generateSynthetic_ProcessedUSInputData(cx::Transform3D dMr);
52 
53 private:
54  std::vector<cx::Transform3D> generateFrames_rMt_tilted();
59  std::vector<cx::Transform3D> generateFrames(cx::Vector3D p0,
60  cx::Vector3D range_translation,
61  double range_angle,
62  cx::Vector3D rotation_axis,
63  int steps);
64 
65  cx::cxSyntheticVolumePtr mPhantom;
66 
67  // setup parameters
68  cx::Vector3D mBounds;
69  cx::ProbeDefinition mProbe;
70 
71  struct ProbeMovement
72  {
73  cx::Vector3D mRangeNormalizedTranslation;
74  double mRangeAngle;
75  double mSteps;
76  };
77  ProbeMovement mProbeMovementDefinition;
78 
79 };
80 
81 
82 } // namespace cxtest
83 
84 
85 #endif // CXTESTSYNTHETICRECONSTRUCTINPUT_H
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
boost::shared_ptr< cxSyntheticVolume > cxSyntheticVolumePtr
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition: cxVector3D.h:42
Definition of characteristics for an Ultrasound Probe Sector.
boost::shared_ptr< class ProcessedUSInputData > ProcessedUSInputDataPtr
boost::shared_ptr< class SyntheticReconstructInput > SyntheticReconstructInputPtr