SpatiaLite  5.0.0
gg_dynamic.h
Go to the documentation of this file.
1 /*
2  gg_dynamic.h -- Gaia common support for geometries: DynamicLine functions
3 
4  version 5.0, 2020 August 1
5 
6  Author: Sandro Furieri a.furieri@lqt.it
7 
8  ------------------------------------------------------------------------------
9 
10  Version: MPL 1.1/GPL 2.0/LGPL 2.1
11 
12  The contents of this file are subject to the Mozilla Public License Version
13  1.1 (the "License"); you may not use this file except in compliance with
14  the License. You may obtain a copy of the License at
15  http://www.mozilla.org/MPL/
16 
17 Software distributed under the License is distributed on an "AS IS" basis,
18 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
19 for the specific language governing rights and limitations under the
20 License.
21 
22 The Original Code is the SpatiaLite library
23 
24 The Initial Developer of the Original Code is Alessandro Furieri
25 
26 Portions created by the Initial Developer are Copyright (C) 2008-2020
27 the Initial Developer. All Rights Reserved.
28 
29 Contributor(s):
30 
31 
32 Alternatively, the contents of this file may be used under the terms of
33 either the GNU General Public License Version 2 or later (the "GPL"), or
34 the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
35 in which case the provisions of the GPL or the LGPL are applicable instead
36 of those above. If you wish to allow use of your version of this file only
37 under the terms of either the GPL or the LGPL, and not to allow others to
38 use your version of this file under the terms of the MPL, indicate your
39 decision by deleting the provisions above and replace them with the notice
40 and other provisions required by the GPL or the LGPL. If you do not delete
41 the provisions above, a recipient may use your version of this file under
42 the terms of any one of the MPL, the GPL or the LGPL.
43 
44 */
45 
46 
53 #ifndef _GG_DYNAMIC
54 #ifndef DOXYGEN_SHOULD_SKIP_THIS
55 #define _GG_DYNAMIC
56 #endif
57 
58 #ifdef __cplusplus
59 extern "C"
60 {
61 #endif
62 
63 /* function prototypes */
64 
75  GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine (void);
76 
84  GAIAGEO_DECLARE void gaiaFreeDynamicLine (gaiaDynamicLinePtr p);
85 
96  GAIAGEO_DECLARE gaiaPointPtr
97  gaiaAppendPointToDynamicLine (gaiaDynamicLinePtr p, double x, double y);
98 
110  GAIAGEO_DECLARE gaiaPointPtr
112  double y, double z);
113 
125  GAIAGEO_DECLARE gaiaPointPtr
127  double y, double m);
128 
141  GAIAGEO_DECLARE gaiaPointPtr
143  double y, double z, double m);
144 
155  GAIAGEO_DECLARE gaiaPointPtr
157  double y);
158 
170  GAIAGEO_DECLARE gaiaPointPtr
172  double y, double z);
173 
185  GAIAGEO_DECLARE gaiaPointPtr
187  double y, double m);
188 
201  GAIAGEO_DECLARE gaiaPointPtr
203  double y, double z, double m);
204 
218  GAIAGEO_DECLARE gaiaPointPtr
220  double x, double y);
221 
235  GAIAGEO_DECLARE gaiaPointPtr
237  double x, double y);
238 
249  GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p,
250  gaiaPointPtr pt);
251 
262  GAIAGEO_DECLARE gaiaDynamicLinePtr
264 
278  GAIAGEO_DECLARE gaiaDynamicLinePtr
280 
298  GAIAGEO_DECLARE gaiaDynamicLinePtr
300 
318  GAIAGEO_DECLARE gaiaDynamicLinePtr
320 
338  GAIAGEO_DECLARE gaiaDynamicLinePtr
340  gaiaDynamicLinePtr toJoin);
341 
359  GAIAGEO_DECLARE gaiaDynamicLinePtr
361  gaiaDynamicLinePtr toJoin);
362 
377  GAIAGEO_DECLARE gaiaPointPtr
378  gaiaDynamicLineFindByCoords (gaiaDynamicLinePtr p, double x, double y);
379 
391  p, int pos);
392 
409  GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords,
410  int points);
411 
412 #ifdef __cplusplus
413 }
414 #endif
415 
416 #endif /* _GG_DYNAMIC */
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitBefore(gaiaDynamicLinePtr org, gaiaPointPtr point)
Cuts a dynamically growing line/ring in two halves, using a given cut point.
GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointToDynamicLine(gaiaDynamicLinePtr p, double x, double y)
Appends a new 2D Point [XY] at the end of a dynamically growing line/ring object.
GAIAGEO_DECLARE void gaiaFreeDynamicLine(gaiaDynamicLinePtr p)
Destroys a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByCoords(gaiaDynamicLinePtr p, double x, double y)
Finds a Point within a dymically growing line/ring object [by coords].
GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointToDynamicLine(gaiaDynamicLinePtr p, double x, double y)
Appends a new 2D Point [XY] before the first one of a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineFindByPos(gaiaDynamicLinePtr p, int pos)
Finds a Point within a dymically growing line/ring object [by position].
Container for OGC POINT Geometry.
Definition: gg_structs.h:78
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCloneDynamicLine(gaiaDynamicLinePtr org)
Duplicates a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointMToDynamicLine(gaiaDynamicLinePtr p, double x, double y, double m)
Appends a new 2D Point [XYM] at the end of a dynamically growing line/ring object.
GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint(gaiaDynamicLinePtr p, gaiaPointPtr pt)
Removes a given Point from a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinAfter(gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin)
Merges two dynamically growing line/ring object into a single one.
GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZToDynamicLine(gaiaDynamicLinePtr p, double x, double y, double z)
Appends a new 3D Point [XYZ] at the end of a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertBefore(gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y)
Appends a new 2D Point [XY] immediately before the given Point into a dynamically growing line/ring o...
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine(double *coords, int points)
Creates a new dynamicly growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZMToDynamicLine(gaiaDynamicLinePtr p, double x, double y, double z, double m)
Appends a new 3D Point [XYZM] before the first one of a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointZToDynamicLine(gaiaDynamicLinePtr p, double x, double y, double z)
Appends a new 3D Point [XYZ] before the first one of a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaAllocDynamicLine(void)
Creates a new dynamicly growing line/ring object.
Container for dynamically growing line/ring.
Definition: gg_structs.h:106
GAIAGEO_DECLARE gaiaPointPtr gaiaAppendPointZMToDynamicLine(gaiaDynamicLinePtr p, double x, double y, double z, double m)
Appends a new 3D Point [XYZM] at the end of a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineJoinBefore(gaiaDynamicLinePtr org, gaiaPointPtr point, gaiaDynamicLinePtr toJoin)
Merges two dynamically growing line/ring object into a single one.
GAIAGEO_DECLARE gaiaPointPtr gaiaDynamicLineInsertAfter(gaiaDynamicLinePtr p, gaiaPointPtr pt, double x, double y)
Appends a new 2D Point [XY] immediately after the given Point into a dynamically growing line/ring ob...
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaDynamicLineSplitAfter(gaiaDynamicLinePtr org, gaiaPointPtr point)
Cuts a dynamically growing line/ring in two halves, using a given cut point.
GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaReverseDynamicLine(gaiaDynamicLinePtr org)
Duplicates and reverts a dynamically growing line/ring object.
GAIAGEO_DECLARE gaiaPointPtr gaiaPrependPointMToDynamicLine(gaiaDynamicLinePtr p, double x, double y, double m)
Appends a new 2D Point [XYM] before the first one of a dynamically growing line/ring object.