point.qbk 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. [/============================================================================
  2. Boost.Geometry (aka GGL, Generic Geometry Library)
  3. Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
  4. Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
  5. Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
  6. Use, modification and distribution is subject to the Boost Software License,
  7. Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  8. http://www.boost.org/LICENSE_1_0.txt)
  9. =============================================================================/]
  10. [section:concept_point Point Concept]
  11. [heading Description]
  12. [concept Point..point]
  13. A point is ['an entity that has a location in space or on a plane, but has no extent] ([@http://en.wikipedia.org/wiki/Point_(geometry) wiki]).
  14. The point is the most basic geometry of Boost.Geometry, most other geometries consist of points.
  15. ['(Exceptions are box and segment, which might consist of two points but that is not necessarily the case.)]
  16. [heading Concept Definition]
  17. The Point Concept is defined as following:
  18. * there must be a specialization of `traits::tag`, defining `point_tag` as type
  19. * there must be a specialization of `traits::coordinate_type`, defining the type of its coordinates
  20. * there must be a specialization of `traits::coordinate_system`, defining its coordinate system
  21. (cartesian, spherical, etc)
  22. * there must be a specialization of `traits::dimension`, defining its number of dimensions (2, 3, ...)
  23. (hint: derive it conveniently from `boost::mpl::int_<X>` for X Dimensional)
  24. * there must be a specialization of `traits::access`, per dimension, with two functions:
  25. * `get` to get a coordinate value
  26. * `set` to set a coordinate value (this one is not checked for ConstPoint)
  27. [heading Available Models]
  28. * [link geometry.reference.models.model_point model::point]
  29. * [link geometry.reference.models.model_d2_point_xy model::d2::point_xy]
  30. * a lat long point (currently in an extension)
  31. * [link geometry.reference.adapted.c_array C array]
  32. * [link geometry.reference.adapted.std_array C++ array container]
  33. * [link geometry.reference.adapted.boost_array Boost.Array]
  34. * [link geometry.reference.adapted.boost_fusion Boost.Fusion]
  35. * [link geometry.reference.adapted.boost_polygon Boost.Polygon]
  36. * [link geometry.reference.adapted.boost_tuple Boost.Tuple]
  37. * other point types, adapted e.g. using one of the [link geometry.reference.adapted registration macro's]
  38. [endsect]