21 #ifndef otbVectorData_hxx
22 #define otbVectorData_hxx
30 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
33 m_root = DataNodeType::New();
35 m_root->SetNodeId(
"Root");
36 boost::add_vertex(m_root, m_DataTree);
41 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
44 itk::MetaDataDictionary& dict = this->GetMetaDataDictionary();
50 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
53 const itk::MetaDataDictionary& dict = this->GetMetaDataDictionary();
55 std::string projectionRef;
61 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
64 itkDebugMacro(
"setting Spacing to " << spacing);
65 if (this->m_Spacing != spacing)
67 this->m_Spacing = spacing;
72 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
79 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
82 itk::Vector<float, 2> sf(spacing);
88 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
95 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
98 itk::Point<float, 2> of(origin);
104 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
109 boost::add_vertex(m_root,m_DataTree);
112 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
115 return boost::num_vertices(m_DataTree);
118 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
121 Superclass::PrintSelf(os, indent);
124 typename boost::graph_traits<DataTreeType>::vertex_iterator it,it_end;
125 boost::tie(it, it_end) = vertices(m_DataTree);
126 uint8_t indentcounts = 0;
127 for (;it!=it_end;it++)
129 for(
auto i = 0; i<indentcounts;i++)
133 os <<
"+" << m_DataTree[*it]->GetNodeTypeAsString() <<
"\n";
134 typename boost::graph_traits<DataTreeType>::adjacency_iterator ai, a_end;
135 boost::tie(ai, a_end) = boost::adjacent_vertices(*it, m_DataTree);
136 for (; ai != a_end; ai++) {
143 template <
class TPrecision,
unsigned int VDimension,
class TValuePrecision>
147 Superclass::Graft(data);
152 const Self* vdData =
dynamic_cast<const Self*
>(data);
158 this->m_DataTree.clear();
159 this->CopyDataTree(vdData);
163 this->m_root = vdData->
GetRoot();
168 itkExceptionMacro(<<
"otb::VectorData::Graft() cannot cast " <<
typeid(data).name() <<
" to " <<
typeid(
const Self*).name());
This class represents a hierarchy of vector data.
void SetProjectionRef(const std::string &projectionRef)
virtual const SpacingType & GetSpacing() const
itk::Vector< double, 2 > SpacingType
std::string GetProjectionRef() const
void Graft(const itk::DataObject *data) override
virtual const OriginType & GetOrigin() const
void SetSpacing(const SpacingType &spacing)
virtual void SetOrigin(OriginType _arg)
void PrintSelf(std::ostream &os, itk::Indent indent) const override
void SetOrigin(const float origin[2])
itk::Point< double, 2 > OriginType
DataNodePointerType GetRoot() const
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.