|
GDAL
|
00001 /****************************************************************************** 00002 * $Id: gnm_api.h 35902 2016-10-24 12:00:50Z goatbar $ 00003 * 00004 * Project: GDAL/OGR Geography Network support (Geographic Network Model) 00005 * Purpose: GNM C API. 00006 * Authors: Mikhail Gusev (gusevmihs at gmail dot com) 00007 * Dmitry Baryshnikov, polimax@mail.ru 00008 * 00009 ****************************************************************************** 00010 * Copyright (c) 2014, Mikhail Gusev 00011 * Copyright (c) 2014-2015, NextGIS <info@nextgis.com> 00012 * 00013 * Permission is hereby granted, free of charge, to any person obtaining a 00014 * copy of this software and associated documentation files (the "Software"), 00015 * to deal in the Software without restriction, including without limitation 00016 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 00017 * and/or sell copies of the Software, and to permit persons to whom the 00018 * Software is furnished to do so, subject to the following conditions: 00019 * 00020 * The above copyright notice and this permission notice shall be included 00021 * in all copies or substantial portions of the Software. 00022 * 00023 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00024 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00025 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 00026 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00027 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 00028 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 00029 * DEALINGS IN THE SOFTWARE. 00030 ****************************************************************************/ 00031 00032 #ifndef GNM_API 00033 #define GNM_API 00034 00035 #include "gnm.h" 00036 00037 CPL_C_START 00038 00039 typedef void *GNMNetworkH; 00040 typedef void *GNMGenericNetworkH; 00041 00042 const char CPL_DLL * CPL_STDCALL GNMGetName (GNMNetworkH hNet); 00043 00044 int CPL_DLL CPL_STDCALL GNMGetVersion(GNMNetworkH hNet); 00045 00046 CPLErr CPL_DLL CPL_STDCALL GNMDisconnectAll (GNMNetworkH hNet); 00047 00048 OGRFeatureH CPL_DLL CPL_STDCALL GNMGetFeatureByGlobalFID (GNMNetworkH hNet, GNMGFID nGFID); 00049 00050 OGRLayerH CPL_DLL CPL_STDCALL GNMGetPath (GNMNetworkH hNet, GNMGFID nStartFID, 00051 GNMGFID nEndFID, GNMGraphAlgorithmType eAlgorithm, 00052 char** papszOptions); 00053 00054 CPLErr CPL_DLL CPL_STDCALL GNMConnectFeatures (GNMGenericNetworkH hNet, 00055 GNMGFID nSrcFID, GNMGFID nTgtFID, 00056 GNMGFID nConFID, double dfCost, 00057 double dfInvCost, 00058 GNMDirection eDir); 00059 00060 CPLErr CPL_DLL CPL_STDCALL GNMDisconnectFeatures (GNMGenericNetworkH hNet, 00061 GNMGFID nSrcFID, GNMGFID nTgtFID, 00062 GNMGFID nConFID); 00063 00064 CPLErr CPL_DLL CPL_STDCALL GNMDisconnectFeaturesWithId(GNMGenericNetworkH hNet, 00065 GNMGFID nFID); 00066 00067 CPLErr CPL_DLL CPL_STDCALL GNMReconnectFeatures (GNMGenericNetworkH hNet, 00068 GNMGFID nSrcFID, GNMGFID nTgtFID, 00069 GNMGFID nConFID, double dfCost, 00070 double dfInvCost, GNMDirection eDir); 00071 00072 CPLErr CPL_DLL CPL_STDCALL GNMCreateRule (GNMGenericNetworkH hNet, 00073 const char *pszRuleStr); 00074 00075 CPLErr CPL_DLL CPL_STDCALL GNMDeleteAllRules(GNMGenericNetworkH hNet); 00076 00077 CPLErr CPL_DLL CPL_STDCALL GNMDeleteRule(GNMGenericNetworkH hNet, 00078 const char *pszRuleStr); 00079 00080 char CPL_DLL ** CPL_STDCALL GNMGetRules(GNMGenericNetworkH hNet); 00081 00082 CPLErr CPL_DLL CPL_STDCALL GNMConnectPointsByLines (GNMGenericNetworkH hNet, 00083 char **papszLayerList, 00084 double dfTolerance, 00085 double dfCost, 00086 double dfInvCost, 00087 GNMDirection eDir); 00088 00089 CPLErr CPL_DLL CPL_STDCALL GNMChangeBlockState (GNMGenericNetworkH hNet, 00090 GNMGFID nFID, bool bIsBlock); 00091 00092 CPLErr CPL_DLL CPL_STDCALL GNMChangeAllBlockState (GNMGenericNetworkH hNet, 00093 int bIsBlock); 00094 00095 CPL_C_END 00096 00097 #endif // GNM_API
1.7.6.1.