26 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX();
29 mProbeMovementDefinition.mRangeAngle = 0;
30 mProbeMovementDefinition.mSteps = 200;
37 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX() * range;
41 mProbeMovementDefinition.mRangeAngle = range;
45 mProbeMovementDefinition.mSteps = steps;
61 mBounds = cx::Vector3D::Ones() * size;
63 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX();
64 mProbeMovementDefinition.mRangeAngle = 0;
65 mProbeMovementDefinition.mSteps = size/spacing+1;
71 mPhantom->printInfo();
73 std::cout << indent <<
"ProbeMovement RangeNormalizedTranslation: " << mProbeMovementDefinition.mRangeNormalizedTranslation << std::endl;
74 std::cout << indent <<
"ProbeMovement RangeAngle: " << mProbeMovementDefinition.mRangeAngle << std::endl;
75 std::cout << indent <<
"ProbeMovement Steps: " << mProbeMovementDefinition.mSteps<< std::endl;
93 std::vector<cx::Transform3D> SyntheticReconstructInput::generateFrames_rMt_tilted()
96 cx::Vector3D range_translation = mBounds[0] * mProbeMovementDefinition.mRangeNormalizedTranslation;
97 double range_angle = mProbeMovementDefinition.mRangeAngle;
98 int steps = mProbeMovementDefinition.mSteps;
101 return this->generateFrames(p0,
104 Eigen::Vector3d::UnitY(),
112 std::vector<cx::Transform3D> SyntheticReconstructInput::generateFrames(
cx::Vector3D p0,
119 std::vector<cx::Transform3D> planes;
120 for(
int i = 0; i < steps; ++i)
123 double t = (i-R/2)/R;
125 transform.translation() = p0 + range_translation*t;
126 transform.rotate(Eigen::AngleAxisd(t*range_angle, rotation_axis));
127 planes.push_back(transform);
135 cx::Vector3D range_translation = mBounds[0] * mProbeMovementDefinition.mRangeNormalizedTranslation;
136 double range_angle = mProbeMovementDefinition.mRangeAngle;
137 int steps_full = 3*mProbeMovementDefinition.mSteps;
140 std::vector<cx::Transform3D> rMt_full;
141 rMt_full = this->generateFrames(p0,
144 Eigen::Vector3d::UnitY(),
150 for (
unsigned i=0; i<steps_full; i+=2)
154 pos.
mPos = rMt_full[i];
159 std::vector<vtkImageDataPtr> frames;
160 for (
unsigned i=0; i<steps_full; i+=3)
166 frames.push_back(mPhantom->sampleUsData(rMt_full[i], mProbe));
171 result.
rMpr = cx::Transform3D::Identity();
180 std::vector<cx::Transform3D> planes = this->generateFrames_rMt_tilted();
183 retval = mPhantom->sampleUsData(planes, mProbe, dMr);
One position with timestamp.
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
Definition of characteristics for an Ultrasound Probe Sector.
QString streamXml2String(T &val)
boost::shared_ptr< class ProcessedUSInputData > ProcessedUSInputDataPtr
static USFrameDataPtr create(ImagePtr inputFrameData)
float4 transform(float16 matrix, float4 voxel)
void setData(ProbeDefinition data)