/**********************************************************************
*
* GEOS - Geometry Engine Open Source
* http://geos.osgeo.org
*
* Copyright (C) 2005-2006 Refractions Research Inc.
* Copyright (C) 2001-2002 Vivid Solutions Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
**********************************************************************/
#pragma once
/** \mainpage GEOS - Geometry Engine Open Source
*
* \section intro_sec Introduction
*
* Geometry Engine Open Source is a C++ port of the Java Topology Suite
* released under the LGPL license.
* It has interfaces for C++ and C.
*
* \section getstart_sec Getting Started
*
* The recommended low-level interface to the GEOS library
* is the simplified \ref c_iface. This will ensure stability of the
* API and the ABI of the library during performance improvements
* that will likely change classes definitions.
*
* If you don't care about adapting/rebuilding your client code
* you can still use the \ref cpp_iface.
*/
/** \page c_iface C wrapper interface
*
* \section overview_c Overview
*
* This is the preferred access method for GEOS.
*
* It is designed to keep binary compatibility across releases.
*
* \section Usage
*
* In order to use the C-API of geos you must link your code against
* libgeos_c.so and include the geos_c.h header file, which also contain
* function-level documentation.
*
*/
/** \page cpp_iface C++ interface
*
* \section overview_cpp Overview
*
* Main class is geos::geom::Geometry, from which all geometry types
* derive.
*
* Construction and destruction of Geometries is done
* using geos::geom::GeometryFactory.
*
* You'll feed it geos::geom::CoordinateSequence
* for base geometries or vectors of geometries for collections.
*
* If you need to construct geometric shaped geometries, you
* can use geos::geom::GeometricShapeFactory.
*
* GEOS version info (as a string) can be obtained using
* geos::geom::geosversion(). The JTS version this release has been
* ported from is available throu geos::geom::jtsport().
*
* \section io_sect Input / Output
*
* For WKT input/output you can use geos::io::WKTReader and geos::io::WKTWriter
*
* For WKB input/output you can use geos::io::WKBReader and geos::io::WKBWriter
*
* \section exc_sect Exceptions
*
* Internal exceptions are thrown as instances geos::util::GEOSException or
* derived classes. GEOSException derives from std::exception.
*
* Note that prior to version 3.0.0, GEOSException were thrown by
* pointer, and did not derive from std::exception.
*
*/
namespace geos {
/// Contains the Geometry
interface hierarchy and supporting classes.
///
/// The Java Topology Suite (JTS) is a Java API that implements a core
/// set of spatial data operations using an explicit precision model
/// and robust geometric algorithms. JTS is int ended to be used in the
/// development of applications that support the validation, cleaning,
/// integration and querying of spatial datasets.
///
/// JTS attempts to implement the OpenGIS Simple Features Specification
/// (SFS) as accurately as possible. In some cases the SFS is unclear
/// or omits a specification; in this case J TS attempts to choose
/// a reasonable and consistent alternative. Differences from and
/// elaborations of the SFS are documented in this specification.
///
///