/src/gdal/gnm/gnmnetwork.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | /****************************************************************************** |
2 | | * |
3 | | * Project: GDAL/OGR Geography Network support (Geographic Network Model) |
4 | | * Purpose: GNM network class. |
5 | | * Authors: Mikhail Gusev (gusevmihs at gmail dot com) |
6 | | * Dmitry Baryshnikov, polimax@mail.ru |
7 | | * |
8 | | ****************************************************************************** |
9 | | * Copyright (c) 2014, Mikhail Gusev |
10 | | * Copyright (c) 2014-2015, NextGIS <info@nextgis.com> |
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 |
23 | | * OR 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 "gnm_api.h" |
32 | | #include "ogrsf_frmts.h" |
33 | | |
34 | 0 | GNMNetwork::GNMNetwork() : GDALDataset() |
35 | 0 | { |
36 | 0 | } |
37 | | |
38 | | GNMNetwork::~GNMNetwork() |
39 | 0 | { |
40 | 0 | } |
41 | | |
42 | | const char *GNMNetwork::GetName() const |
43 | 0 | { |
44 | 0 | return m_soName; |
45 | 0 | } |
46 | | |
47 | | const OGRSpatialReference *GNMNetwork::GetSpatialRef() const |
48 | 0 | { |
49 | 0 | return m_oSRS.IsEmpty() ? nullptr : &m_oSRS; |
50 | 0 | } |
51 | | |
52 | | char **GNMNetwork::GetFileList() |
53 | 0 | { |
54 | 0 | return nullptr; |
55 | 0 | } |
56 | | |
57 | | //--- C API -------------------------------------------------------------------- |
58 | | |
59 | | const char *CPL_STDCALL GNMGetName(GNMNetworkH hNet) |
60 | 0 | { |
61 | 0 | VALIDATE_POINTER1(hNet, "GNMGetVersion", nullptr); |
62 | | |
63 | 0 | return GNMNetwork::FromHandle(hNet)->GetName(); |
64 | 0 | } |
65 | | |
66 | | int CPL_STDCALL GNMGetVersion(GNMNetworkH hNet) |
67 | 0 | { |
68 | 0 | VALIDATE_POINTER1(hNet, "GNMGetVersion", 0); |
69 | | |
70 | 0 | return GNMNetwork::FromHandle(hNet)->GetVersion(); |
71 | 0 | } |
72 | | |
73 | | CPLErr CPL_STDCALL GNMDisconnectAll(GNMNetworkH hNet) |
74 | 0 | { |
75 | 0 | VALIDATE_POINTER1(hNet, "GNMDisconnectAll", CE_Failure); |
76 | | |
77 | 0 | return GNMNetwork::FromHandle(hNet)->DisconnectAll(); |
78 | 0 | } |
79 | | |
80 | | OGRFeatureH CPL_STDCALL GNMGetFeatureByGlobalFID(GNMNetworkH hNet, |
81 | | GNMGFID nGFID) |
82 | 0 | { |
83 | 0 | VALIDATE_POINTER1(hNet, "GNMGetFeatureByGlobalFID", nullptr); |
84 | | |
85 | 0 | return OGRFeature::ToHandle( |
86 | 0 | GNMNetwork::FromHandle(hNet)->GetFeatureByGlobalFID(nGFID)); |
87 | 0 | } |
88 | | |
89 | | OGRLayerH CPL_STDCALL GNMGetPath(GNMNetworkH hNet, GNMGFID nStartFID, |
90 | | GNMGFID nEndFID, |
91 | | GNMGraphAlgorithmType eAlgorithm, |
92 | | char **papszOptions) |
93 | 0 | { |
94 | 0 | VALIDATE_POINTER1(hNet, "GNMGetPath", nullptr); |
95 | | |
96 | 0 | return OGRLayer::ToHandle(GNMNetwork::FromHandle(hNet)->GetPath( |
97 | 0 | nStartFID, nEndFID, eAlgorithm, papszOptions)); |
98 | 0 | } |
99 | | |
100 | | GNMNetworkH CPL_STDCALL GNMCastToNetwork(GDALMajorObjectH hBase) |
101 | 0 | { |
102 | 0 | return GNMNetwork::ToHandle( |
103 | 0 | dynamic_cast<GNMNetwork *>(GDALMajorObject::FromHandle(hBase))); |
104 | 0 | } |
105 | | |
106 | | GNMGenericNetworkH CPL_STDCALL GNMCastToGenericNetwork(GDALMajorObjectH hBase) |
107 | 0 | { |
108 | 0 | return GNMGenericNetwork::ToHandle( |
109 | 0 | dynamic_cast<GNMGenericNetwork *>(GDALMajorObject::FromHandle(hBase))); |
110 | 0 | } |