postgis/sfcgal/sfcgal.sql.in
Loïc Bartoletti a3410349dc Closes https://git.osgeo.org/gitea/postgis/postgis/pulls/98
Closes #5143
Squashed commit of the following:

commit 6dad8a00b11e5961c08ebc676f10bfbf25c8eff1
Author: Regina Obe <lr@pcorp.us>
Date:   Tue May 3 18:35:28 2022 -0400

    Change tests to check for sfcgal version at compile time
    Fix docs, function signature and xml validaty

commit 4ba5288a7dece6cb14a204c1206345c7cc9f491a
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Tue May 3 06:47:07 2022 +0200

    fix tests

commit 88b449750e6c5152741c16659771136747253ff8
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Tue May 3 06:32:26 2022 +0200

    fix if postgis_sfcgal_version and fix build

commit 6865e31dd9f078dd0e05a72efc3282c613b97fc9
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Tue May 3 06:18:22 2022 +0200

    seperate alphashape test

commit cefccb67156b4fc7d797a6ff199c76b2e8a74754
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Tue May 3 05:58:57 2022 +0200

    fix the ifdef part and add a message error

commit eb3801e92aa48f42edaa828f3f0fced44b118f32
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Tue May 3 05:58:29 2022 +0200

    add informaiton aoubt SFCGAL > 1.4.1

commit e96550d4d89f7b8ddb4e09c7bd7845a37f3f7bb5
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Mon May 2 10:40:09 2022 +0200

    fix doc

commit 0b5e6a35b317b285b133ff8247c761da0e40d83e
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Mon May 2 09:44:49 2022 +0200

    Use singular: AlphaShapes => AlphaShape

commit 8e92c13cc0bb72760d467b35b4f4a409732bfb17
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Fri Mar 4 11:55:21 2022 +0100

    Add SFCGAL optimal alpha shapes doc

commit 734c430d337354143b1fe466f6e8bf1597c6e674
Author: Loïc Bartoletti <loic.bartoletti@oslandia.com>
Date:   Fri Mar 4 11:33:16 2022 +0100

    Add SFCGAL alpha shapes
2022-05-03 19:01:36 -04:00

192 lines
5.8 KiB
MySQL

---------------------------------------------------------------------------
--
-- PostGIS - SFCGAL functions
-- Copyright 2012-2013 Oslandia <infos@oslandia.com>
--
-- This is free software; you can redistribute and/or modify it under
-- the terms of the GNU General Public Licence. See the COPYING file.
--
---------------------------------------------------------------------------
--
-- New SFCGAL functions (meaning prototype not already provided by GEOS)
--
#include "../postgis/sqldefines.h"
-- INSTALL VERSION: POSTGIS_LIB_VERSION
BEGIN;
CREATE OR REPLACE FUNCTION postgis_sfcgal_scripts_installed() RETURNS text
AS _POSTGIS_SQL_SELECT_POSTGIS_SCRIPTS_VERSION
LANGUAGE 'sql' IMMUTABLE;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION postgis_sfcgal_version() RETURNS text
AS 'MODULE_PATHNAME'
LANGUAGE 'c' IMMUTABLE;
-- Availability: 3.3.0
#if POSTGIS_SFCGAL_VERSION >= 10400
CREATE OR REPLACE FUNCTION postgis_sfcgal_full_version() RETURNS text
AS 'MODULE_PATHNAME'
LANGUAGE 'c' IMMUTABLE;
#else
CREATE OR REPLACE FUNCTION postgis_sfcgal_full_version() RETURNS text AS
'SELECT @extschema@.postgis_sfcgal_version();'
LANGUAGE 'sql' IMMUTABLE;
#endif
-- Availability: 3.0.0
CREATE OR REPLACE FUNCTION postgis_sfcgal_noop(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME', 'postgis_sfcgal_noop'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 1;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_3DIntersection(geom1 geometry, geom2 geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_intersection3D'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2
CREATE OR REPLACE FUNCTION ST_3DDifference(geom1 geometry, geom2 geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_difference3D'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2
CREATE OR REPLACE FUNCTION ST_3DUnion(geom1 geometry, geom2 geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_union3D'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 3.3.0
CREATE AGGREGATE ST_3DUnion(geometry) (
sfunc = ST_3DUnion,
stype = geometry,
parallel = safe
);
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_Tesselate(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_tesselate'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_3DArea(geometry)
RETURNS FLOAT8
AS 'MODULE_PATHNAME','sfcgal_area3D'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_Extrude(geometry, float8, float8, float8)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_extrude'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_ForceLHR(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_force_lhr'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_Orientation(geometry)
RETURNS INT4
AS 'MODULE_PATHNAME','sfcgal_orientation'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_MinkowskiSum(geometry, geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_minkowski_sum'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.1.0
CREATE OR REPLACE FUNCTION ST_StraightSkeleton(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_straight_skeleton'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2.0
CREATE OR REPLACE FUNCTION ST_ApproximateMedialAxis(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_approximate_medial_axis'
LANGUAGE 'c'
IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2.0
CREATE OR REPLACE FUNCTION ST_IsPlanar(geometry)
RETURNS boolean
AS 'MODULE_PATHNAME','sfcgal_is_planar'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2
CREATE OR REPLACE FUNCTION ST_Volume(geometry)
RETURNS FLOAT8
AS 'MODULE_PATHNAME','sfcgal_volume'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2
CREATE OR REPLACE FUNCTION ST_MakeSolid(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME','sfcgal_make_solid'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 2.2
CREATE OR REPLACE FUNCTION ST_IsSolid(geometry)
RETURNS boolean
AS 'MODULE_PATHNAME','sfcgal_is_solid'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
-- Availability: 3.0.0
CREATE OR REPLACE FUNCTION ST_ConstrainedDelaunayTriangles(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME', 'ST_ConstrainedDelaunayTriangles'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
COMMIT;
-- Availability: 3.3.0
CREATE OR REPLACE FUNCTION ST_3DConvexHull(geometry)
RETURNS geometry
AS 'MODULE_PATHNAME', 'sfcgal_convexhull3D'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
COMMIT;
-- Availability: 3.3.0
CREATE OR REPLACE FUNCTION ST_AlphaShape(g1 geometry, alpha float8 DEFAULT 1.0, allow_holes boolean DEFAULT false)
RETURNS geometry
AS 'MODULE_PATHNAME', 'sfcgal_alphashape'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
COMMIT;
-- Availability: 3.3.0
CREATE OR REPLACE FUNCTION ST_OptimalAlphaShape(g1 geometry, allow_holes boolean DEFAULT false, nb_components int DEFAULT 1)
RETURNS geometry
AS 'MODULE_PATHNAME', 'sfcgal_optimalalphashape'
LANGUAGE 'c' IMMUTABLE STRICT PARALLEL SAFE
COST 100;
COMMIT;