4 #include "Kernel_global.h"
8 class ColumnDefinition;
10 typedef std::unique_ptr<geos::geom::Geometry> UPGeometry;
18 virtual quint64 featureid()
const = 0;
19 virtual bool isValid()
const = 0 ;
20 virtual const UPGeometry& geometry(quint32 index=0)
const = 0;
21 virtual UPGeometry& geometry(quint32 index=0) = 0;
22 virtual void set(geos::geom::Geometry *geom,
int index = 0) = 0;
23 QVariant operator()(
const QString& name,
int index = -1,
bool asRaw=
true);
25 virtual IlwisTypes geometryType(qint32 index=0)
const = 0;
26 virtual quint32 trackSize()
const = 0;
27 virtual QVariant cell(
const QString& name,
int index=-1,
bool asRaw=
true) = 0;
28 virtual void setCell(
const QString& name,
const QVariant& var,
int index=-1) = 0;
29 virtual void setCell(quint32 colIndex,
const QVariant& var,
int index=-1) = 0;
30 virtual QVariant cell(quint32 colIndex,
int index=-1,
bool asRaw=
true) = 0;
31 virtual ColumnDefinition columndefinition(
const QString& name,
bool coverages=
true)
const = 0;
32 virtual ColumnDefinition columndefinition(quint32 index,
bool coverages=
true)
const = 0;
33 virtual quint32 attributeColumnCount(
bool coverages=
true)
const = 0;
39 class KERNELSHARED_EXPORT
UPFeatureI :
public std::unique_ptr<FeatureInterface> {
42 QVariant operator ()(
const QString &name,
int index,
bool asRaw=
true);
43 QVariant operator ()(
const QString &name,
bool asRaw=
true);
44 void operator ()(
const QString &name,
const QVariant& var,
int index=-1);
60 quint64 featureid()
const ;
61 bool isValid()
const ;
62 const UPGeometry& geometry(quint32 index=0)
const;
63 UPGeometry& geometry(quint32 index=0);
64 void set(geos::geom::Geometry *geom,
int index = 0);
66 IlwisTypes geometryType(qint32 index=0)
const ;
67 quint32 trackSize()
const ;
68 QVariant cell(quint32 colIndex,
int index=-1,
bool asRaw=
true) ;
69 virtual QVariant cell(
const QString& name,
int index=-1,
bool asRaw=
true) ;
70 virtual void setCell(
const QString& name,
const QVariant& var,
int index=-1);
71 virtual void setCell(quint32 colIndex,
const QVariant& var,
int index=-1);
72 ColumnDefinition columndefinition(
const QString& name,
bool coverages=
true)
const;
74 quint32 attributeColumnCount(
bool coverages=
true)
const;
75 quint32 index()
const;
76 void setIndex(quint32 ind);
87 typedef std::unique_ptr<FeatureNode> UPFeatureNode;
89 typedef std::unique_ptr<AttributeRecord> UPAttributeRecord;
108 quint64 featureid()
const;
109 bool isValid()
const ;
110 const UPGeometry& geometry(quint32 index=0)
const;
111 UPGeometry& geometry(quint32 index=0);
112 void set(geos::geom::Geometry *geom,
int index = 0);
114 IlwisTypes geometryType(qint32 index=iUNDEF)
const;
115 quint32 trackSize()
const;
116 QVariant cell(quint32 colIndex,
int index=-1,
bool asRaw=
true) ;
117 QVariant cell(
const QString& name,
int index=-1,
bool asRaw=
true);
118 void setCell(
const QString& name,
const QVariant& var,
int index=-1);
119 void setCell(quint32 colIndex,
const QVariant& var,
int index=-1) ;
120 ColumnDefinition columndefinition(
const QString& name,
bool coverages=
true)
const;
121 ColumnDefinition columndefinition(quint32 index,
bool coverages=
true)
const;
122 quint32 attributeColumnCount(
bool coverages=
true)
const;
129 static quint64 _idbase;
131 std::vector<UPFeatureNode> _track;
132 UPAttributeRecord _record;