18 #ifndef __otbLabelMapToVectorDataFilter_txx
19 #define __otbLabelMapToVectorDataFilter_txx
25 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
32 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
39 const_cast<InputLabelMapType *>(input));
42 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
49 const_cast<InputLabelMapType *>(input));
52 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
57 if (this->GetNumberOfInputs() < 1)
62 return static_cast<const TLabelMap *
>
66 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
71 return static_cast<const TLabelMap *
>
75 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
91 folder1->SetNodeType(
FOLDER);
93 output->GetDataTree()->Add(document, root);
94 output->GetDataTree()->Add(folder1, document);
97 typename InputLabelMapType::LabelObjectContainerType::const_iterator it;
99 const typename InputLabelMapType::LabelObjectContainerType& labelObjectContainer = input->GetLabelObjectContainer();
100 for (it = labelObjectContainer.begin(); it != labelObjectContainer.end(); ++it)
106 typename PolygonType::Pointer polygon = functor(labelObject);
114 std::ostringstream oss;
115 oss << labelObject->GetLabel();
116 node->SetNodeId(oss.str());
118 node->SetPolygonExteriorRing(correctPolygon);
121 std::map<std::string, std::string> fields = m_FieldsFunctor(labelObject);
122 std::map<std::string, std::string>::const_iterator it;
123 for ( it = fields.begin(); it != fields.end(); ++it )
125 node->SetFieldAsString(it->first, it->second);
129 output->GetDataTree()->Add(node, folder1);
133 template<
class TLabelMap,
class TVectorData,
class TFieldsFunctor>
138 Superclass::PrintSelf(os, indent);