48 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX();
51 mProbeMovementDefinition.mRangeAngle = 0;
52 mProbeMovementDefinition.mSteps = 200;
59 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX() * range;
63 mProbeMovementDefinition.mRangeAngle = range;
67 mProbeMovementDefinition.mSteps = steps;
83 mBounds = cx::Vector3D::Ones() * size;
85 mProbeMovementDefinition.mRangeNormalizedTranslation = cx::Vector3D::UnitX();
86 mProbeMovementDefinition.mRangeAngle = 0;
87 mProbeMovementDefinition.mSteps = size/spacing+1;
93 mPhantom->printInfo();
95 std::cout << indent <<
"ProbeMovement RangeNormalizedTranslation: " << mProbeMovementDefinition.mRangeNormalizedTranslation << std::endl;
96 std::cout << indent <<
"ProbeMovement RangeAngle: " << mProbeMovementDefinition.mRangeAngle << std::endl;
97 std::cout << indent <<
"ProbeMovement Steps: " << mProbeMovementDefinition.mSteps<< std::endl;
115 std::vector<cx::Transform3D> SyntheticReconstructInput::generateFrames_rMt_tilted()
118 cx::Vector3D range_translation = mBounds[0] * mProbeMovementDefinition.mRangeNormalizedTranslation;
119 double range_angle = mProbeMovementDefinition.mRangeAngle;
120 int steps = mProbeMovementDefinition.mSteps;
123 return this->generateFrames(p0,
126 Eigen::Vector3d::UnitY(),
134 std::vector<cx::Transform3D> SyntheticReconstructInput::generateFrames(
cx::Vector3D p0,
141 std::vector<cx::Transform3D> planes;
142 for(
int i = 0; i < steps; ++i)
145 double t = (i-R/2)/R;
147 transform.translation() = p0 + range_translation*t;
148 transform.rotate(Eigen::AngleAxisd(t*range_angle, rotation_axis));
149 planes.push_back(transform);
157 cx::Vector3D range_translation = mBounds[0] * mProbeMovementDefinition.mRangeNormalizedTranslation;
158 double range_angle = mProbeMovementDefinition.mRangeAngle;
159 int steps_full = 3*mProbeMovementDefinition.mSteps;
162 std::vector<cx::Transform3D> rMt_full;
163 rMt_full = this->generateFrames(p0,
166 Eigen::Vector3d::UnitY(),
172 for (
unsigned i=0; i<steps_full; i+=2)
176 pos.
mPos = rMt_full[i];
181 std::vector<vtkImageDataPtr> frames;
182 for (
unsigned i=0; i<steps_full; i+=3)
188 frames.push_back(mPhantom->sampleUsData(rMt_full[i], mProbe));
193 result.
rMpr = cx::Transform3D::Identity();
202 std::vector<cx::Transform3D> planes = this->generateFrames_rMt_tilted();
205 retval = mPhantom->sampleUsData(planes, mProbe, dMr);
One position with timestamp.
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
double roundAwayFromZero(double val)
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)