17 #ifndef __itkMetaLandmarkConverter_txx
18 #define __itkMetaLandmarkConverter_txx
26 template <
unsigned int NDimensions>
35 template <
unsigned int NDimensions>
42 typename LandmarkSpatialObjectType::Pointer landmark =
43 LandmarkSpatialObjectType::New();
48 unsigned int ndims = Landmark->NDims();
49 double spacing[NDimensions];
50 for(
unsigned int ii=0;ii<ndims;ii++)
52 spacing[ii]=Landmark->ElementSpacing()[ii];
54 landmark->GetIndexToObjectTransform()->SetScaleComponent(spacing);
55 landmark->GetProperty()->SetName(Landmark->Name());
56 landmark->SetId(Landmark->ID());
57 landmark->SetParentId(Landmark->ParentID());
58 landmark->GetProperty()->SetRed(Landmark->Color()[0]);
59 landmark->GetProperty()->SetGreen(Landmark->Color()[1]);
60 landmark->GetProperty()->SetBlue(Landmark->Color()[2]);
61 landmark->GetProperty()->SetAlpha(Landmark->Color()[3]);
65 typedef MetaLandmark::PointListType ListType;
66 ListType::iterator it2 = Landmark->GetPoints().begin();
70 for(
unsigned int identifier=0;identifier< Landmark->GetPoints().size();identifier++)
72 LandmarkPointType pnt;
74 typedef typename LandmarkSpatialObjectType::PointType PointType;
77 for(
unsigned int ii=0;ii<ndims;ii++)
79 point[ii]=(*it2)->m_X[ii];
82 pnt.SetPosition(point);
84 pnt.SetRed((*it2)->m_Color[0]);
85 pnt.SetGreen((*it2)->m_Color[1]);
86 pnt.SetBlue((*it2)->m_Color[2]);
87 pnt.SetAlpha((*it2)->m_Color[3]);
89 landmark->GetPoints().push_back(pnt);
97 template <
unsigned int NDimensions>
102 MetaLandmark* Landmark =
new MetaLandmark(NDimensions);
106 typename SpatialObjectType::PointListType::const_iterator i;
107 for(i = dynamic_cast<SpatialObjectType*>(spatialObject)->GetPoints().begin();
111 LandmarkPnt* pnt =
new LandmarkPnt(NDimensions);
113 for(
unsigned int d=0;d<NDimensions;d++)
115 pnt->m_X[d]=(*i).GetPosition()[d];
118 pnt->m_Color[0] = (*i).GetRed();
119 pnt->m_Color[1] = (*i).GetGreen();
120 pnt->m_Color[2] = (*i).GetBlue();
121 pnt->m_Color[3] = (*i).GetAlpha();
122 Landmark->GetPoints().push_back(pnt);
127 Landmark->PointDim(
"x y red green blue alpha");
131 Landmark->PointDim(
"x y z red green blue alpha");
135 for(
unsigned int ii=0;ii<4;ii++)
140 Landmark->Color(color);
141 Landmark->ID( spatialObject->
GetId());
144 Landmark->ParentID(spatialObject->
GetParent()->GetId());
146 Landmark->NPoints(Landmark->GetPoints().size());
153 template <
unsigned int NDimensions>
159 MetaLandmark* Landmark =
new MetaLandmark();
160 Landmark->Read(name);
161 spatialObject = MetaLandmarkToLandmarkSpatialObject(Landmark);
163 return spatialObject;
168 template <
unsigned int NDimensions>
173 MetaLandmark* Landmark = LandmarkSpatialObjectToMetaLandmark(spatialObject);
174 Landmark->BinaryData(
true);
175 Landmark->Write(name);