10 #include <gdb/specMgr.h>
13 class DtVectorNetwork;
16 class DtNetworkElement;
19 namespace MAKVRinTerra
25 ,
public boost::enable_shared_from_this<DtGdbVectorFeature>
29 typedef boost::shared_ptr<DtGdbVectorFeature>
Ptr;
41 virtual void setAsPointGeometry(
const DtPoint&);
44 virtual void setAsLinearGeometry(
const std::vector<DtPoint>&);
47 virtual void setAsArealGeometry(
const std::vector<DtPoint>&);
51 virtual void setSpecificationID(DtSpecificationID);
52 DtSpecificationID specificationID()
const
58 static Ptr MakePoint(
const DtNetworkNode*, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
61 static Ptr MakePath(
const DtNetworkEdge*, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
64 static Ptr MakeArea(
const DtNetworkEdge*, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
67 static Ptr Make(std::istream&, boost::shared_ptr<DtSpecificationManager> mgr,
DtProj::CPtr projection);
72 virtual boost::optional<Attribute> attribute(
const Key & k)
const;
74 virtual void forEachAttribute(ForEachFunction f)
const;
76 virtual unsigned numberOfAttributes(
const Key::String &)
const;
79 virtual CPtr getPtr()
const;
82 virtual void print(std::ostream&);
110 virtual std::string label()
const;
114 virtual bool loaded(
double = 0.0)
const;
115 virtual unsigned numberOfFeatures()
const;
124 virtual void print(std::ostream&);
147 virtual std::string label()
const;
159 virtual void processNodeFeatures(DtVectorNetwork*);
162 virtual void processEdgeFeatures(DtVectorNetwork*);
165 virtual void addLinearFeature(DtNetworkEdge*);
168 virtual void addArealFeature(DtNetworkEdge*);
172 virtual bool isPointFeature(
const DtNetworkElement& networkElement);
176 virtual bool isLinearFeature(
const DtNetworkElement& networkElement);
180 virtual bool isArealFeature(
const DtNetworkElement& networkElement);
187 virtual void print(
const std::string& file);
188 virtual void print(std::ostream&);
189 virtual void print(std::ostream&,
const DtSpecification&);
195 virtual bool saveAsShapeFiles(
const std::string& directory, std::string&
error);
207 std::set<DtSpecificationID>
ids;
218 virtual AttributeMap createAttributeMapFromSpecification(
const DtSpecification&)
const;
221 virtual bool saveShapeFileForLayer(
int featureType,
const SpecificationLayer&,
const std::string& directory, std::string& error)
const;
224 virtual std::string fixupNameToLength(
const std::string& name,
int length)
const;
227 virtual bool addAttributesToLayer(
const AttributeMap&, OGRLayer*, std::string& error)
const;