SpatiaLite
3.0.0-stable
|
00001 /* 00002 gg_dynamic.h -- Gaia common support for geometries: DynamicLine functions 00003 00004 version 3.0, 2011 July 20 00005 00006 Author: Sandro Furieri a.furieri@lqt.it 00007 00008 ------------------------------------------------------------------------------ 00009 00010 Version: MPL 1.1/GPL 2.0/LGPL 2.1 00011 00012 The contents of this file are subject to the Mozilla Public License Version 00013 1.1 (the "License"); you may not use this file except in compliance with 00014 the License. You may obtain a copy of the License at 00015 http://www.mozilla.org/MPL/ 00016 00017 Software distributed under the License is distributed on an "AS IS" basis, 00018 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 00019 for the specific language governing rights and limitations under the 00020 License. 00021 00022 The Original Code is the SpatiaLite library 00023 00024 The Initial Developer of the Original Code is Alessandro Furieri 00025 00026 Portions created by the Initial Developer are Copyright (C) 2008 00027 the Initial Developer. All Rights Reserved. 00028 00029 Contributor(s): 00030 00031 00032 Alternatively, the contents of this file may be used under the terms of 00033 either the GNU General Public License Version 2 or later (the "GPL"), or 00034 the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), 00035 in which case the provisions of the GPL or the LGPL are applicable instead 00036 of those above. If you wish to allow use of your version of this file only 00037 under the terms of either the GPL or the LGPL, and not to allow others to 00038 use your version of this file under the terms of the MPL, indicate your 00039 decision by deleting the provisions above and replace them with the notice 00040 and other provisions required by the GPL or the LGPL. If you do not delete 00041 the provisions above, a recipient may use your version of this file under 00042 the terms of any one of the MPL, the GPL or the LGPL. 00043 00044 */ 00045 00046 00053 #ifndef _GG_DYNAMIC 00054 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00055 #define _GG_DYNAMIC 00056 #endif 00057 00058 #ifdef __cplusplus 00059 extern "C" 00060 { 00061 #endif 00062 00063 /* function prototypes */ 00064 00075 GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine (void); 00076 00084 GAIAGEO_DECLARE void gaiaFreeDynamicLine (gaiaDynamicLinePtr p); 00085 00096 GAIAGEO_DECLARE gaiaPointPtr 00097 gaiaAppendPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y); 00098 00110 GAIAGEO_DECLARE gaiaPointPtr 00111 gaiaAppendPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y, 00112 double z); 00113 00125 GAIAGEO_DECLARE gaiaPointPtr 00126 gaiaAppendPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y, 00127 double m); 00128 00141 GAIAGEO_DECLARE gaiaPointPtr 00142 gaiaAppendPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, 00143 double y, double z, double m); 00144 00155 GAIAGEO_DECLARE gaiaPointPtr 00156 gaiaPrependPointToDynamicLine (gaiaDynamicLinePtr p, double x, 00157 double y); 00158 00170 GAIAGEO_DECLARE gaiaPointPtr 00171 gaiaPrependPointZToDynamicLine (gaiaDynamicLinePtr p, double x, 00172 double y, double z); 00173 00185 GAIAGEO_DECLARE gaiaPointPtr 00186 gaiaPrependPointMToDynamicLine (gaiaDynamicLinePtr p, double x, 00187 double y, double m); 00188 00201 GAIAGEO_DECLARE gaiaPointPtr 00202 gaiaPrependPointZMToDynamicLine (gaiaDynamicLinePtr p, double x, 00203 double y, double z, double m); 00204 00218 GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertAfter (gaiaDynamicLinePtr 00219 p, gaiaPointPtr pt, 00220 double x, 00221 double y); 00222 00236 GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertBefore (gaiaDynamicLinePtr 00237 p, 00238 gaiaPointPtr pt, 00239 double x, 00240 double y); 00241 00252 GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p, 00253 gaiaPointPtr pt); 00254 00265 GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCloneDynamicLine (gaiaDynamicLinePtr 00266 org); 00267 00281 GAIAGEO_DECLARE gaiaDynamicLinePtr 00282 gaiaReverseDynamicLine (gaiaDynamicLinePtr org); 00283 00301 GAIAGEO_DECLARE gaiaDynamicLinePtr 00302 gaiaDynamicLineSplitBefore (gaiaDynamicLinePtr org, gaiaPointPtr point); 00303 00321 GAIAGEO_DECLARE gaiaDynamicLinePtr 00322 gaiaDynamicLineSplitAfter (gaiaDynamicLinePtr org, gaiaPointPtr point); 00323 00341 GAIAGEO_DECLARE gaiaDynamicLinePtr 00342 gaiaDynamicLineJoinAfter (gaiaDynamicLinePtr org, gaiaPointPtr point, 00343 gaiaDynamicLinePtr toJoin); 00344 00362 GAIAGEO_DECLARE gaiaDynamicLinePtr 00363 gaiaDynamicLineJoinBefore (gaiaDynamicLinePtr org, gaiaPointPtr point, 00364 gaiaDynamicLinePtr toJoin); 00365 00380 GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByCoords (gaiaDynamicLinePtr 00381 p, double x, 00382 double y); 00383 00394 GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByPos (gaiaDynamicLinePtr p, 00395 int pos); 00396 00413 GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords, 00414 int points); 00415 00416 #ifdef __cplusplus 00417 } 00418 #endif 00419 00420 #endif /* _GG_DYNAMIC */