int OGRFeatureDefn::IsSame( OGRFeatureDefn * poOtherFeatureDefn ) { if (strcmp(GetName(), poOtherFeatureDefn->GetName()) == 0 && GetFieldCount() == poOtherFeatureDefn->GetFieldCount() && GetGeomFieldCount() == poOtherFeatureDefn->GetGeomFieldCount()) { int i; for(i=0;i<nFieldCount;i++) { const OGRFieldDefn* poFldDefn = GetFieldDefn(i); const OGRFieldDefn* poOtherFldDefn = poOtherFeatureDefn->GetFieldDefn(i); if (!poFldDefn->IsSame(poOtherFldDefn)) { return FALSE; } } for(i=0;i<nGeomFieldCount;i++) { OGRGeomFieldDefn* poGFldDefn = GetGeomFieldDefn(i); OGRGeomFieldDefn* poOtherGFldDefn = poOtherFeatureDefn->GetGeomFieldDefn(i); if (!poGFldDefn->IsSame(poOtherGFldDefn)) { return FALSE; } } return TRUE; } return FALSE; }
int OGRFeatureDefn::GetFieldIndex( const char * pszFieldName ) { GetFieldCount(); for( int i = 0; i < nFieldCount; i++ ) { if( EQUAL(pszFieldName, GetFieldDefn(i)->GetNameRef() ) ) return i; } return -1; }
OGRFeatureDefn *OGRFeatureDefn::Clone() { OGRFeatureDefn *poCopy; poCopy = new OGRFeatureDefn( GetName() ); poCopy->SetGeomType( GetGeomType() ); for( int i = 0; i < GetFieldCount(); i++ ) poCopy->AddFieldDefn( GetFieldDefn( i ) ); return poCopy; }
OGRFeatureDefn *OGRFeatureDefn::Clone() { int i; OGRFeatureDefn *poCopy; poCopy = new OGRFeatureDefn( GetName() ); GetFieldCount(); for( i = 0; i < nFieldCount; i++ ) poCopy->AddFieldDefn( GetFieldDefn( i ) ); /* There is a default geometry field created at OGRFeatureDefn instanciation */ poCopy->DeleteGeomFieldDefn(0); GetGeomFieldCount(); for( i = 0; i < nGeomFieldCount; i++ ) poCopy->AddGeomFieldDefn( GetGeomFieldDefn( i ) ); return poCopy; }