SpatiaLite  4.2.0
 All Data Structures Files Functions Variables Typedefs Macros Pages
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 4.2, 2014 July 25
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-2013
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
111  gaiaAppendPointZToDynamicLine (gaiaDynamicLinePtr p, double x, double y,
112  double z);
113 
125  GAIAGEO_DECLARE gaiaPointPtr
126  gaiaAppendPointMToDynamicLine (gaiaDynamicLinePtr p, double x, double y,
127  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 
219  p, gaiaPointPtr pt,
220  double x,
221  double y);
222 
237  p,
238  gaiaPointPtr pt,
239  double x,
240  double y);
241 
252  GAIAGEO_DECLARE void gaiaDynamicLineDeletePoint (gaiaDynamicLinePtr p,
253  gaiaPointPtr pt);
254 
266  org);
267 
281  GAIAGEO_DECLARE gaiaDynamicLinePtr
283 
301  GAIAGEO_DECLARE gaiaDynamicLinePtr
303 
321  GAIAGEO_DECLARE gaiaDynamicLinePtr
323 
341  GAIAGEO_DECLARE gaiaDynamicLinePtr
343  gaiaDynamicLinePtr toJoin);
344 
362  GAIAGEO_DECLARE gaiaDynamicLinePtr
364  gaiaDynamicLinePtr toJoin);
365 
381  p, double x,
382  double y);
383 
395  int pos);
396 
413  GAIAGEO_DECLARE gaiaDynamicLinePtr gaiaCreateDynamicLine (double *coords,
414  int points);
415 
416 #ifdef __cplusplus
417 }
418 #endif
419 
420 #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:68
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:96
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...