Line data Source code
1 : /********************************************************************** 2 : * $Id: ogrgeoconceptlayer.h$ 3 : * 4 : * Name: ogrgeoconceptlayer.h 5 : * Project: OpenGIS Simple Features Reference Implementation 6 : * Purpose: Implements OGRGeoconceptLayer class. 7 : * Language: C++ 8 : * 9 : ********************************************************************** 10 : * Copyright (c) 2007, Geoconcept and IGN 11 : * 12 : * Permission is hereby granted, free of charge, to any person obtaining a 13 : * copy of this software and associated documentation files (the "Software"), 14 : * to deal in the Software without restriction, including without limitation 15 : * the rights to use, copy, modify, merge, publish, distribute, sublicense, 16 : * and/or sell copies of the Software, and to permit persons to whom the 17 : * Software is furnished to do so, subject to the following conditions: 18 : * 19 : * The above copyright notice and this permission notice shall be included 20 : * in all copies or substantial portions of the Software. 21 : * 22 : * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 : * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 : * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 25 : * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 26 : * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 27 : * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 28 : * DEALINGS IN THE SOFTWARE. 29 : **********************************************************************/ 30 : 31 : #include "ogrsf_frmts.h" 32 : #include "geoconcept.h" 33 : 34 : #ifndef GEOCONCEPT_OGR_LAYER_H_INCLUDED_ 35 : #define GEOCONCEPT_OGR_LAYER_H_INCLUDED_ 36 : 37 : /**********************************************************************/ 38 : /* OGCGeoconceptLayer Class */ 39 : /**********************************************************************/ 40 : class OGRGeoconceptLayer final : public OGRLayer 41 : { 42 : private: 43 : OGRFeatureDefn *_poFeatureDefn; 44 : 45 : GCSubType *_gcFeature; 46 : 47 : public: 48 : OGRGeoconceptLayer(); 49 : virtual ~OGRGeoconceptLayer(); 50 : 51 : OGRErr Open(GCSubType *Subclass); 52 : 53 : // OGRGeometry* GetSpatialFilter( ); 54 : // void SetSpatialFilter( OGRGeometry* poGeomIn ); 55 : // void SetSpatialFilterRect( double dfMinX, double 56 : // dfMinY, double dfMaxX, double dfMaxY ); OGRErr SetAttributeFilter( 57 : // const char* pszQuery ); 58 : void ResetReading() override; 59 : OGRFeature *GetNextFeature() override; 60 : // OGRErr SetNextByIndex( GIntBig nIndex ); 61 : 62 : // OGRFeature* GetFeature( GIntBig nFID ); 63 : // OGRErr ISetFeature( OGRFeature* poFeature ); 64 : // OGRErr DeleteFeature( GIntBig nFID ); 65 : OGRErr ICreateFeature(OGRFeature *poFeature) override; 66 : 67 26 : OGRFeatureDefn *GetLayerDefn() override 68 : { 69 26 : return _poFeatureDefn; 70 : } // FIXME 71 : 72 : OGRSpatialReference *GetSpatialRef() override; 73 : GIntBig GetFeatureCount(int bForce = TRUE) override; 74 : OGRErr GetExtent(OGREnvelope *psExtent, int bForce = TRUE) override; 75 : 76 0 : virtual OGRErr GetExtent(int iGeomField, OGREnvelope *psExtent, 77 : int bForce) override 78 : { 79 0 : return OGRLayer::GetExtent(iGeomField, psExtent, bForce); 80 : } 81 : 82 : int TestCapability(const char *pszCap) override; 83 : // const char* GetInfo( const char* pszTag ); 84 : OGRErr CreateField(const OGRFieldDefn *poField, 85 : int bApproxOK = TRUE) override; 86 : OGRErr SyncToDisk() override; 87 : // OGRStyleTable* GetStyleTable( ); 88 : // void SetStyleTableDirectly( OGRStyleTable* 89 : // poStyleTable ); void SetStyleTable( OGRStyleTable* 90 : // poStyleTable ); const char* GetFIDColumn( ); const char* 91 : // GetGeometryColumn( ); 92 : 93 : void SetSpatialRef(OGRSpatialReference *poSpatialRef); 94 : }; 95 : 96 : #endif /* GEOCONCEPT_OGR_LAYER_H_INCLUDED_ */