SpatiaLite  3.0.0-stable
src/headers/spatialite/gg_dynamic.h
Go to the documentation of this file.
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 */
 All Data Structures Files Functions Variables Typedefs Defines