Experimentally generated quickbooks for area/distance including samples

[SVN r64529]
This commit is contained in:
Barend Gehrels
2010-08-01 20:06:13 +00:00
parent 20782293bc
commit ccf8665993
7 changed files with 476 additions and 13 deletions

View File

@@ -23,23 +23,24 @@
#include <boost/geometry/extensions/gis/io/wkt/wkt.hpp>
// All functions below are referred to in the source of the Geometry Library.
// All functions below are referred to in the documentation of Boost.Geometry
// Don't rename them.
void example_area_polygon()
{
boost::geometry::polygon<boost::geometry::point_xy<double> > poly;
boost::geometry::read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", poly);
std::cout << "Polygon area is "
<< boost::geometry::area(poly)
<< " square units" << std::endl;
//[area_polygon
//` Calculate the area of a polygon
boost::geometry::polygon<boost::geometry::point_xy<double> > poly; /*< Declare >*/
boost::geometry::read_wkt("POLYGON((0 0,0 7,4 2,2 0,0 0))", poly); /*< Fill, in this case with WKT >*/
double area = boost::geometry::area(poly); /*< Calculate area >*/
//]
// Other coordinate system, spherical or geographic (extension)
boost::geometry::polygon<boost::geometry::point<float, 2, boost::geometry::cs::spherical<boost::geometry::degree> > > sph_poly;
boost::geometry::read_wkt("POLYGON((0 0,0 45,45 0,0 0))", sph_poly);
std::cout << "Area is "
<< boost::geometry::area(sph_poly)
<< " on unit sphere " << std::endl;
//[area_polygon_spherical
//` Calculate the area of a *spherical* polygon
namespace bg = boost::geometry;
bg::polygon<bg::point<float, 2, bg::cs::spherical<bg::degree> > > sph_poly;
bg::read_wkt("POLYGON((0 0,0 45,45 0,0 0))", sph_poly);
double area = bg::area(sph_poly);
//]
}
void example_as_wkt_point()

249
doc/qbk/Doxyfile Normal file
View File

@@ -0,0 +1,249 @@
# Doxyfile 1.5.5
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "Boost.Geometry (aka GGL)"
PROJECT_NUMBER =
OUTPUT_DIRECTORY = ./doxygen_output
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
SUBGROUPING = YES
TYPEDEF_HIDES_STRUCT = NO
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = NO
INLINE_INFO = NO
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = YES
SORT_GROUP_NAMES = YES
SORT_BY_SCOPE_NAME = YES
GENERATE_TODOLIST = NO
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = NO
SHOW_DIRECTORIES = NO
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ../../../../boost/geometry/geometries \
../../../../boost/geometry/algorithms \
../../../../boost/geometry/strategies/cartesian
INPUT_ENCODING = UTF-8
FILE_PATTERNS = point.hpp area.hpp distance.hpp distance_pythagoras.hpp
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
EXAMPLE_PATH = ../doxygen_input/sourcecode
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = NO
USE_HTAGS = NO
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
COLS_IN_ALPHA_INDEX = 3
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = NO
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Generated documentation, by Doxygen"
DOCSET_BUNDLE_ID = org.doxygen.Project
HTML_DYNAMIC_SECTIONS = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = YES
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = BOOST_CONCEPT_REQUIRES(x)= \
BOOST_CONCEPT_ASSERT(x) = \
BOOST_STATIC_ASSERT(x) = \
DOXYGEN_SHOULD_SKIP_THIS \
DOXYGEN_NO_DISPATCH \
DOXYGEN_NO_IMPL \
DOXYGEN_NO_DETAIL \
DOXYGEN_NO_CONCEPT_MEMBERS \
DOXYGEN_NO_TRAITS_SPECIALIZATIONS \
DOXYGEN_NO_STRATEGY_SPECIALIZATIONS \
DOXYGEN_NO_SPECIALIZATIONS
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = YES
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO

22
doc/qbk/Jamfile.v2 Normal file
View File

@@ -0,0 +1,22 @@
# doc/quickbook/Jamfile.v2 builds Quickbook documentation for Geometry library
#
# Copyright (c) 2009 Mateusz Loskot <mateusz@loskot.net>
# Copyright (c) 2010 Barend Gehrels
# Use, modification and distribution is subject to the Boost Software License,
# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
# Experimental!
import quickbook ;
xml geometry
: geometry.qbk
: <dependency>Jamfile.v2
;
boostbook standalone
: geometry
: <xsl:param>callout.graphics.path=../callouts/
;

60
doc/qbk/area.qbk Normal file
View File

@@ -0,0 +1,60 @@
[section:area0 area]
Calculate area of a geometry using a specified strategy.
[heading Synopsis]
``template<typename Geometry, typename Strategy>
Strategy::return_type area (Geometry const &geometry, Strategy const &strategy)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Geometry] [A type fulfilling any Geometry concept ] [geometry] [A model of Geometry ]]
[[Strategy] [A type fulfilling a AreaStrategy concept ] [strategy] [A strategy to calculate area. Especially for spherical and geographical area calculations there are various approaches. ]]
]
[heading Returns]
The calculated area
[heading Description]
This version of area calculation takes a strategy
[heading Header]
`#include <boost/geometry/algorithms/area.hpp>`
[endsect]
[section:area1 area]
Calculate area of a geometry.
[heading Synopsis]
``template<typename Geometry>
area_result<Geometry>::type area (Geometry const &geometry)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Geometry] [A type fulfilling any Geometry concept ] [geometry] [A model of Geometry ]]
]
[heading Returns]
The calculated area
[heading Description]
The function area returns the area of a polygon, ring, box using the default area-calculation strategy. Strategies are provided for cartesian and spherical coordinate systems The geometries should correct, polygons should be closed and according to the specified orientation (clockwise/counter clockwise)
[heading Header]
`#include <boost/geometry/algorithms/area.hpp>`
[heading Example]
[area_polygon]
[area_polygon_spherical]
[endsect]

59
doc/qbk/distance.qbk Normal file
View File

@@ -0,0 +1,59 @@
[section:distance0 distance]
Calculate distance between two geometries.
[heading Synopsis]
``template<typename Geometry1, typename Geometry2>
distance_result<Geometry1, Geometry2>::type distance (Geometry1 const &geometry1, Geometry2 const &geometry2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Geometry1] [] [geometry1] [first geometry ]]
[[Geometry2] [] [geometry2] [second geometry ]]
]
[heading Returns]
the distance (either a double or a distance result, convertable to double)
[heading Description]
The default strategy is used, belonging to the corresponding coordinate system of the geometries
[heading Header]
`#include <boost/geometry/algorithms/distance.hpp>`
[endsect]
[section:distance1 distance]
Calculate distance between two geometries with a specified strategy.
[heading Synopsis]
``template<typename Geometry1, typename Geometry2, typename Strategy>
strategy::distance::services::return_type<Strategy>::type distance (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Geometry1] [first geometry type ] [geometry1] [first geometry ]]
[[Geometry2] [second geometry type ] [geometry2] [second geometry ]]
[[Strategy] [] [strategy] [strategy to calculate distance between two points ]]
]
[heading Returns]
the distance
[heading Description]
[heading Header]
`#include <boost/geometry/algorithms/distance.hpp>`
[endsect]

42
doc/qbk/geometry.qbk Normal file
View File

@@ -0,0 +1,42 @@
[/==============================================================================
Copyright (c) 1995-2010 Barend Gehrels, Geodan, Amsterdam, the Netherlands.
Copyright (c) 2008-2010 Bruno Lalande, Paris, France.
Copyright (c) 2009-2010 Mateusz Loskot (mateusz@loskot.net), London, UK
Use, modification and distribution is subject to the Boost Software License,
Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
===============================================================================/]
[library Boost.Geometry
[quickbook 1.5]
[version 1.0]
[authors [Gehrels, Barend], [Lalande, Bruno], [Loskot, Mateusz]]
[copyright 2010 Barend Gehrels, Bruno Lalande, Mateusz Loskot]
[purpose A generic library for geometry]
[license
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
[@http://www.boost.org/LICENSE_1_0.txt])
]
[id geometry]
]
EXPERIMENTAL!
[import ../../../../boost/geometry/geometries/point.hpp]
[import ../../../../boost/geometry/algorithms/area.hpp]
[import ../doxygen_input/sourcecode/doxygen_1.cpp]
[section Introduction]
This is the documentation of Boost Geometry.
[endsect]
[section Sample]
[point]
[endsect]
[section Reference]
[include area.qbk]
[include distance.qbk]
[endsect]

30
doc/qbk/make_qbk.bat Normal file
View File

@@ -0,0 +1,30 @@
:: ===========================================================================
:: Copyright (c) 1995-2010 Barend Gehrels, Geodan, Amsterdam, the Netherlands.
:: Copyright (c) 2008-2010 Bruno Lalande, Paris, France.
:: Copyright (c) 2009-2010 Mateusz Loskot (mateusz@loskot.net), London, UK
::
:: Use, modification and distribution is subject to the Boost Software License,
:: Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
:: http://www.boost.org/LICENSE_1_0.txt)
:: ============================================================================
:: Note, all of this is very experimental
:: BSG, Aug 1, 2010
@echo off
doxygen
set xml2qbk=..\..\..\..\other\programs\doxygen_xml2qbk\Debug\doxygen_xml2qbk.exe
%xml2qbk% doxygen_output\xml\group__area.xml > area.qbk
%xml2qbk% doxygen_output\xml\group__distance.xml > distance.qbk
set xslt=c:\software\xsltproc\xml\bin\xsltproc.exe
:: %xslt% reference.xsl doxygen_output\xml\classboost_1_1geometry_1_1point.xml > point.qbk
:: %xslt% reference.xsl doxygen_output\xml\group__area.xml > area.qbk
:: %xslt% reference.xsl doxygen_output\xml\area_8hpp.xml > area2.qbk
bjam --toolset=msvc