PageRenderTime 23ms CodeModel.GetById 20ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/Src/Dependencies/Boost/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_mainpage.hpp

http://hadesmem.googlecode.com/
C++ Header | 104 lines | 3 code | 9 blank | 92 comment | 0 complexity | 15cd885faafce95dbfa8b050498ef639 MD5 | raw file
  1// Boost.Geometry (aka GGL, Generic Geometry Library)
  2//
  3// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
  4// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
  5// Use, modification and distribution is subject to the Boost Software License,
  6// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  7// http://www.boost.org/LICENSE_1_0.txt)
  8
  9#ifndef _DOXYGEN_MAINPAGE_HPP
 10#define _DOXYGEN_MAINPAGE_HPP
 11
 12
 13// -> introduction.qbk
 14// -> quickstart.qbk
 15
 16/*!
 17\mainpage Boost.Geometry
 18
 19\section header Boost.Geometry (aka GGL, Generic Geometry Library)
 20
 21<em>Copyright &copy; 1995-2010 <b>Barend Gehrels</b>, Geodan, Amsterdam, the Netherlands.\n
 22Copyright &copy; 2008-2010 <b>Bruno Lalande</b>, Paris, France.\n
 23Copyright &copy; 2010 <b>Mateusz Loskot</b>, Cadcorp, London, UK.\n
 24Distributed under the Boost Software License, Version 1.0.\n
 25(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 26</em>
 27
 28\section intro Introduction
 29Boost.Geometry, formally accepted by Boost, defines concepts "concepts" for geometries and
 30implements some algorithms on such geometries. Before acceptance by Boost it was known as GGL
 31(Generic Geometry Library) and this documentation still contains that name on various places.
 32
 33
 34Boost.Geometry contains a dimension-agnostic, coordinate-system-agnostic and
 35scalable kernel, based on concepts, meta-functions and tag- dispatching. On top
 36of that kernel, algorithms are built: area, length, perimeter, centroid, convex
 37hull, intersection (clipping), within (point in polygon), distance, envelope
 38(bounding box), simplify, transform, convert, and more. The library is also
 39designed to support high precision arithmetic numbers, such as GMP.
 40
 41Boost.Geometry contains instantiable geometry classes, but library users can also use their own. Using registration macros or traits classes their geometries can be adapted to fulfil the Boost.Geometry Concepts.
 42
 43Boost.Geometry might be used in all domains where geometry plays a role: mapping and GIS, gaming, computer graphics and widgets, robotics, astronomy... The core is designed to be as generic as possible and support those domains. However, for now the development has been mostly GIS-oriented.
 44
 45Boost.Geometry supports the extension model, the same way as GIL also applies it. An extension is (mostly) something more specific to domains like mentioned above.
 46
 47The library follows existing conventions:
 48- conventions from boost
 49- conventions from the std library
 50- conventions and names from one of the OGC standards on Geometry
 51
 52The library can be downloaded from the Boost Sandbox,
 53go to the \ref download "Download page" for more information.
 54
 55A (recently started) Wiki is here: http://trac.osgeo.org/ggl/wiki
 56
 57\section quickstart Quick start
 58It is not possible to show the whole library at a glance. A few very small examples are shown below.
 59
 60It should be possible to use a very small part of the library,
 61for example only the distance between two points.
 62
 63\dontinclude doxygen_2.cpp
 64\skip example_for_main_page()
 65\skipline int a
 66\until endl;
 67
 68Other often used algorithms are point-in-polygon:
 69\skipline ring_2d
 70\until endl;
 71
 72or area:
 73\skip area
 74\until endl;
 75
 76It is possible, by the nature of a template library, to mix the point types declared above:
 77\skip double d2
 78\until endl;
 79
 80The pieces above generate this output:
 81\image html output_main.png
 82
 83
 84It is also possible to use non-Cartesian points.
 85For example: points on a sphere. When then an algorithm such as distance
 86is used the library "inspects" that it is handling spherical
 87points and calculates the distance over the sphere, instead of applying the Pythagorean theorem.
 88
 89Finally an example from a totally different domain: developing window-based applications, for example
 90using QtWidgets. We check if two rectangles overlap and if so,
 91move the second one to another place:
 92\skip QRect
 93\until }
 94
 95More examples are on the page \b Examples
 96
 97
 98*/
 99
100
101
102
103
104#endif // _DOXYGEN_MAINPAGE_HPP