17 #ifndef __itkSceneSpatialObject_txx
18 #define __itkSceneSpatialObject_txx
27 template <
unsigned int TSpaceDimension>
34 template <
unsigned int TSpaceDimension>
41 template <
unsigned int TSpaceDimension>
46 m_Objects.push_back( pointer );
51 template <
unsigned int TSpaceDimension>
56 typename ObjectListType::iterator it;
57 it = std::find(m_Objects.begin(),m_Objects.end(),pointer);
59 if( it != m_Objects.end() )
63 m_Objects.erase( it );
77 template <
unsigned int TSpaceDimension>
82 typename ObjectListType::const_iterator it = m_Objects.begin();
83 typename ObjectListType::const_iterator itEnd = m_Objects.end();
85 unsigned long latestTime = Superclass::GetMTime();
86 unsigned long localTime;
89 localTime = (*it)->GetMTime();
90 if( localTime > latestTime )
92 latestTime = localTime;
100 template <
unsigned int TSpaceDimension>
107 typename ObjectListType::const_iterator it = m_Objects.begin();
108 typename ObjectListType::const_iterator itEnd = m_Objects.end();
112 if(name ==
NULL || strstr(
typeid(**it).name(), name))
114 newList->push_back(*it);
120 ChildListType * childList =
122 GetChildren(depth-1, name);
123 typename ChildListType::const_iterator cIt = childList->begin();
124 typename ChildListType::const_iterator cItEnd = childList->end();
128 newList->push_back(dynamic_cast< ObjectType * >((*cIt).GetPointer()));
141 template <
unsigned int TSpaceDimension>
146 m_Objects = children;
150 template <
unsigned int TSpaceDimension>
155 typename ObjectListType::const_iterator it = m_Objects.begin();
156 typename ObjectListType::const_iterator itEnd = m_Objects.end();
158 unsigned int cnt = 0;
161 if(name ==
NULL || strstr(
typeid(**it).name(), name))
168 it = m_Objects.begin();
169 itEnd = m_Objects.end();
176 GetNumberOfChildren( depth-1, name );
185 template <
unsigned int TSpaceDimension>
190 os << indent <<
"Number of objects: "
191 << m_Objects.size() << std::endl;
192 os << indent <<
"List of objects: ";
194 typename ObjectListType::const_iterator it = m_Objects.begin();
195 typename ObjectListType::const_iterator itEnd = m_Objects.end();
199 os <<
"[" << (*it) <<
"] ";
204 Superclass::PrintSelf(os, indent);
209 template <
unsigned int TSpaceDimension>
214 typename ObjectListType::iterator it = m_Objects.begin();
215 typename ObjectListType::iterator itEnd = m_Objects.end();
218 ChildListType * cList;
219 typename ChildListType::iterator cIt;
220 typename ChildListType::iterator cItEnd;
224 if( (*it)->GetId() == Id )
232 cList = (*it)->GetChildren(SpatialObjectType::MaximumDepth);
233 cIt = cList->begin();
234 cItEnd = cList->end();
237 if( (*cIt)->GetId() == Id )
255 template <
unsigned int TSpaceDimension>
260 typename ObjectListType::iterator it = m_Objects.begin();
261 typename ObjectListType::iterator oldIt;
262 typename ObjectListType::iterator itEnd = m_Objects.end();
267 int pID = (*it)->GetParentId();
272 (this->GetObjectById(pID));
281 ((*it).GetPointer()));
284 m_Objects.erase( oldIt );
298 template <
unsigned int TSpaceDimension>
303 typename ObjectListType::iterator it = m_Objects.begin();
304 typename ObjectListType::iterator itEnd = m_Objects.end();
311 typename ObjectType::ChildrenListType::const_iterator
312 itChild = children->begin();
314 while( itChild != children->end())
316 if( (*itChild)->HasParent())
318 if((*itChild)->GetParent()->GetId()<0)
332 template <
unsigned int TSpaceDimension>
337 typename ObjectListType::iterator it = m_Objects.begin();
338 typename ObjectListType::iterator itEnd = m_Objects.end();
344 typename ObjectType::ChildrenListType::iterator itChild = children->begin();
346 while( itChild != children->end())
348 if( (*itChild)->HasParent())
350 if((*itChild)->GetParent()->GetId()<0)
352 (*itChild)->GetParent()->SetId(this->GetNextAvailableId());
364 template <
unsigned int TSpaceDimension>
371 typename ObjectListType::iterator it = m_Objects.begin();
372 typename ObjectListType::iterator itEnd = m_Objects.end();
377 typename ObjectType::ChildrenListType::iterator
378 itChild = children->begin();
380 while( itChild != children->end())
382 if((*itChild)->GetId() >= Id)
384 Id = (*itChild)->GetId()+1;
395 template <
unsigned int TSpaceDimension>