23 m_ShowToolAxis(false),
44 projectionPoint.SetElement(0, toolAxis.GetElement(0) * 400);
45 projectionPoint.SetElement(1, toolAxis.GetElement(1) * 400);
46 projectionPoint.SetElement(2, toolAxis.GetElement(2) * 400);
50 toolOrigin.SetElement(0, 0);
51 toolOrigin.SetElement(1, 0);
52 toolOrigin.SetElement(2, 0);
58 axisPoint.SetElement(0, toolAxis.GetElement(0) * -400);
59 axisPoint.SetElement(1, toolAxis.GetElement(1) * -400);
60 axisPoint.SetElement(2, toolAxis.GetElement(2) * -400);
87 if (i < 0)
mitkThrow() <<
"Negative Input selected in NeedleProjectionFilter";
88 if (! (static_cast<unsigned int>(i) < this->GetInputs().size()))
mitkThrow() <<
"Selected input index is larger than actual number of inputs in NeedleProjectionFilter";
100 MITK_INFO <<
"No input has been selected in NeedleProjection Filter. Only forwarding NavigationData...";
134 double center[3] = {plane->GetCenter()[0], plane->GetCenter()[1], plane->GetCenter()[2]};
135 double normal[3] = {plane->GetNormal()[0], plane->GetNormal()[1], plane->GetNormal()[2]};
137 vtkPlane::IntersectWithLine(p1, p2, normal, center, t, x);
145 intersection[0] = x[0];
146 intersection[1] = x[1];
147 intersection[2] = x[2];
157 mitk::AffineTransform3D::Pointer affineTransform = mitk::AffineTransform3D::New();
158 affineTransform->SetIdentity();
161 static itk::QuaternionRigidTransform<double>::Pointer quatTransform = itk::QuaternionRigidTransform<double>::New();
165 vnl_quaternion<double> doubleQuaternion(orientation.x(), orientation.y(), orientation.z(), orientation.r());
166 quatTransform->SetIdentity();
167 quatTransform->SetRotation(doubleQuaternion);
168 quatTransform->Modified();
172 static AffineTransform3D::MatrixType m;
174 affineTransform->SetMatrix(m);
178 pos.SetVnlVector(nd->
GetPosition().GetVnlVector());
179 affineTransform->SetOffset(pos);
181 affineTransform->Modified();
182 return affineTransform;
188 g3d->SetSpacing(scale);
189 g3d->SetIndexToWorldTransform(transform);
DataCollection - Class to facilitate loading/accessing structured data.
mitk::PointSet::Pointer m_Projection
virtual void SelectInput(int i)
mitk::Quaternion OrientationType
Type that holds the orientation part of the tracking data.
virtual PositionType GetPosition() const
returns position of the NavigationData object
void FillVector3D(Tout &out, mitk::ScalarType x, mitk::ScalarType y, mitk::ScalarType z)
mitk::Geometry3D::Pointer TransformToGeometry(mitk::AffineTransform3D::Pointer transform)
Creates an Geometry 3D Object from an AffineTransformation.
const NavigationData * GetInput(void) const
Get the input of this filter.
Data structure which stores a set of points. Superclass of mitk::Mesh.
~NeedleProjectionFilter() override
void GenerateData() override
void GenerateData() override
Passes navigation data from all inputs to all outputs. If a subclass wants to implement its own versi...
void TransferMatrix(const itk::Matrix< U, NRows, NColumns > &in, itk::Matrix< V, NRows, NColumns > &out)
mitk::PointSet::Pointer m_OriginalPoints
mitk::AffineTransform3D::Pointer m_TargetPlane
void InitializeOriginalPoints(mitk::Point3D toolAxis, bool showToolAxis)
virtual OrientationType GetOrientation() const
returns the orientation of the NavigationData object
void SetToolAxisForFilter(mitk::Point3D point)
void ShowToolAxis(bool enabled)
mitk::AffineTransform3D::Pointer NavigationDataToTransform(const mitk::NavigationData *nd)
Creates an Affine Transformation from a Navigation Data Object.