GDAL
ogrpgeogeometry.h
00001 /******************************************************************************
00002  * $Id: ogrpgeogeometry.h 36883 2016-12-15 13:31:12Z rouault $
00003  *
00004  * Project:  OpenGIS Simple Features Reference Implementation
00005  * Purpose:  Implements decoder of shapebin geometry for PGeo
00006  * Author:   Frank Warmerdam, warmerdam@pobox.com
00007  *
00008  ******************************************************************************
00009  * Copyright (c) 2005, Frank Warmerdam <warmerdam@pobox.com>
00010  * Copyright (c) 2011-2014, Even Rouault <even dot rouault at mines-paris dot org>
00011  *
00012  * Permission is hereby granted, free of charge, to any person obtaining a
00013  * copy of this software and associated documentation files (the "Software"),
00014  * to deal in the Software without restriction, including without limitation
00015  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00016  * and/or sell copies of the Software, and to permit persons to whom the
00017  * Software is furnished to do so, subject to the following conditions:
00018  *
00019  * The above copyright notice and this permission notice shall be included
00020  * in all copies or substantial portions of the Software.
00021  *
00022  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
00023  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00024  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00025  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00026  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00027  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00028  * DEALINGS IN THE SOFTWARE.
00029  ****************************************************************************/
00030 
00031 #ifndef OGR_PGEOGEOMETRY_H_INCLUDED
00032 #define OGR_PGEOGEOMETRY_H_INCLUDED
00033 
00034 #include "ogr_geometry.h"
00035 
00036 #define SHPT_NULL          0
00037 
00038 #ifndef SHPT_POINT
00039 #define SHPT_POINT         1
00040 #define SHPT_POINTM       21
00041 #define SHPT_POINTZM      11
00042 #define SHPT_POINTZ        9
00043 
00044 #define SHPT_MULTIPOINT    8
00045 #define SHPT_MULTIPOINTM  28
00046 #define SHPT_MULTIPOINTZM 18
00047 #define SHPT_MULTIPOINTZ  20
00048 
00049 #define SHPT_ARC           3
00050 #define SHPT_ARCM         23
00051 #define SHPT_ARCZM        13
00052 #define SHPT_ARCZ         10
00053 
00054 #define SHPT_POLYGON       5
00055 #define SHPT_POLYGONM     25
00056 #define SHPT_POLYGONZM    15
00057 #define SHPT_POLYGONZ     19
00058 
00059 #define SHPT_MULTIPATCHM  31
00060 #define SHPT_MULTIPATCH   32
00061 #endif // SHPT_POINT
00062 
00063 #define SHPT_GENERALPOLYLINE    50
00064 #define SHPT_GENERALPOLYGON     51
00065 #define SHPT_GENERALPOINT       52
00066 #define SHPT_GENERALMULTIPOINT  53
00067 #define SHPT_GENERALMULTIPATCH  54
00068 
00069 /* The following are layers geometry type */
00070 /* They are different from the above shape types */
00071 #define ESRI_LAYERGEOMTYPE_NULL          0
00072 #define ESRI_LAYERGEOMTYPE_POINT         1
00073 #define ESRI_LAYERGEOMTYPE_MULTIPOINT    2
00074 #define ESRI_LAYERGEOMTYPE_POLYLINE      3
00075 #define ESRI_LAYERGEOMTYPE_POLYGON       4
00076 #define ESRI_LAYERGEOMTYPE_MULTIPATCH    9
00077 
00078 OGRGeometry* OGRCreateFromMultiPatch( int nParts,
00079                                       const GInt32* panPartStart,
00080                                       const GInt32* panPartType,
00081                                       int nPoints,
00082                                       const double* padfX,
00083                                       const double* padfY,
00084                                       const double* padfZ );
00085 
00086 OGRErr CPL_DLL OGRCreateFromShapeBin( GByte *pabyShape,
00087                               OGRGeometry **ppoGeom,
00088                               int nBytes );
00089 
00090 OGRErr CPL_DLL OGRWriteToShapeBin( OGRGeometry *poGeom,
00091                            GByte **ppabyShape,
00092                            int *pnBytes );
00093 
00094 OGRErr OGRCreateMultiPatch( OGRGeometry *poGeom,
00095                             int bAllowSHPTTriangle,
00096                             int& nParts,
00097                             int*& panPartStart,
00098                             int*& panPartType,
00099                             int& nPoints,
00100                             OGRRawPoint*& poPoints,
00101                             double*& padfZ );
00102 
00103 OGRErr CPL_DLL OGRWriteMultiPatchToShapeBin( OGRGeometry *poGeom,
00104                            GByte **ppabyShape,
00105                            int *pnBytes );
00106 
00107 #endif

Generated for GDAL by doxygen 1.7.6.1.