GDAL
Public Member Functions | Static Public Member Functions | List of all members
OGRFeatureDefn Class Reference

Definition of a feature class or feature layer. More...

#include <ogr_feature.h>

Public Member Functions

 OGRFeatureDefn (const char *pszName=NULL)
 Constructor. More...
 
virtual const char * GetName ()
 Get name of this OGRFeatureDefn. More...
 
virtual int GetFieldCount ()
 Fetch number of fields on this feature. More...
 
virtual OGRFieldDefnGetFieldDefn (int i)
 Fetch field definition. More...
 
virtual int GetFieldIndex (const char *)
 Find field by name. More...
 
virtual void AddFieldDefn (OGRFieldDefn *)
 Add a new field definition. More...
 
virtual OGRErr DeleteFieldDefn (int iField)
 Delete an existing field definition. More...
 
virtual OGRErr ReorderFieldDefns (int *panMap)
 Reorder the field definitions in the array of the feature definition. More...
 
virtual int GetGeomFieldCount ()
 Fetch number of geometry fields on this feature. More...
 
virtual OGRGeomFieldDefnGetGeomFieldDefn (int i)
 Fetch geometry field definition. More...
 
virtual int GetGeomFieldIndex (const char *)
 Find geometry field by name. More...
 
virtual void AddGeomFieldDefn (OGRGeomFieldDefn *, int bCopy=TRUE)
 Add a new geometry field definition. More...
 
virtual OGRErr DeleteGeomFieldDefn (int iGeomField)
 Delete an existing geometry field definition. More...
 
virtual OGRwkbGeometryType GetGeomType ()
 Fetch the geometry base type. More...
 
virtual void SetGeomType (OGRwkbGeometryType)
 Assign the base geometry type for this layer. More...
 
virtual OGRFeatureDefnClone ()
 Create a copy of this feature definition. More...
 
int Reference ()
 Increments the reference count by one. More...
 
int Dereference ()
 Decrements the reference count by one. More...
 
int GetReferenceCount ()
 Fetch current reference count. More...
 
void Release ()
 Drop a reference to this object, and destroy if no longer referenced.
 
virtual int IsGeometryIgnored ()
 Determine whether the geometry can be omitted when fetching features. More...
 
virtual void SetGeometryIgnored (int bIgnore)
 Set whether the geometry can be omitted when fetching features. More...
 
virtual int IsStyleIgnored () const
 Determine whether the style can be omitted when fetching features. More...
 
virtual void SetStyleIgnored (int bIgnore)
 Set whether the style can be omitted when fetching features. More...
 
virtual int IsSame (OGRFeatureDefn *poOtherFeatureDefn)
 Test if the feature definition is identical to the other one. More...
 

Static Public Member Functions

static OGRFeatureDefnCreateFeatureDefn (const char *pszName=NULL)
 Create a new feature definition object. More...
 
static void DestroyFeatureDefn (OGRFeatureDefn *)
 Destroy a feature definition. More...
 

Detailed Description

Definition of a feature class or feature layer.

This object contains schema information for a set of OGRFeatures. In table based systems, an OGRFeatureDefn is essentially a layer. In more object oriented approaches (such as SF CORBA) this can represent a class of features but doesn't necessarily relate to all of a layer, or just one layer.

This object also can contain some other information such as a name and potentially other metadata.

It is essentially a collection of field descriptions (OGRFieldDefn class). Starting with GDAL 1.11, in addition to attribute fields, it can also contain multiple geometry fields (OGRGeomFieldDefn class).

It is reasonable for different translators to derive classes from OGRFeatureDefn with additional translator specific information.

Constructor & Destructor Documentation

OGRFeatureDefn::OGRFeatureDefn ( const char *  pszName = NULL)
explicit

Constructor.

The OGRFeatureDefn maintains a reference count, but this starts at zero. It is mainly intended to represent a count of OGRFeature's based on this definition.

This method is the same as the C function OGR_FD_Create().

Parameters
pszNamethe name to be assigned to this layer/class. It does not need to be unique.

Member Function Documentation

void OGRFeatureDefn::AddFieldDefn ( OGRFieldDefn poNewDefn)
virtual

Add a new field definition.

To add a new field definition to a layer definition, do not use this function directly, but use OGRLayer::CreateField() instead.

This method should only be called while there are no OGRFeature objects in existence based on this OGRFeatureDefn. The OGRFieldDefn passed in is copied, and remains the responsibility of the caller.

This method is the same as the C function OGR_FD_AddFieldDefn().

Parameters
poNewDefnthe definition of the new field.
void OGRFeatureDefn::AddGeomFieldDefn ( OGRGeomFieldDefn poNewDefn,
int  bCopy = TRUE 
)
virtual

Add a new geometry field definition.

To add a new geometry field definition to a layer definition, do not use this function directly, but use OGRLayer::CreateGeomField() instead.

This method does an internal copy of the passed geometry field definition, unless bCopy is set to FALSE (in which case it takes ownership of the field definition.

This method should only be called while there are no OGRFeature objects in existence based on this OGRFeatureDefn. The OGRGeomFieldDefn passed in is copied, and remains the responsibility of the caller.

This method is the same as the C function OGR_FD_AddGeomFieldDefn().

Parameters
poNewDefnthe definition of the new geometry field.
bCopywhether poNewDefn should be copied.
Since
GDAL 1.11
OGRFeatureDefn * OGRFeatureDefn::Clone ( )
virtual

Create a copy of this feature definition.

Creates a deep copy of the feature definition.

Returns
the copy.
OGRFeatureDefn * OGRFeatureDefn::CreateFeatureDefn ( const char *  pszName = NULL)
static

Create a new feature definition object.

Parameters
pszNamename
Returns
new feature definition object.
OGRErr OGRFeatureDefn::DeleteFieldDefn ( int  iField)
virtual

Delete an existing field definition.

To delete an existing field definition from a layer definition, do not use this function directly, but use OGRLayer::DeleteField() instead.

This method should only be called while there are no OGRFeature objects in existence based on this OGRFeatureDefn.

This method is the same as the C function OGR_FD_DeleteFieldDefn().

Parameters
iFieldthe index of the field definition.
Returns
OGRERR_NONE in case of success.
Since
OGR 1.9.0
OGRErr OGRFeatureDefn::DeleteGeomFieldDefn ( int  iGeomField)
virtual

Delete an existing geometry field definition.

To delete an existing field definition from a layer definition, do not use this function directly, but use OGRLayer::DeleteGeomField() instead.

This method should only be called while there are no OGRFeature objects in existence based on this OGRFeatureDefn.

This method is the same as the C function OGR_FD_DeleteGeomFieldDefn().

Parameters
iGeomFieldthe index of the geometry field definition.
Returns
OGRERR_NONE in case of success.
Since
GDAL 1.11
int OGRFeatureDefn::Dereference ( )
inline

Decrements the reference count by one.

This method is the same as the C function OGR_FD_Dereference().

Returns
the updated reference count.
void OGRFeatureDefn::DestroyFeatureDefn ( OGRFeatureDefn poDefn)
static

Destroy a feature definition.

Parameters
poDefnfeature definition.
int OGRFeatureDefn::GetFieldCount ( )
virtual

Fetch number of fields on this feature.

This method is the same as the C function OGR_FD_GetFieldCount().

Returns
count of fields.
OGRFieldDefn * OGRFeatureDefn::GetFieldDefn ( int  iField)
virtual

Fetch field definition.

This method is the same as the C function OGR_FD_GetFieldDefn().

Starting with GDAL 1.7.0, this method will also issue an error if the index is not valid.

Parameters
iFieldthe field to fetch, between 0 and GetFieldCount() - 1.
Returns
a pointer to an internal field definition object or NULL if invalid index. This object should not be modified or freed by the application.
int OGRFeatureDefn::GetFieldIndex ( const char *  pszFieldName)
virtual

Find field by name.

The field index of the first field matching the passed field name (case insensitively) is returned.

This method is the same as the C function OGR_FD_GetFieldIndex().

Parameters
pszFieldNamethe field name to search for.
Returns
the field index, or -1 if no match found.
int OGRFeatureDefn::GetGeomFieldCount ( )
virtual

Fetch number of geometry fields on this feature.

This method is the same as the C function OGR_FD_GetGeomFieldCount().

Returns
count of geometry fields.
Since
GDAL 1.11
OGRGeomFieldDefn * OGRFeatureDefn::GetGeomFieldDefn ( int  iGeomField)
virtual

Fetch geometry field definition.

This method is the same as the C function OGR_FD_GetGeomFieldDefn().

Parameters
iGeomFieldthe geometry field to fetch, between 0 and GetGeomFieldCount() - 1.
Returns
a pointer to an internal field definition object or NULL if invalid index. This object should not be modified or freed by the application.
Since
GDAL 1.11
int OGRFeatureDefn::GetGeomFieldIndex ( const char *  pszGeomFieldName)
virtual

Find geometry field by name.

The geometry field index of the first geometry field matching the passed field name (case insensitively) is returned.

This method is the same as the C function OGR_FD_GetGeomFieldIndex().

Parameters
pszGeomFieldNamethe geometry field name to search for.
Returns
the geometry field index, or -1 if no match found.
OGRwkbGeometryType OGRFeatureDefn::GetGeomType ( )
virtual

Fetch the geometry base type.

Note that some drivers are unable to determine a specific geometry type for a layer, in which case wkbUnknown is returned. A value of wkbNone indicates no geometry is available for the layer at all. Many drivers do not properly mark the geometry type as 25D even if some or all geometries are in fact 25D. A few (broken) drivers return wkbPolygon for layers that also include wkbMultiPolygon.

Starting with GDAL 1.11, this method returns GetGeomFieldDefn(0)->GetType().

This method is the same as the C function OGR_FD_GetGeomType().

Returns
the base type for all geometry related to this definition.
const char * OGRFeatureDefn::GetName ( )
virtual

Get name of this OGRFeatureDefn.

This method is the same as the C function OGR_FD_GetName().

Returns
the name. This name is internal and should not be modified, or freed.
int OGRFeatureDefn::GetReferenceCount ( )
inline

Fetch current reference count.

This method is the same as the C function OGR_FD_GetReferenceCount().

Returns
the current reference count.
int OGRFeatureDefn::IsGeometryIgnored ( )
virtual

Determine whether the geometry can be omitted when fetching features.

This method is the same as the C function OGR_FD_IsGeometryIgnored().

Starting with GDAL 1.11, this method returns GetGeomFieldDefn(0)->IsIgnored().

Returns
ignore state
int OGRFeatureDefn::IsSame ( OGRFeatureDefn poOtherFeatureDefn)
virtual

Test if the feature definition is identical to the other one.

Parameters
poOtherFeatureDefnthe other feature definition to compare to.
Returns
TRUE if the feature definition is identical to the other one.
int OGRFeatureDefn::IsStyleIgnored ( ) const
inlinevirtual

Determine whether the style can be omitted when fetching features.

This method is the same as the C function OGR_FD_IsStyleIgnored().

Returns
ignore state
int OGRFeatureDefn::Reference ( )
inline

Increments the reference count by one.

The reference count is used keep track of the number of OGRFeature objects referencing this definition.

This method is the same as the C function OGR_FD_Reference().

Returns
the updated reference count.
OGRErr OGRFeatureDefn::ReorderFieldDefns ( int *  panMap)
virtual

Reorder the field definitions in the array of the feature definition.

To reorder the field definitions in a layer definition, do not use this function directly, but use OGR_L_ReorderFields() instead.

This method should only be called while there are no OGRFeature objects in existence based on this OGRFeatureDefn.

This method is the same as the C function OGR_FD_ReorderFieldDefns().

Parameters
panMapan array of GetFieldCount() elements which is a permutation of [0, GetFieldCount()-1]. panMap is such that, for each field definition at position i after reordering, its position before reordering was panMap[i].
Returns
OGRERR_NONE in case of success.
Since
OGR 1.9.0
void OGRFeatureDefn::SetGeometryIgnored ( int  bIgnore)
virtual

Set whether the geometry can be omitted when fetching features.

This method is the same as the C function OGR_FD_SetGeometryIgnored().

Starting with GDAL 1.11, this method calls GetGeomFieldDefn(0)->SetIgnored().

Parameters
bIgnoreignore state
void OGRFeatureDefn::SetGeomType ( OGRwkbGeometryType  eNewType)
virtual

Assign the base geometry type for this layer.

All geometry objects using this type must be of the defined type or a derived type. The default upon creation is wkbUnknown which allows for any geometry type. The geometry type should generally not be changed after any OGRFeatures have been created against this definition.

This method is the same as the C function OGR_FD_SetGeomType().

Starting with GDAL 1.11, this method calls GetGeomFieldDefn(0)->SetType().

Parameters
eNewTypethe new type to assign.
void OGRFeatureDefn::SetStyleIgnored ( int  bIgnore)
inlinevirtual

Set whether the style can be omitted when fetching features.

This method is the same as the C function OGR_FD_SetStyleIgnored().

Parameters
bIgnoreignore state

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

Generated for GDAL by doxygen 1.8.8.