46 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX();
49 mProbeMovementDefinition.mRangeAngle = 0;
50 mProbeMovementDefinition.mSteps = 200;
57 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX() * range;
61 mProbeMovementDefinition.mRangeAngle = range;
65 mProbeMovementDefinition.mSteps = steps;
81 mBounds = cx::Vector3D::Ones() * size;
84 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX();
85 mProbeMovementDefinition.mRangeAngle = 0;
86 mProbeMovementDefinition.mSteps = size/spacing+1;
92 mPhantom->printInfo();
94 std::cout << indent <<
"ProbeMovement RangeNormalizedTranslation: " << mProbeMovementDefinition.mRangeNormalizedTranslation << std::endl;
95 std::cout << indent <<
"ProbeMovement RangeAngle: " << mProbeMovementDefinition.mRangeAngle << std::endl;
96 std::cout << indent <<
"ProbeMovement Steps: " << mProbeMovementDefinition.mSteps<< std::endl;
114 std::vector<cx::Transform3D> SyntheticReconstructInput::generateFrames_rMt_tilted()
117 cx::Vector3D range_translation = mBounds[0] * mProbeMovementDefinition.mRangeNormalizedTranslation;
118 double range_angle = mProbeMovementDefinition.mRangeAngle;
119 int steps = mProbeMovementDefinition.mSteps;
122 return this->generateFrames(p0,
125 Eigen::Vector3d::UnitY(),
133 std::vector<cx::Transform3D> SyntheticReconstructInput::generateFrames(
cx::Vector3D p0,
140 std::vector<cx::Transform3D> planes;
141 for(
int i = 0; i < steps; ++i)
144 double t = (i-R/2)/R;
146 transform.translation() = p0 + range_translation*t;
147 transform.rotate(Eigen::AngleAxisd(t*range_angle, rotation_axis));
148 planes.push_back(transform);
156 cx::Vector3D range_translation = mBounds[0] * mProbeMovementDefinition.mRangeNormalizedTranslation;
157 double range_angle = mProbeMovementDefinition.mRangeAngle;
158 int steps_full = 3*mProbeMovementDefinition.mSteps;
161 std::vector<cx::Transform3D> rMt_full;
162 rMt_full = this->generateFrames(p0,
165 Eigen::Vector3d::UnitY(),
171 for (
unsigned i=0; i<steps_full; i+=2)
175 pos.
mPos = rMt_full[i];
180 std::vector<vtkImageDataPtr> frames;
181 for (
unsigned i=0; i<steps_full; i+=3)
187 frames.push_back(mPhantom->sampleUsData(rMt_full[i], mProbe));
192 result.
rMpr = cx::Transform3D::Identity();
201 std::vector<cx::Transform3D> planes = this->generateFrames_rMt_tilted();
204 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)