QgsFeature Class Reference
[QGIS core library]

The feature class encapsulates a single feature including its id, geometry and a list of field/values attributes. More...

#include <qgsfeature.h>

Collaboration diagram for QgsFeature:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 QgsFeature (int id=0, QString typeName="")
 Constructor.
 QgsFeature (QgsFeature const &rhs)
 copy ctor needed due to internal pointer
QgsFeatureoperator= (QgsFeature const &rhs)
 assignment operator needed due to internal pointer
 ~QgsFeature ()
 Destructor.
int id () const
 Get the feature id for this feature.
void setFeatureId (int id)
 Set the feature id for this feature.
QString typeName () const
 returns the feature's type name
void setTypeName (QString typeName)
 sets the feature's type name
const QgsAttributeMapattributeMap () const
 Get the attributes for this feature.
void setAttributeMap (const QgsAttributeMap &attributeMap)
 Sets all the attributes in one go.
void clearAttributeMap ()
 Clear attribute map added in 1.5.
void addAttribute (int field, QVariant attr)
 Add an attribute to the map.
void deleteAttribute (int field)
 Deletes an attribute and its value.
void changeAttribute (int field, QVariant attr)
 Changes an existing attribute value.
bool isValid () const
 Return the validity of this feature.
void setValid (bool validity)
 Set the validity of the feature.
bool isDirty () const
 Return the dirty state of this feature.
void clean ()
 Reset the dirtiness of the feature.
QgsGeometrygeometry ()
 Get the geometry object associated with this feature.
QgsGeometrygeometryAndOwnership ()
 Get the geometry object associated with this feature The caller assumes responsibility for the QgsGeometry*'s destruction.
void setGeometry (const QgsGeometry &geom)
 Set this feature's geometry from another QgsGeometry object (deep copy).
void setGeometry (QgsGeometry *geom)
 Set this feature's geometry (takes geometry ownership).
void setGeometryAndOwnership (unsigned char *geom, size_t length)
 Set this feature's geometry from WKB.

Private Attributes

int mFid
 feature id
QgsAttributeMap mAttributes
 map of attributes accessed by field index
QgsGeometrymGeometry
 pointer to geometry in binary WKB format
bool mOwnsGeometry
 Indicator if the mGeometry is owned by this QgsFeature.
bool mValid
 Flag to indicate if this feature is valid.
bool mDirty
 Flag to indicate if this feature is dirty (e.g. geometry has been modified in-memory).
QString mTypeName
 feature type name


Detailed Description

The feature class encapsulates a single feature including its id, geometry and a list of field/values attributes.

Encapsulates a spatial feature with attributes.

Author:
Gary E.Sherman

Definition at line 49 of file qgsfeature.h.


Constructor & Destructor Documentation

QgsFeature::QgsFeature ( int  id = 0,
QString  typeName = "" 
)

Constructor.

Definition at line 25 of file qgsfeature.cpp.

QgsFeature::QgsFeature ( QgsFeature const &  rhs  ) 

copy ctor needed due to internal pointer

Definition at line 36 of file qgsfeature.cpp.

References mGeometry, and setGeometry().

QgsFeature::~QgsFeature (  ) 

Destructor.

Definition at line 81 of file qgsfeature.cpp.

References mGeometry, and mOwnsGeometry.


Member Function Documentation

QgsFeature & QgsFeature::operator= ( QgsFeature const &  rhs  ) 

assignment operator needed due to internal pointer

Definition at line 54 of file qgsfeature.cpp.

References mAttributes, mDirty, mFid, mGeometry, mOwnsGeometry, mTypeName, mValid, and setGeometry().

int QgsFeature::id (  )  const

void QgsFeature::setFeatureId ( int  id  ) 

Set the feature id for this feature.

Set the feature id.

Parameters:
id Feature id

Definition at line 154 of file qgsfeature.cpp.

References mFid.

Referenced by QgsVectorLayer::addFeature(), QgsVectorLayer::featureAtId(), and QgsVectorLayer::nextFeature().

QString QgsFeature::typeName (  )  const

void QgsFeature::setTypeName ( QString  typeName  ) 

sets the feature's type name

Definition at line 169 of file qgsfeature.cpp.

References mTypeName.

const QgsAttributeMap & QgsFeature::attributeMap (  )  const

void QgsFeature::setAttributeMap ( const QgsAttributeMap attributeMap  ) 

void QgsFeature::clearAttributeMap (  ) 

Clear attribute map added in 1.5.

Clear attribute map for this feature.

Definition at line 113 of file qgsfeature.cpp.

References mAttributes.

void QgsFeature::addAttribute ( int  field,
QVariant  attr 
)

Add an attribute to the map.

Definition at line 121 of file qgsfeature.cpp.

References mAttributes.

void QgsFeature::deleteAttribute ( int  field  ) 

Deletes an attribute and its value.

Definition at line 127 of file qgsfeature.cpp.

References mAttributes.

Referenced by QgsVectorLayer::updateFeatureAttributes().

void QgsFeature::changeAttribute ( int  field,
QVariant  attr 
)

Changes an existing attribute value.

Parameters:
field index of the field
attr attribute name and value to be set

Definition at line 133 of file qgsfeature.cpp.

References mAttributes.

Referenced by QgsVectorLayer::redoEditCommand(), and QgsVectorLayer::updateFeatureAttributes().

bool QgsFeature::isValid (  )  const

Return the validity of this feature.

This is normally set by the provider to indicate some problem that makes the feature invalid or to indicate a null feature.

Definition at line 203 of file qgsfeature.cpp.

References mValid.

Referenced by QgsVectorLayer::drawFeature().

void QgsFeature::setValid ( bool  validity  ) 

Set the validity of the feature.

Definition at line 208 of file qgsfeature.cpp.

References mValid.

Referenced by QgsVectorLayer::featureAtId(), and QgsVectorLayer::nextFeature().

bool QgsFeature::isDirty (  )  const

Return the dirty state of this feature.

Dirty is set if (e.g.) the feature's geometry has been modified in-memory.

Definition at line 213 of file qgsfeature.cpp.

References mDirty.

void QgsFeature::clean (  ) 

Reset the dirtiness of the feature.

(i.e. make clean) You would normally do this after it's saved to permanent storage (e.g. disk, an ACID-compliant database)

Definition at line 218 of file qgsfeature.cpp.

References mDirty.

QgsGeometry * QgsFeature::geometry (  ) 

QgsGeometry * QgsFeature::geometryAndOwnership (  ) 

Get the geometry object associated with this feature The caller assumes responsibility for the QgsGeometry*'s destruction.

Definition at line 143 of file qgsfeature.cpp.

References mGeometry, and mOwnsGeometry.

Referenced by QgsVectorLayer::addIsland().

void QgsFeature::setGeometry ( const QgsGeometry geom  ) 

void QgsFeature::setGeometry ( QgsGeometry geom  ) 

Set this feature's geometry (takes geometry ownership).

Definition at line 180 of file qgsfeature.cpp.

References mGeometry, and mOwnsGeometry.

void QgsFeature::setGeometryAndOwnership ( unsigned char *  geom,
size_t  length 
)

Set this feature's geometry from WKB.

Set the pointer to the feature geometry.

This feature assumes responsibility for destroying geom.

Definition at line 195 of file qgsfeature.cpp.

References QgsGeometry::fromWkb(), and setGeometry().


Member Data Documentation

int QgsFeature::mFid [private]

feature id

Definition at line 167 of file qgsfeature.h.

Referenced by id(), operator=(), and setFeatureId().

map of attributes accessed by field index

Definition at line 170 of file qgsfeature.h.

Referenced by addAttribute(), attributeMap(), changeAttribute(), clearAttributeMap(), deleteAttribute(), operator=(), and setAttributeMap().

pointer to geometry in binary WKB format

This is usually set by a call to OGRGeometry::exportToWkb()

Definition at line 176 of file qgsfeature.h.

Referenced by geometry(), geometryAndOwnership(), operator=(), QgsFeature(), setGeometry(), and ~QgsFeature().

bool QgsFeature::mOwnsGeometry [private]

Indicator if the mGeometry is owned by this QgsFeature.

If so, this QgsFeature takes responsibility for the mGeometry's destruction.

Definition at line 181 of file qgsfeature.h.

Referenced by geometryAndOwnership(), operator=(), setGeometry(), and ~QgsFeature().

bool QgsFeature::mValid [private]

Flag to indicate if this feature is valid.

Definition at line 185 of file qgsfeature.h.

Referenced by isValid(), operator=(), and setValid().

bool QgsFeature::mDirty [private]

Flag to indicate if this feature is dirty (e.g. geometry has been modified in-memory).

Definition at line 189 of file qgsfeature.h.

Referenced by clean(), isDirty(), and operator=().

QString QgsFeature::mTypeName [private]

feature type name

Definition at line 192 of file qgsfeature.h.

Referenced by operator=(), setTypeName(), and typeName().


The documentation for this class was generated from the following files:

Generated on Sat Feb 4 19:17:33 2012 for Quantum GIS API Documentation by  doxygen 1.5.6