37 if(m_SourceLandmarksFromNavigationDatas.IsNotNull())
38 m_SourceLandmarksFromNavigationDatas->Clear();
42 if(sourceNavigationDatas.empty())
48 if(sourceNavigationDatas.size() < 3)
49 this->CreateLandmarkPointsForSingleNavigationData(m_SourceLandmarksFromNavigationDatas, sourceNavigationDatas);
51 for(
unsigned int i=0; i < sourceNavigationDatas.size(); ++i){
52 mitk::Point3D point = sourceNavigationDatas.at(i)->GetPosition();
53 m_SourceLandmarksFromNavigationDatas->InsertPoint(i,point);
57 this->InitializeTransform();
63 if(m_TargetLandmarksFromNavigationDatas.IsNotNull())
64 m_TargetLandmarksFromNavigationDatas->Clear();
68 if(targetNavigationDatas.empty())
74 if(targetNavigationDatas.size() < 3)
75 this->CreateLandmarkPointsForSingleNavigationData(m_TargetLandmarksFromNavigationDatas, targetNavigationDatas);
77 for(
unsigned int i=0; i < targetNavigationDatas.size(); ++i){
78 mitk::Point3D point = targetNavigationDatas.at(i)->GetPosition();
79 m_TargetLandmarksFromNavigationDatas->InsertPoint(i,point);
83 this->InitializeTransform();
123 if(m_QuaternionTransform.IsNull())
124 return landmarkContainer;
126 for(
unsigned int i=0; i < navigationDatas.size(); ++i)
128 mitk::Point3D pointA;
129 mitk::Point3D pointB;
130 mitk::Point3D pointC;
143 mitk::NavigationData::Pointer nd = navigationDatas.at(i);
149 vnl_quaternion<double>
const vnlQuatIn(quatIn.x(), quatIn.y(), quatIn.z(), quatIn.r());
151 m_QuaternionTransform->SetRotation(vnlQuatIn);
154 pointA = m_QuaternionTransform->TransformPoint(pointA);
155 pointB = m_QuaternionTransform->TransformPoint(pointB);
156 pointC = m_QuaternionTransform->TransformPoint(pointC);
159 pointA[0] += nd->GetPosition()[0];
160 pointA[1] += nd->GetPosition()[1];
161 pointA[2] += nd->GetPosition()[2];
163 pointB[0] += nd->GetPosition()[0];
164 pointB[1] += nd->GetPosition()[1];
165 pointB[2] += nd->GetPosition()[2];
167 pointC[0] += nd->GetPosition()[0];
168 pointC[1] += nd->GetPosition()[1];
169 pointC[2] += nd->GetPosition()[2];
172 int currSize = landmarkContainer->GetSize();
174 landmarkContainer->InsertPoint(currSize++,pointA);
175 landmarkContainer->InsertPoint(currSize++,pointB);
176 landmarkContainer->InsertPoint(currSize++,pointC);
179 return landmarkContainer;