a3410349dc
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
192 lines
5.8 KiB
MySQL
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;
|