17 #ifndef __itkMetaBlobConverter_txx
18 #define __itkMetaBlobConverter_txx
26 template <
unsigned int NDimensions>
34 template <
unsigned int NDimensions>
41 typename BlobSpatialObjectType::Pointer blob = BlobSpatialObjectType::New();
46 unsigned int ndims = Blob->NDims();
47 double spacing[NDimensions];
48 for(
unsigned int ii=0;ii<ndims;ii++)
50 spacing[ii]=Blob->ElementSpacing()[ii];
53 blob->GetIndexToObjectTransform()->SetScaleComponent(spacing);
54 blob->GetProperty()->SetName(Blob->Name());
55 blob->SetId(Blob->ID());
56 blob->SetParentId(Blob->ParentID());
57 blob->GetProperty()->SetRed(Blob->Color()[0]);
58 blob->GetProperty()->SetGreen(Blob->Color()[1]);
59 blob->GetProperty()->SetBlue(Blob->Color()[2]);
60 blob->GetProperty()->SetAlpha(Blob->Color()[3]);
63 typedef BlobPointType* BlobPointPointer;
66 typedef MetaBlob::PointListType ListType;
67 ListType::iterator it2 = Blob->GetPoints().begin();
71 for(
unsigned int identifier=0;identifier< Blob->GetPoints().size();identifier++)
75 typedef typename BlobSpatialObjectType::PointType PointType;
78 for(
unsigned int ii=0;ii<ndims;ii++)
80 point[ii]=(*it2)->m_X[ii];
83 pnt.SetPosition(point);
85 pnt.SetRed((*it2)->m_Color[0]);
86 pnt.SetGreen((*it2)->m_Color[1]);
87 pnt.SetBlue((*it2)->m_Color[2]);
88 pnt.SetAlpha((*it2)->m_Color[3]);
90 blob->GetPoints().push_back(pnt);
98 template <
unsigned int NDimensions>
103 MetaBlob* Blob =
new MetaBlob(NDimensions);
107 typename SpatialObjectType::PointListType::const_iterator i;
108 for(i = dynamic_cast<SpatialObjectType*>(spatialObject)->GetPoints().begin();
112 BlobPnt* pnt =
new BlobPnt(NDimensions);
114 for(
unsigned int d=0;d<NDimensions;d++)
116 pnt->m_X[d]=(*i).GetPosition()[d];
119 pnt->m_Color[0] = (*i).GetRed();
120 pnt->m_Color[1] = (*i).GetGreen();
121 pnt->m_Color[2] = (*i).GetBlue();
122 pnt->m_Color[3] = (*i).GetAlpha();
124 Blob->GetPoints().push_back(pnt);
129 Blob->PointDim(
"x y red green blue alpha");
133 Blob->PointDim(
"x y z red green blue alpha");
137 for(
unsigned int ii=0;ii<4;ii++)
143 Blob->ID( spatialObject->
GetId());
146 Blob->ParentID(spatialObject->
GetParent()->GetId());
148 Blob->NPoints(Blob->GetPoints().size());
151 for(
unsigned int ii=0;ii<NDimensions;ii++)
162 template <
unsigned int NDimensions>
168 MetaBlob* Blob =
new MetaBlob();
170 spatialObject = MetaBlobToBlobSpatialObject(Blob);
172 return spatialObject;
177 template <
unsigned int NDimensions>
182 MetaBlob* Blob = BlobSpatialObjectToMetaBlob(spatialObject);
183 Blob->BinaryData(
true);