mirror of
https://github.com/boostorg/geometry.git
synced 2026-01-24 18:02:17 +00:00
* Update geometry.qbk * Update introduction.qbk * Update compiling.qbk * Update design_rationale.qbk * Update introduction.qbk * Update quickstart.qbk * Update creation.qbk * Update query.qbk * Update reference.qbk * Update * Update * Update * Update * Update buffer_with_strategies.qbk * Update expand.qbk * Update expand.qbk * Update union.hpp * Update point.qbk * Update box.qbk * Update cs.hpp * Update closure.hpp * Update point.hpp * Update rtree.hpp * Update choose_next_node.hpp * Update iterator.hpp * Update point_in_poly_winding.hpp * Update spatial_query.hpp * Update imw_p.hpp * Update remove.hpp * Update redistribute_elements.hpp * Update redistribute_elements.hpp * Update insert.hpp * Update redistribute_elements.hpp * Update point_in_poly_crossings_multiply.hpp * Update closeable_view.hpp * Update example_adapting_a_legacy_geometry_object_model.qbk * Update acknowledgments.qbk * Update indexable.hpp * Update for_each.hpp * Update iterators.hpp * Update spatial_query.hpp * Update query_iterators.hpp
43 lines
1.9 KiB
Plaintext
43 lines
1.9 KiB
Plaintext
[/============================================================================
|
|
Boost.Geometry (aka GGL, Generic Geometry Library)
|
|
|
|
Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
|
|
Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
|
|
Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
|
|
|
|
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)
|
|
=============================================================================/]
|
|
|
|
[section:concept_box Box Concept]
|
|
|
|
[heading Description]
|
|
[concept Box..box]
|
|
|
|
A box is a geometry with (usually) two or three dimensions, having its axis aligned to the coordinate system.
|
|
|
|
The box is not one of the basic types in Boost.Geometry (point, linestring, polygon) but it is a ['helper type].
|
|
The main reasons for the box existence are its usefulness for indexing (a spatial index, or splitting a geometry
|
|
into monotonic sections) and it is the output of the [link geometry.reference.algorithms.envelope envelope] algorithm.
|
|
|
|
Therefore, a box is axis aligned (the envelope is also called aabb, axis aligned bounding box).
|
|
|
|
[heading Concept Definition]
|
|
|
|
The Box Concept is defined as following:
|
|
|
|
* there must be a specialization of `traits::tag`, defining `box_tag` as type
|
|
* there must be a specialization of `traits::point_type` to define the underlying point type
|
|
(even if it does not consist of points, it should define this type, to indicate the points it can work with)
|
|
* there must be a specialization of `traits::indexed_access`, per index (`min_corner`, `max_corner`) and per dimension, with two functions:
|
|
* `get` to get a coordinate value
|
|
* `set` to set a coordinate value (this one is not checked for ConstBox)
|
|
|
|
|
|
[heading Available Models]
|
|
* [link geometry.reference.models.model_box model::box]
|
|
|
|
[endsect]
|
|
|