1 // Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. 2 // 3 // This program is free software; you can redistribute it and/or modify 4 // it under the terms of the GNU General Public License, version 2.0, 5 // as published by the Free Software Foundation. 6 // 7 // This program is also distributed with certain software (including 8 // but not limited to OpenSSL) that is licensed under separate terms, 9 // as designated in a particular file or component or in included license 10 // documentation. The authors of MySQL hereby grant you an additional 11 // permission to link the program and your derivative works with the 12 // separately licensed software that they have included with MySQL. 13 // 14 // This program is distributed in the hope that it will be useful, 15 // but WITHOUT ANY WARRANTY; without even the implied warranty of 16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 // GNU General Public License, version 2.0, for more details. 18 // 19 // You should have received a copy of the GNU General Public License 20 // along with this program; if not, write to the Free Software 21 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 22 23 /// @file 24 /// 25 /// Interface for determining if geometry is simple. 26 27 #ifndef SQL_GIS_IS_SIMPLE_H_INCLUDED 28 #define SQL_GIS_IS_SIMPLE_H_INCLUDED 29 30 #include "sql/dd/types/spatial_reference_system.h" // dd::Spatial_reference_system 31 #include "sql/gis/geometries.h" // gis::Geometry 32 33 namespace gis { 34 35 /// Test whether geometry is geometrically simple. 36 /// 37 /// The coordinate system of the geometry must match the coordinate system of 38 /// the SRID. It is the caller's responsibility to guarantee this. 39 /// 40 /// @param[in] srs The spatial reference system. 41 /// @param[in] g Geometry for testing. 42 /// @param[in] func_name Function name used in error reporting. 43 /// @param[out] result Whether `g` is simple. Invalid if `result_null`. 44 /// @param[out] result_null Whether return value is `NULL` instead of `result`. 45 /// 46 /// @retval false Success. 47 /// @retval true An error has occurred. The error has been reported with 48 /// my_error(). 49 bool is_simple(const dd::Spatial_reference_system *srs, const Geometry *g, 50 const char *func_name, bool *result, bool *result_null) noexcept; 51 52 } // namespace gis 53 54 #endif // include guard 55