54 #ifndef DOXYGEN_SHOULD_SKIP_THIS 
   75     GAIAGEO_DECLARE 
void gaiaFree (
void *ptr);
 
 1013                                           double *x, 
double *y, 
double *z,
 
 1041                                           double y, 
double z, 
double m);
 
 1068                                           double *y, 
double *z, 
double *m);
 
 1095                                           double y, 
double z, 
double m);
 
 1548                                                      double x, 
double y);
 
 1566                                             int dims, 
double *coords, 
int vert);
 
 1585     GAIAGEO_DECLARE 
int gaiaIntersect (
double *x0, 
double *y0, 
double x1,
 
 1586                                        double y1, 
double x2, 
double y2,
 
 1587                                        double x3, 
double y3, 
double x4,
 
 1615                                             double shift_x, 
double shift_y,
 
 1747                                            double *b, 
double *rf);
 
 1768                                                     double lat1, 
double lon1,
 
 1769                                                     double lat2, 
double lon2);
 
 1791                                                  double lat1, 
double lon1,
 
 1792                                                  double lat2, 
double lon2);
 
 1815                                                        int dims, 
double *coords,
 
 1840                                                     double rf, 
int dims,
 
 1841                                                     double *coords, 
int vert);
 
 1858                                            int unit_to, 
double *cvt);
 
 1875                                                     double radius, 
double step);
 
 1910                                                  double center_y, 
double radius,
 
 1911                                                  double start, 
double stop,
 
GAIAGEO_DECLARE double gaiaMeasureLength(int dims, double *coords, int vert)
Measures the geometric length for a Linestring or Ring. 
GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl(gaiaGeomCollPtr geom)
Checks for not-closed Rings in a Geometry object. 
GAIAGEO_DECLARE void gaiaFreeGeomColl(gaiaGeomCollPtr geom)
Destroys a Geometry object. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYM(int vert, int holes)
Allocates a 2D POLYGON [XYM]. 
GAIAGEO_DECLARE void gaiaCopyRingCoords(gaiaRingPtr dst, gaiaRingPtr src)
Copies coordinates between two RING objects. 
GAIAGEO_DECLARE double gaiaGreatCircleTotalLength(double a, double b, int dims, double *coords, int vert)
Calculates the Great Circle Total Length for a Linestring / Ring. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZM(void)
Allocates a 3D Geometry [XYZM]. 
GAIAGEO_DECLARE int gaiaIsToxic_r(const void *p_cache, gaiaGeomCollPtr geom)
Checks for toxic Geometry object. 
GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZM(int vert)
Allocates a 3D RING [XYZM]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractLinestringsFromGeomColl(gaiaGeomCollPtr geom)
Extracts any Linestring from a Geometry object. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestringSpecial(gaiaLinestringPtr line, int mode)
Duplicates a Linestring object (special) 
GAIAGEO_DECLARE int gaiaRingSetPoint(gaiaRingPtr rng, int v, double x, double y, double z, double m)
Sets coodinates for a Ring's Point. 
GAIAGEO_DECLARE void gaiaFreePolygon(gaiaPolygonPtr polyg)
Destroys a POLYGON object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipticArc(double center_x, double center_y, double x_axis, double y_axis, double start, double stop, double step)
Creates an Elliptic Arc (Linestring) Geometry. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPointsFromGeomColl(gaiaGeomCollPtr geom)
Extracts any Point from a Geometry object. 
GAIAGEO_DECLARE int gaiaIsNotClosedGeomColl_r(const void *p_data, gaiaGeomCollPtr geom)
Checks for not-closed Rings in a Geometry object. 
GAIAGEO_DECLARE int gaiaIsNotClosedRing_r(const void *p_data, gaiaRingPtr ring)
Checks for not-closed Rings. 
GAIAGEO_DECLARE double gaiaGeodesicDistance(double a, double b, double rf, double lat1, double lon1, double lat2, double lon2)
Calculates the Geodesic Distance between between two Points. 
Container for OGC POINT Geometry. 
Definition: gg_structs.h:68
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries_r(const void *p_cache, gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Merges two Geometry objects into a single one. 
Container for OGC POLYGON Geometry. 
Definition: gg_structs.h:182
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolvePoints(gaiaGeomCollPtr geom)
Attempts to resolve a collection of Points from a Geometry object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPoints(gaiaGeomCollPtr geom)
Duplicates a Geometry object [Points only]. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestring(int vert)
Allocates a 2D LINESTRING [XY]. 
GAIAGEO_DECLARE int gaiaIsNotClosedRing(gaiaRingPtr ring)
Checks for not-closed Rings. 
GAIAGEO_DECLARE void gaiaFree(void *ptr)
Safely frees any dynamic memory block allocated by the library itself. 
GAIAGEO_DECLARE void gaiaFreeRing(gaiaRingPtr ptr)
Destroys a RING object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZM(gaiaGeomCollPtr geom)
Duplicates a Geometry object [casting dimensions to 3D XYZM]. 
GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZM(double x, double y, double z, double m)
Allocates a 3D POINT [XYZM]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeArc(double center_x, double center_y, double radius, double start, double stop, double step)
Creates a Circular Arc (Linestring) Geometry. 
GAIAGEO_DECLARE int gaiaLineSetPoint(gaiaLinestringPtr ln, int v, double x, double y, double z, double m)
Sets coordinates for a Linestring's Point. 
GAIAGEO_DECLARE int gaiaIsPointOnRingSurface(gaiaRingPtr ring, double pt_x, double pt_y)
Check if a Point lays on a Ring surface. 
GAIAGEO_DECLARE int gaiaPolygonEquals(gaiaPolygonPtr polyg1, gaiaPolygonPtr polyg2)
Checks if two Polygons objects are equivalent. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakePolygon(gaiaGeomCollPtr exterior, gaiaGeomCollPtr interiors)
Creates a Polygon from closed Linestrings. 
GAIAGEO_DECLARE void gaiaNormalizeLonLat(gaiaGeomCollPtr geom)
Shifts any coordinate to within the "normal range" of longitude and latitude values (-180...
GAIAGEO_DECLARE void gaiaAddPointToGeomColl(gaiaGeomCollPtr p, double x, double y)
Creates a new 2D Point [XY] object into a Geometry object. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYM(int vert)
Allocates a 2D LINESTRING [XYM]. 
GAIAGEO_DECLARE gaiaRingPtr gaiaAddInteriorRing(gaiaPolygonPtr p, int pos, int vert)
Creates a new Interior Ring object into a Polygon object. 
GAIAGEO_DECLARE int gaiaGeometryAliasType(gaiaGeomCollPtr geom)
Determines the corresponding Type for a Geometry object. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaInsertPolygonInGeomColl(gaiaGeomCollPtr p, gaiaRingPtr ring)
Creates a new Polygon object into a Geometry object starting from an already existing Ring object...
GAIAGEO_DECLARE void gaiaCopyLinestringCoords(gaiaLinestringPtr dst, gaiaLinestringPtr src)
Copies coordinates between two LINESTRING objects. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYM(void)
Allocates a 2D Geometry [XYM]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeCircle(double center_x, double center_y, double radius, double step)
Creates a Circle (Linestring) Geometry. 
GAIAGEO_DECLARE int gaiaIsToxic(gaiaGeomCollPtr geom)
Checks for toxic Geometry object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYZ(gaiaGeomCollPtr geom)
Duplicates a Geometry object [casting dimensions to 3D XYZ]. 
Container for OGC RING Geometry. 
Definition: gg_structs.h:148
GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZ(gaiaGeomCollPtr p, double x, double y, double z)
Creates a new 3D Point [XYZ] object into a Geometry object. 
GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRingSpecial(gaiaRingPtr ring, int mode)
Duplicates a Ring object (special) 
GAIAGEO_DECLARE double gaiaGreatCircleDistance(double a, double b, double lat1, double lon1, double lat2, double lon2)
Calculates the Great Circle Distance between between two Points. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZM(int vert)
Allocates a 3D LINESTRING [XYZM]. 
GAIAGEO_DECLARE int gaiaDimension(gaiaGeomCollPtr geom)
Determines OGC dimensions for a Geometry object. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygonSpecial(gaiaPolygonPtr polyg, int mode)
Duplicates a Polygon object (special) 
GAIAGEO_DECLARE int gaiaIsEmpty(gaiaGeomCollPtr geom)
Checks for empty Geometry object. 
GAIAGEO_DECLARE void gaiaRingCentroid(gaiaRingPtr ring, double *rx, double *ry)
Determines the Centroid for a Ring object. 
GAIAGEO_DECLARE void gaiaInsertLinestringInGeomColl(gaiaGeomCollPtr p, gaiaLinestringPtr line)
Inserts an already existing Linestring object into a Geometry object. 
GAIAGEO_DECLARE int gaiaLinestringEquals(gaiaLinestringPtr line1, gaiaLinestringPtr line2)
Checks if two Linestring objects are equivalent. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollLinestrings(gaiaGeomCollPtr geom)
Duplicates a Geometry object [Linestrings only]. 
Container for OGC LINESTRING Geometry. 
Definition: gg_structs.h:118
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLocateBetweenMeasures(gaiaGeomCollPtr geom, double m_start, double m_end)
Return a GeometryCollection containing elements matching the specified range of measures. 
GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYM(gaiaGeomCollPtr p, double x, double y, double m)
Creates a new 2D Point [XYM] object into a Geometry object. 
GAIAGEO_DECLARE void gaiaCopyLinestringCoordsReverse(gaiaLinestringPtr dst, gaiaLinestringPtr src)
Copies coordinates between two LINESTRING objects in reverse order. 
GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRing(int vert)
Allocates a 2D RING [XY]. 
GAIAGEO_DECLARE void gaiaCopyRingCoordsReverse(gaiaRingPtr dst, gaiaRingPtr src)
Copies coordinates between two RING objects in reverse order. 
GAIAGEO_DECLARE void gaiaFreePoint(gaiaPointPtr ptr)
Destroys a POINT object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaSanitize(gaiaGeomCollPtr org)
Attempts to sanitize a possibly malformed Geometry object. 
GAIAGEO_DECLARE int gaiaIntersect(double *x0, double *y0, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
Determines the intesection Point between two Segments. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXYM(gaiaGeomCollPtr geom)
Duplicates a Geometry object [casting dimensions to 2D XYM]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomColl(gaiaGeomCollPtr geom)
Duplicates a Geometry object. 
GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYZ(int vert)
Allocates a 3D RING [XYZ]. 
GAIAGEO_DECLARE double gaiaMeasureArea(gaiaRingPtr ring)
Measures the geometric area for a Ring object. 
GAIAGEO_DECLARE gaiaRingPtr gaiaCloneRing(gaiaRingPtr ring)
Duplicates a Ring object. 
GAIAGEO_DECLARE int gaiaConvertLength(double value, int unit_from, int unit_to, double *cvt)
Convert a Length from a Measure Unit to another. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaCloneLinestring(gaiaLinestringPtr line)
Duplicates a Linestring object. 
GAIAGEO_DECLARE void gaiaAddRingToPolyg(gaiaPolygonPtr polyg, gaiaRingPtr ring)
Inserts an already existing Ring object into a Polygon object. 
GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYM(double x, double y, double m)
Allocates a 2D POINT [XYM]. 
GAIAGEO_DECLARE void gaiaInsertInteriorRing(gaiaPolygonPtr p, gaiaRingPtr ring)
Inserts an already existing Ring object into a Polygon object. 
GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPoint(double x, double y)
Allocates a 2D POINT [XY]. 
GAIAGEO_DECLARE int gaiaRingGetPoint(gaiaRingPtr rng, int v, double *x, double *y, double *z, double *m)
Gets coordinates from a Ring's Point. 
GAIAGEO_DECLARE double gaiaMinDistance(double x0, double y0, int dims, double *coords, int vert)
Computes the minimum distance between a Point and a Linestring or Ring. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZM(int vert, int holes)
Allocates a 3D POLYGON [XYZM]. 
GAIAGEO_DECLARE void gaiaShiftCoords(gaiaGeomCollPtr geom, double shift_x, double shift_y)
Shifts any coordinate within a Geometry object. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygonXYZ(int vert, int holes)
Allocates a 3D POLYGON [XYZ]. 
GAIAGEO_DECLARE void gaiaShiftCoords3D(gaiaGeomCollPtr geom, double shift_x, double shift_y, double shift_z)
Shifts any coordinate within a 3D Geometry object. 
GAIAGEO_DECLARE void gaiaReflectCoords(gaiaGeomCollPtr geom, int x_axis, int y_axis)
Reflects any coordinate within a Geometry object. 
GAIAGEO_DECLARE int gaiaGeometryType(gaiaGeomCollPtr geom)
Determines the corresponding Type for a Geometry object. 
GAIAGEO_DECLARE gaiaPointPtr gaiaAllocPointXYZ(double x, double y, double z)
Allocates a 3D POINT [XYZ]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaLinearize(gaiaGeomCollPtr geom, int force_multi)
Attempts to resolve a (Multi)Linestring from a Geometry object. 
GAIAGEO_DECLARE void gaiaSwapCoords(gaiaGeomCollPtr geom)
Swaps any coordinate within a Geometry object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomColl(void)
Allocates a 2D Geometry [XY]. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaCreatePolygon(gaiaRingPtr ring)
Allocates a POLYGON. 
GAIAGEO_DECLARE void gaiaClockwise(gaiaRingPtr p)
Determines the direction for a Ring object. 
GAIAGEO_DECLARE void gaiaShiftLongitude(gaiaGeomCollPtr geom)
Shifts negative longitudes. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaAllocGeomCollXYZ(void)
Allocates a 3D Geometry [XYZ]. 
GAIAGEO_DECLARE void gaiaFreeLinestring(gaiaLinestringPtr ptr)
Destroys a LINESTRING object. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaAddLinestringToGeomColl(gaiaGeomCollPtr p, int vert)
Creates a new Linestring object into a Geometry object. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaClonePolygon(gaiaPolygonPtr polyg)
Duplicates a Polygon object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollPolygons(gaiaGeomCollPtr geom)
Duplicates a Geometry object [Polygons only]. 
GAIAGEO_DECLARE gaiaLinestringPtr gaiaAllocLinestringXYZ(int vert)
Allocates a 3D LINESTRING [XYZ]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMakeEllipse(double center_x, double center_y, double x_axis, double y_axis, double step)
Creates an Ellipse (Linestring) Geometry. 
GAIAGEO_DECLARE int gaiaIsPointOnPolygonSurface(gaiaPolygonPtr polyg, double x, double y)
Checks if a Point lays on a Polygon surface. 
Container for OGC GEOMETRYCOLLECTION Geometry. 
Definition: gg_structs.h:216
GAIAGEO_DECLARE void gaiaRotateCoords(gaiaGeomCollPtr geom, double angle)
Rotates any coordinate within a Geometry object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaMergeGeometries(gaiaGeomCollPtr geom1, gaiaGeomCollPtr geom2)
Merges two Geometry objects into a single one. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaDissolveSegments(gaiaGeomCollPtr geom)
Attempts to resolve a collection of Segments from a Geometry object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCastGeomCollToXY(gaiaGeomCollPtr geom)
Duplicates a Geometry object [casting dimensions to 2D XY]. 
GAIAGEO_DECLARE int gaiaEllipseParams(const char *name, double *a, double *b, double *rf)
Retrieves Geodesic params for an Ellipsoid definition. 
GAIAGEO_DECLARE void gaiaAddPointToGeomCollXYZM(gaiaGeomCollPtr p, double x, double y, double z, double m)
Creates a new 3D Point [XYZM] object into a Geometry object. 
GAIAGEO_DECLARE int gaiaLineGetPoint(gaiaLinestringPtr ln, int v, double *x, double *y, double *z, double *m)
Gets coodinates from a Linestring's Point. 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaAllocPolygon(int vert, int holes)
Allocates a 2D POLYGON [XY]. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaExtractPolygonsFromGeomColl(gaiaGeomCollPtr geom)
Extracts any Polygon from a Geometry object. 
GAIAGEO_DECLARE double gaiaGeodesicTotalLength(double a, double b, double rf, int dims, double *coords, int vert)
Calculates the Geodesic Total Length for a Linestring / Ring. 
GAIAGEO_DECLARE void gaiaScaleCoords(gaiaGeomCollPtr geom, double scale_x, double scale_y)
Scales any coordinate within a Geometry object. 
GAIAGEO_DECLARE gaiaGeomCollPtr gaiaCloneGeomCollSpecial(gaiaGeomCollPtr geom, int mode)
Duplicates a Geometry object (special) 
GAIAGEO_DECLARE gaiaPolygonPtr gaiaAddPolygonToGeomColl(gaiaGeomCollPtr p, int vert, int interiors)
Creates a new Polygon object into a Geometry object. 
GAIAGEO_DECLARE gaiaRingPtr gaiaAllocRingXYM(int vert)
Allocates 2D RING [XYM].