diff --git a/doc/doxygen_input/sourcecode/doxygen_1.cpp b/doc/doxygen_input/sourcecode/doxygen_1.cpp index 5517a1511..8a83401b2 100644 --- a/doc/doxygen_input/sourcecode/doxygen_1.cpp +++ b/doc/doxygen_input/sourcecode/doxygen_1.cpp @@ -23,23 +23,24 @@ #include -// 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 > 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 > 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 > > 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 > > 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() diff --git a/doc/qbk/Doxyfile b/doc/qbk/Doxyfile new file mode 100644 index 000000000..51aa7f913 --- /dev/null +++ b/doc/qbk/Doxyfile @@ -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 diff --git a/doc/qbk/Jamfile.v2 b/doc/qbk/Jamfile.v2 new file mode 100644 index 000000000..b27078771 --- /dev/null +++ b/doc/qbk/Jamfile.v2 @@ -0,0 +1,22 @@ +# doc/quickbook/Jamfile.v2 builds Quickbook documentation for Geometry library +# +# Copyright (c) 2009 Mateusz Loskot +# 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 + : Jamfile.v2 + ; + +boostbook standalone + : geometry + : callout.graphics.path=../callouts/ + ; + diff --git a/doc/qbk/area.qbk b/doc/qbk/area.qbk new file mode 100644 index 000000000..da73321df --- /dev/null +++ b/doc/qbk/area.qbk @@ -0,0 +1,60 @@ +[section:area0 area] + +Calculate area of a geometry using a specified strategy. + +[heading Synopsis] +``template +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 ` + + +[endsect] + +[section:area1 area] + +Calculate area of a geometry. + +[heading Synopsis] +``template +area_result::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 ` + +[heading Example] +[area_polygon] +[area_polygon_spherical] + +[endsect] + diff --git a/doc/qbk/distance.qbk b/doc/qbk/distance.qbk new file mode 100644 index 000000000..d42c01acc --- /dev/null +++ b/doc/qbk/distance.qbk @@ -0,0 +1,59 @@ +[section:distance0 distance] + +Calculate distance between two geometries. + +[heading Synopsis] +``template +distance_result::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 ` + + +[endsect] + +[section:distance1 distance] + +Calculate distance between two geometries with a specified strategy. + +[heading Synopsis] +``template +strategy::distance::services::return_type::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 ` + + +[endsect] + diff --git a/doc/qbk/geometry.qbk b/doc/qbk/geometry.qbk new file mode 100644 index 000000000..7190abb75 --- /dev/null +++ b/doc/qbk/geometry.qbk @@ -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] \ No newline at end of file diff --git a/doc/qbk/make_qbk.bat b/doc/qbk/make_qbk.bat new file mode 100644 index 000000000..20eba9a52 --- /dev/null +++ b/doc/qbk/make_qbk.bat @@ -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 \ No newline at end of file