Boost.Geometry    Boost C++ Libraries
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
boost::geometry Namespace Reference

Namespaces

namespace  traits
namespace  cs
namespace  srs
namespace  resolve_variant
namespace  resolve_strategy
namespace  info
namespace  nyi
namespace  detail
namespace  core_dispatch
namespace  dispatch
namespace  strategy
namespace  de9im
namespace  concept
namespace  model
namespace  detail_dispatch
namespace  fusion_adapt_detail
namespace  policies
namespace  util
namespace  math
namespace  range

Classes

struct  add_const_if_c
 Meta-function to define a const or non const type. More...
struct  areal_tag
 For areal types (polygon, multi_polygon, box, ring) More...
struct  box_tag
 Convenience 2D or 3D box (mbr / aabb) identifying tag. More...
struct  box_view
 Makes a box behave like a ring or a range. More...
struct  cartesian_tag
 Tag indicating Cartesian coordinate system family (cartesian,epsg) More...
class  centroid_exception
 Centroid Exception. More...
struct  closeable_view
 View on a range, either closing it or leaving it as it is. More...
struct  closing_iterator
 Iterator which iterates through a range, but adds first element at end of the range. More...
struct  closure
 Metafunction defining [*value] as the closure (clockwise, counterclockwise) of the \3. More...
struct  closure_as_bool
struct  closure_as_bool< closed >
struct  closure_as_bool< open >
struct  collected_vector
struct  comparable_distance_result
 Meta-function defining return type of comparable_distance function. More...
struct  comparable_distance_result< Geometry1, Geometry2, void >
struct  compress_variant
 Meta-function that takes a boost::variant type and tries to minimize it by doing the following: More...
class  concatenate_iterator
struct  coordinate_system
 Metafunction defining [*type] as the coordinate system (cartesian, spherical, etc) of the \3. More...
struct  coordinate_type
 Metafunction defining [*type] as the coordinate type (int, float, double, etc) of the \3. More...
struct  cs_tag
 Meta-function returning coordinate system tag (cs family) of any geometry. More...
struct  default_area_result
 Meta-function defining return type of area function, using the default strategy. More...
struct  default_comparable_distance_result
 Meta-function defining return type of comparable_distance function. More...
struct  default_distance_result
 Meta-function defining return type of distance function. More...
struct  default_length_result
 Meta-function defining return type of length function. More...
struct  default_strategy
struct  degree
 Unit of plane angle: Degrees. More...
struct  dimension
 Metafunction defining [*value] as the number of coordinates (the number of axes of any geometry) of the \3. More...
struct  distance_result
 Meta-function defining return type of distance function. More...
struct  distance_result< Geometry1, Geometry2, void >
class  empty_input_exception
 Empty Input Exception. More...
struct  equal_to
 Equal To functor, to compare if points are equal. More...
struct  ever_circling_iterator
 Iterator which ever circles through a range. More...
struct  ever_circling_range_iterator
class  exception
 Base exception class for Boost.Geometry algorithms. More...
class  flatten_iterator
struct  fp_coordinate_type
struct  fraction_type
struct  geographic_tag
 Tag indicating Geographic coordinate system family (geographic) More...
struct  geometry_collection_tag
 OGC Geometry Collection identifying tag. More...
struct  geometry_id
 Meta-function returning the id of a geometry type. More...
struct  geometry_not_recognized_tag
 "default" tag More...
struct  greater
 Greater functor. More...
struct  helper_geometry
struct  identity_view
 View on a range, not modifying anything. More...
class  inconsistent_turns_exception
struct  interior_return_type
struct  interior_type
 Metafunction defining [*type] as the interior_type (container type of inner rings) of the \3. More...
class  invalid_input_exception
 Invalid Input Exception. More...
struct  is_areal
 Meta-function defining "true" for areal types (box, (multi)polygon, ring),. More...
struct  is_radian
 Meta-function to verify if a coordinate system is radian. More...
struct  less
 Less functor, to sort points in ascending order. More...
struct  linear_tag
 For linear types (linestring, multi-linestring, segment) More...
struct  linestring_tag
 OGC Linestring identifying tag. More...
struct  multi_linestring_tag
 OGC Multi linestring identifying tag. More...
struct  multi_point_tag
 OGC Multi point identifying tag. More...
struct  multi_polygon_tag
 OGC Multi polygon identifying tag. More...
struct  multi_tag
 For multiple-geometries (multi_point, multi_linestring, multi_polygon) More...
struct  not_implemented
struct  order_as_direction
struct  order_as_direction< clockwise >
struct  order_as_direction< counterclockwise >
class  overlay_invalid_input_exception
 Overlay Invalid Input Exception. More...
struct  parameter_type_of
 Meta-function selecting a parameter type of a (member) function, by index. More...
class  partition
class  point_iterator
struct  point_order
 Metafunction defining [*value] as the point order (clockwise, counterclockwise) of the \3. More...
class  point_reverse_iterator
struct  point_tag
 OGC Point identifying tag. More...
struct  point_type
 Metafunction defining [*type] as the point_type of the \3. More...
struct  point_type< boost::variant< BOOST_VARIANT_ENUM_PARAMS(T)> >
struct  pointlike_tag
 For point-like types (point, multi_point) More...
struct  polygon_tag
 OGC Polygon identifying tag. More...
struct  polygonal_tag
struct  promote_floating_point
 Meta-function converting, if necessary, to "a floating point" type. More...
class  promote_integral
 Meta-function to define an integral type with size than is (roughly) twice the bit size of T. More...
class  promote_integral< T, PromoteUnsignedToUnsigned, UseCheckedInteger, false >
struct  radian
 Unit of plane angle: Radians. More...
struct  radius_type
 Metafunction to get the type of radius of a circle / sphere / ellipse / etc. More...
struct  read_wkt_exception
 Exception showing things wrong with WKT parsing. More...
struct  reverse_dispatch
struct  reversible_view
 View on a range, reversing direction if necessary. More...
struct  ring_identifier
struct  ring_return_type
struct  ring_tag
 Convenience (linear) ring identifying tag. More...
struct  ring_type
 Metafunction defining [*type] as the ring_type of the \3. More...
struct  section
 Structure containing section information. More...
struct  sections
 Structure containing a collection of sections. More...
struct  segment_identifier
struct  segment_intersection_info
struct  segment_intersection_points
 return-type for segment-intersection More...
class  segment_iterator
struct  segment_tag
 Convenience segment (2-points) identifying tag. More...
struct  segment_view
 Makes a segment behave like a linestring or a range. More...
struct  select_calculation_type
 Meta-function selecting the "calculation" type. More...
struct  select_calculation_type_alt
struct  select_coordinate_type
 Meta-function selecting the most precise coordinate type of two geometries. More...
struct  select_coordinate_type< T1, T2, void >
struct  select_coordinate_type< T1, void, void >
struct  select_most_precise
 Meta-function to select, of two types, the most accurate type for calculations. More...
struct  select_most_precise< boost::rational< T >, double >
struct  select_most_precise< boost::rational< T1 >, boost::rational< T2 > >
struct  select_most_precise< T1, T2, void >
struct  select_most_precise< T1, void, void >
class  side_info
 Class side_info: small class wrapping for sides (-1,0,1) More...
struct  single_tag
 For single-geometries (point, linestring, polygon, box, ring, segment) More...
struct  single_tag_of
 Meta-function to get for a tag of a multi-geometry the tag of the corresponding single-geometry. More...
struct  single_tag_of< detail::buffer::buffered_ring_collection_tag >
struct  spherical_equatorial_tag
 Tag indicating Spherical equatorial coordinate system family. More...
struct  spherical_polar_tag
 Tag indicating Spherical polar coordinate system family. More...
struct  spherical_tag
 Tag used for casting spherical/geographic coordinate systems. More...
struct  srs_sphere_tag
 For reference sphere defining parameters of spherical coordinate system. More...
struct  srs_spheroid_tag
 For reference spheroid defining parameters of geographical coordinate system. More...
struct  strategy_compare
 Traits class binding a comparing strategy to a coordinate system. More...
struct  strategy_convex_hull
 Traits class binding a convex hull calculation strategy to a coordinate system. More...
struct  strategy_intersection
 "compound strategy", containing a segment-intersection-strategy and a side-strategy More...
struct  strategy_intersection_empty
struct  strategy_tag_distance_box_box
struct  strategy_tag_distance_point_box
struct  strategy_tag_distance_point_point
struct  strategy_tag_distance_point_segment
class  svg_manipulator
 Generic geometry template manipulator class, takes corresponding output class from traits class. More...
class  svg_mapper
 Helper class to create SVG maps. More...
struct  tag
 Metafunction defining [*type] as the tag of the \3. More...
struct  tag_cast
 Metafunction defining a type being either the specified tag, or one of the specified basetags if the type inherits from them. More...
struct  topological_dimension
 Meta-function returning the topological dimension of a geometry. More...
struct  transform_variant
 Meta-function that takes a Sequence type, an MPL lambda expression and an optional Inserter and returns a variant type over the same types as the initial variant type, each transformed using the lambda expression. More...
struct  transform_variant< variant< BOOST_VARIANT_ENUM_PARAMS(T)>, Op, boost::mpl::na >
 Meta-function that takes a boost::variant type and an MPL lambda expression and returns a variant type over the same types as the initial variant type, each transformed using the lambda expression. More...
class  turn_info_exception
struct  volumetric_tag
 For volume types (also box (?), polyhedron) More...
class  wkt_manipulator
 Generic geometry template manipulator class, takes corresponding output class from traits class. More...

Typedefs

typedef boost::make_signed
< std::size_t >::type 
signed_size_type

Enumerations

enum  closure_selector { open = 0, closed = 1, closure_undertermined = -1 }
 Enumerates options for defining if polygons are open or closed. More...
enum  iterate_direction { iterate_forward, iterate_reverse }
 Flag for iterating a reversible_view in forward or reverse direction. More...
enum  order_selector { clockwise = 1, counterclockwise = 2, order_undetermined = 0 }
 Enumerates options for the order of points within polygons. More...
enum  overlay_type { overlay_union, overlay_intersection, overlay_difference, overlay_dissolve }
enum  validity_failure_type {
  no_failure = 0, failure_few_points = 10, failure_wrong_topological_dimension = 11, failure_spikes = 12,
  failure_duplicate_points = 13, failure_not_closed = 20, failure_self_intersections = 21, failure_wrong_orientation = 22,
  failure_interior_rings_outside = 30, failure_nested_interior_rings = 31, failure_disconnected_interior = 32, failure_intersecting_interiors = 40,
  failure_wrong_corner_order = 50, failure_invalid_coordinate = 60
}
 Enumerates the possible validity failure types for a geometry. More...

Functions

template<typename Point1 , typename Point2 >
void add_point (Point1 &p1, Point2 const &p2)
 Adds a point to another.
template<typename Point >
void add_value (Point &p, typename detail::param< Point >::type value)
 Adds the same value to each coordinate of a point.
template<typename Geometry , typename RangeOrPoint >
void append (Geometry &geometry, RangeOrPoint const &range_or_point, int ring_index=-1, int multi_index=0)
 Appends one or more points to a linestring, ring, polygon, multi-geometry.
template<typename Geometry >
default_area_result< Geometry >
::type 
area (Geometry const &geometry)
 Calculates the area of a geometry.
template<typename Geometry , typename Strategy >
Strategy::return_type area (Geometry const &geometry, Strategy const &strategy)
 Calculates the area of a geometry using the specified strategy.
template<typename Geometry , int Dimensions>
void assert_dimension ()
 assert_dimension, enables compile-time checking if coordinate dimensions are as expected
template<typename G1 , typename G2 >
void assert_dimension_equal ()
 assert_dimension_equal, enables compile-time checking if coordinate dimensions of two geometries are equal
template<typename Geometry , int Dimensions>
void assert_dimension_greater_equal ()
template<typename Geometry , int Dimensions>
void assert_dimension_less_equal ()
 assert_dimension, enables compile-time checking if coordinate dimensions are as expected
template<typename Geometry1 , typename Geometry2 >
void assign (Geometry1 &geometry1, Geometry2 const &geometry2)
 Assigns one geometry to another geometry.
template<typename Geometry >
void assign_inverse (Geometry &geometry)
 assign to a box inverse infinite
template<typename Point1 , typename Point2 >
void assign_point (Point1 &p1, Point2 const &p2)
 Assign a point with another.
template<typename Geometry , typename Range >
void assign_points (Geometry &geometry, Range const &range)
 Assign a range of points to a linestring, ring or polygon.
template<typename Point >
void assign_value (Point &p, typename detail::param< Point >::type value)
 Assign each coordinate of a point the same value.
template<typename Geometry , typename Type >
void assign_values (Geometry &geometry, Type const &c1, Type const &c2)
 Assign two coordinates to a geometry (usually a 2D point)
template<typename Geometry , typename Type >
void assign_values (Geometry &geometry, Type const &c1, Type const &c2, Type const &c3)
 Assign three values to a geometry (usually a 3D point)
template<typename Geometry , typename Type >
void assign_values (Geometry &geometry, Type const &c1, Type const &c2, Type const &c3, Type const &c4)
 Assign four values to a geometry (usually a box or segment)
template<typename Geometry >
void assign_zero (Geometry &geometry)
 assign zero values to a box, point
template<typename Input , typename Output , typename Distance >
void buffer (Input const &geometry_in, Output &geometry_out, Distance const &distance, Distance const &chord_length=-1)
 Calculates the buffer of a geometry.
template<typename GeometryIn , typename MultiPolygon , typename DistanceStrategy , typename SideStrategy , typename JoinStrategy , typename EndStrategy , typename PointStrategy >
void buffer (GeometryIn const &geometry_in, MultiPolygon &geometry_out, DistanceStrategy const &distance_strategy, SideStrategy const &side_strategy, JoinStrategy const &join_strategy, EndStrategy const &end_strategy, PointStrategy const &point_strategy)
 Calculates the buffer of a geometry.
template<typename Geometry , typename Point , typename Strategy >
void centroid (Geometry const &geometry, Point &c, Strategy const &strategy)
 Calculates the centroid of a geometry using the specified strategy.
template<typename Geometry , typename Point >
void centroid (Geometry const &geometry, Point &c)
 Calculates the centroid of a geometry.
template<typename Geometry >
void clear (Geometry &geometry)
 Clears a linestring, ring or polygon (exterior+interiors) or multi*.
template<typename Collection , typename Geometry >
void collect_vectors (Collection &collection, Geometry const &geometry)
template<typename Geometry1 , typename Geometry2 , typename Strategy >
comparable_distance_result
< Geometry1, Geometry2,
Strategy >::type 
comparable_distance (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)
 Calculate the comparable distance measurement of two geometries using the specified strategy.
template<typename Geometry1 , typename Geometry2 >
default_comparable_distance_result
< Geometry1, Geometry2 >::type 
comparable_distance (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Calculate the comparable distance measurement of two geometries.
template<typename Geometry1 , typename Geometry2 >
void convert (Geometry1 const &geometry1, Geometry2 &geometry2)
 Converts one geometry to another geometry.
template<typename Geometry , typename OutputGeometry , typename Strategy >
void convex_hull (Geometry const &geometry, OutputGeometry &out, Strategy const &strategy)
template<typename Geometry , typename OutputGeometry >
void convex_hull (Geometry const &geometry, OutputGeometry &hull)
 Calculates the convex hull of a geometry.
template<bool Reverse, typename Geometry , typename SegmentIdentifier , typename PointOut >
bool copy_segment_point (Geometry const &geometry, SegmentIdentifier const &seg_id, int offset, PointOut &point_out)
 Helper function, copies a point from a segment.
template<bool Reverse1, bool Reverse2, typename Geometry1 , typename Geometry2 , typename SegmentIdentifier , typename PointOut >
bool copy_segment_point (Geometry1 const &geometry1, Geometry2 const &geometry2, SegmentIdentifier const &seg_id, int offset, PointOut &point_out)
 Helper function, to avoid the same construct several times, copies a point, based on a source-index and two geometries.
template<bool Reverse1, bool Reverse2, typename Geometry1 , typename Geometry2 , typename SegmentIdentifier , typename PointOut >
bool copy_segment_points (Geometry1 const &geometry1, Geometry2 const &geometry2, SegmentIdentifier const &seg_id, PointOut &point1, PointOut &point2)
 Helper function, to avoid the same construct several times, copies a point, based on a source-index and two geometries.
template<bool Reverse1, bool Reverse2, typename Geometry1 , typename Geometry2 , typename SegmentIdentifier , typename PointOut >
bool copy_segment_points (Geometry1 const &geometry1, Geometry2 const &geometry2, SegmentIdentifier const &seg_id, PointOut &point1, PointOut &point2, PointOut &point3)
 Helper function, copies three points: two from the specified segment (from, to) and the next one.
template<bool Reverse, typename Geometry , typename SegmentIdentifier , typename RobustPolicy , typename RangeOut >
void copy_segments (Geometry const &geometry, SegmentIdentifier const &seg_id, signed_size_type to_index, RobustPolicy const &robust_policy, RangeOut &range_out)
 Copy segments from a geometry, starting with the specified segment (seg_id) until the specified index (to_index)
template<typename Geometry >
void correct (Geometry &geometry)
 Corrects a geometry.
template<typename Geometry1 , typename Geometry2 >
bool covered_by (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if the first geometry is inside or on border the second geometry.
template<typename Geometry1 , typename Geometry2 , typename Strategy >
bool covered_by (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)
 Checks if the first geometry is inside or on border the second geometry using the specified strategy.
template<typename Geometry1 , typename Geometry2 >
bool crosses (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if two geometries \1.
template<typename Geometry1 , typename Geometry2 , typename Collection >
void difference (Geometry1 const &geometry1, Geometry2 const &geometry2, Collection &output_collection)
template<typename Geometry1 , typename Geometry2 >
bool disjoint (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if two geometries \1.
template<typename Geometry1 , typename Geometry2 , typename Strategy >
distance_result< Geometry1,
Geometry2, Strategy >::type 
distance (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)
 Calculate the distance of two geometries using the specified strategy.
template<typename Geometry1 , typename Geometry2 >
default_distance_result
< Geometry1, Geometry2 >::type 
distance (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Calculate the distance of two geometries.
template<typename Point1 , typename Point2 >
void divide_point (Point1 &p1, Point2 const &p2)
 Divides a point by another.
template<typename Point >
void divide_value (Point &p, typename detail::param< Point >::type value)
 Divides each coordinate of the same point by a value.
template<typename Point1 , typename Point2 >
select_coordinate_type< Point1,
Point2 >::type 
dot_product (Point1 const &p1, Point2 const &p2)
 Computes the dot product (or scalar product) of 2 vectors (points).
template<bool Reverse1, bool Reverse2, overlay_type OverlayType, typename Turns , typename Clusters , typename Geometry1 , typename Geometry2 , typename RobustPolicy , typename Strategy >
void enrich_intersection_points (Turns &turns, Clusters &clusters, detail::overlay::operation_type for_operation, Geometry1 const &geometry1, Geometry2 const &geometry2, RobustPolicy const &robust_policy, Strategy const &strategy)
 All intersection points are enriched with successor information.
template<typename Geometry , typename Box >
void envelope (Geometry const &geometry, Box &mbr)
 Calculates the envelope of a geometry.
template<typename Geometry1 , typename Geometry2 >
bool equals (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if a geometry \1.
template<typename Box , typename Geometry >
void expand (Box &box, Geometry const &geometry)
 Expands a box using the bounding box (envelope) of another geometry (box, point)
template<typename Polygon >
ring_return_type< Polygon >::type exterior_ring (Polygon &polygon)
 Function to get the exterior_ring ring of a polygon.
template<typename Polygon >
ring_return_type< Polygon
const >::type 
exterior_ring (Polygon const &polygon)
 Function to get the exterior ring of a polygon (const version)
template<std::size_t Edge, typename Geometry , typename Extremes , typename Intruders >
bool extreme_points (Geometry const &geometry, Extremes &extremes, Intruders &intruders)
 Returns extreme points (for Edge=1 in dimension 1, so the top, for Edge=0 in dimension 0, the right side)
template<typename Point , typename Op >
void for_each_coordinate (Point &point, Op operation)
template<typename Point , typename Op >
Op for_each_coordinate (Point const &point, Op operation)
template<typename Geometry , typename Functor >
Functor for_each_point (Geometry &geometry, Functor f)
 Applies function [*f] to each \1.
template<typename Geometry , typename Functor >
Functor for_each_segment (Geometry &geometry, Functor f)
 Applies function [*f] to each \1.
template<std::size_t Dimension, typename Geometry >
coordinate_type< Geometry >::type get (Geometry const &geometry)
 Get coordinate value of a geometry (usually a point)
template<std::size_t Index, std::size_t Dimension, typename Geometry >
coordinate_type< Geometry >::type get (Geometry const &geometry)
 get coordinate value of a Box or Segment
template<std::size_t Dimension, typename Geometry >
fp_coordinate_type< Geometry >
::type 
get_as_radian (Geometry const &geometry)
 get coordinate value of a point, result is in Radian
template<typename Geometry1 , typename Geometry2 , typename RobustPolicy , typename Turns >
void get_intersection_points (Geometry1 const &geometry1, Geometry2 const &geometry2, RobustPolicy const &robust_policy, Turns &turns)
template<std::size_t I, typename Geometry >
radius_type< Geometry >::type get_radius (Geometry const &geometry)
 Function to get radius of a circle / sphere / ellipse / etc.
template<bool Reverse1, bool Reverse2, typename AssignPolicy , typename Geometry1 , typename Geometry2 , typename RobustPolicy , typename Turns , typename InterruptPolicy >
void get_turns (Geometry1 const &geometry1, Geometry2 const &geometry2, RobustPolicy const &robust_policy, Turns &turns, InterruptPolicy &interrupt_policy)
 Calculate the turn points of two geometries.
template<typename Point >
bool has_infinite_coordinate (Point const &point)
template<typename Point >
bool has_nan_coordinate (Point const &point)
template<typename Point >
bool has_non_finite_coordinate (Point const &point)
template<typename Iterator >
bool has_one_element (Iterator first, Iterator beyond)
template<typename Polygon >
interior_return_type< Polygon >
::type 
interior_rings (Polygon &polygon)
 Function to get the interior rings of a polygon (non const version)
template<typename Polygon >
interior_return_type< Polygon
const >::type 
interior_rings (Polygon const &polygon)
 Function to get the interior rings of a polygon (const version)
template<typename Geometry1 , typename Geometry2 , typename GeometryOut >
bool intersection (Geometry1 const &geometry1, Geometry2 const &geometry2, GeometryOut &geometry_out)
 Calculate the intersection of two geometries.
template<typename Geometry >
bool intersects (Geometry const &geometry)
 Checks if a geometry \1.
template<typename Geometry1 , typename Geometry2 >
bool intersects (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if two geometries \1.
template<typename Geometry >
bool is_convex (Geometry const &geometry)
template<typename Geometry >
bool is_empty (Geometry const &geometry)
 Checks if a geometry \1.
template<typename Geometry >
bool is_simple (Geometry const &geometry)
 Checks if a geometry \1.
template<typename Geometry , typename VisitPolicy >
bool is_valid (Geometry const &geometry, VisitPolicy &visitor)
template<typename Geometry >
bool is_valid (Geometry const &geometry)
 Checks if a geometry \1.
template<typename Geometry >
bool is_valid (Geometry const &geometry, validity_failure_type &failure)
 Checks if a geometry \1.
template<typename Geometry >
bool is_valid (Geometry const &geometry, std::string &message)
 Checks if a geometry \1.
template<typename Geometry >
default_length_result
< Geometry >::type 
length (Geometry const &geometry)
 Calculates the length of a geometry.
template<typename Geometry , typename Strategy >
default_length_result
< Geometry >::type 
length (Geometry const &geometry, Strategy const &strategy)
 Calculates the length of a geometry using the specified strategy.
template<typename Geometry , typename Type >
Geometry make (Type const &c1, Type const &c2)
 Construct a geometry.
template<typename Geometry , typename Type >
Geometry make (Type const &c1, Type const &c2, Type const &c3)
 Construct a geometry.
template<typename Geometry , typename Type >
Geometry make (Type const &c1, Type const &c2, Type const &c3, Type const &c4)
template<typename Geometry >
Geometry make_inverse ()
 Construct a box with inverse infinite coordinates.
template<typename Geometry >
Geometry make_zero ()
 Construct a geometry with its coordinates initialized to zero.
template<typename RangeOfIntervals , typename T >
boost::range_value
< RangeOfIntervals >
::type::difference_type 
maximum_gap (RangeOfIntervals const &range_of_intervals, T &max_gap_left, T &max_gap_right)
template<typename RangeOfIntervals >
boost::range_value
< RangeOfIntervals >
::type::difference_type 
maximum_gap (RangeOfIntervals const &range_of_intervals)
char method_char (detail::overlay::method_type const &method)
template<typename Point1 , typename Point2 >
void multiply_point (Point1 &p1, Point2 const &p2)
 Multiplies a point by another.
template<typename Point >
void multiply_value (Point &p, typename detail::param< Point >::type value)
 Multiplies each coordinate of a point by the same value.
template<typename Geometry >
std::size_t num_geometries (Geometry const &geometry)
 Calculates the number of geometries of a geometry.
template<typename Geometry >
std::size_t num_interior_rings (Geometry const &geometry)
 Calculates the number of interior rings of a geometry.
template<typename Geometry >
std::size_t num_points (Geometry const &geometry, bool add_for_open=false)
 Calculates the number of points of a geometry.
template<typename Geometry >
std::size_t num_segments (Geometry const &geometry)
 Calculates the number of segments of a geometry.
char operation_char (detail::overlay::operation_type const &operation)
template<typename Geometry1 , typename Geometry2 >
bool overlaps (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if two geometries \1.
template<typename Geometry >
default_length_result
< Geometry >::type 
perimeter (Geometry const &geometry)
 Calculates the perimeter of a geometry.
template<typename Geometry , typename Strategy >
default_length_result
< Geometry >::type 
perimeter (Geometry const &geometry, Strategy const &strategy)
 Calculates the perimeter of a geometry using the specified strategy.
template<typename Point , typename Geometry >
bool point_on_border (Point &point, Geometry const &geometry, bool midpoint=false)
 Take point on a border.
template<typename Geometry , typename Point >
void point_on_surface (Geometry const &geometry, Point &point)
 Assigns a Point guaranteed to lie on the surface of the Geometry.
template<typename Geometry >
point_iterator< Geometry > points_begin (Geometry &geometry)
template<typename Geometry >
point_iterator< Geometry > points_end (Geometry &geometry)
template<typename Geometry >
point_reverse_iterator< Geometry > points_rbegin (Geometry &geometry)
template<typename Geometry >
point_reverse_iterator< Geometry > points_rend (Geometry &geometry)
template<typename Geometry , typename Section >
ring_return_type< Geometry
const >::type 
range_by_section (Geometry const &geometry, Section const &section)
 Get full ring (exterior, one of interiors, one from multi) indicated by the specified section.
template<typename Geometry >
void read_wkt (std::string const &wkt, Geometry &geometry)
 Parses OGC Well-Known Text (WKT (Well-Known Text)) into a geometry (any geometry)
template<typename Geometry1 , typename Geometry2 , typename Strategy >
void recalculate (Geometry1 &geometry1, Geometry2 const &geometry2, Strategy const &strategy)
template<typename Geometry1 , typename Geometry2 , typename Mask >
bool relate (Geometry1 const &geometry1, Geometry2 const &geometry2, Mask const &mask)
 Checks relation between a pair of geometries defined by a mask.
template<typename Geometry1 , typename Geometry2 >
de9im::matrix relation (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Calculates the relation between a pair of geometries as defined in DE-9IM.
template<typename Geometry >
void remove_spikes (Geometry &geometry)
template<typename Output , typename Input , typename Distance >
Output return_buffer (Input const &geometry, Distance const &distance, Distance const &chord_length=-1)
 Calculates the buffer of a geometry.
template<typename Point , typename Geometry >
Point return_centroid (Geometry const &geometry)
 Calculates the centroid of a geometry.
template<typename Point , typename Geometry , typename Strategy >
Point return_centroid (Geometry const &geometry, Strategy const &strategy)
 Calculates the centroid of a geometry using the specified strategy.
template<typename Box , typename Geometry >
Box return_envelope (Geometry const &geometry)
 Calculates the envelope of a geometry.
template<typename Geometry >
geometry::point_type< Geometry >
::type 
return_point_on_surface (Geometry const &geometry)
 Returns point guaranteed to lie on the surface of the Geometry.
template<typename Geometry >
void reverse (Geometry &geometry)
 Reverses the points within a geometry.
template<bool Reverse, typename DimensionVector , typename Geometry , typename Sections , typename RobustPolicy >
void sectionalize (Geometry const &geometry, RobustPolicy const &robust_policy, Sections &sections, int source_index=0, std::size_t max_count=10)
 Split a geometry into monotonic sections.
template<typename Geometry >
segment_iterator< Geometry const > segments_begin (Geometry const &geometry)
template<typename Geometry >
segment_iterator< Geometry const > segments_end (Geometry const &geometry)
template<typename AssignPolicy , typename Geometry , typename RobustPolicy , typename Turns , typename InterruptPolicy >
void self_turns (Geometry const &geometry, RobustPolicy const &robust_policy, Turns &turns, InterruptPolicy &interrupt_policy)
 Calculate self intersections of a geometry.
template<std::size_t Dimension, typename Geometry >
void set (Geometry &geometry, typename coordinate_type< Geometry >::type const &value)
 Set coordinate value of a geometry (usually a point)
template<std::size_t Index, std::size_t Dimension, typename Geometry >
void set (Geometry &geometry, typename coordinate_type< Geometry >::type const &value)
 set coordinate value of a Box / Segment
template<std::size_t Dimension, typename Geometry >
void set_from_radian (Geometry &geometry, typename fp_coordinate_type< Geometry >::type const &radians)
 set coordinate value (in radian) to a point
template<std::size_t I, typename Geometry >
void set_radius (Geometry &geometry, typename radius_type< Geometry >::type const &radius)
 Function to set the radius of a circle / sphere / ellipse / etc.
template<typename Geometry , typename Distance , typename Strategy >
void simplify (Geometry const &geometry, Geometry &out, Distance const &max_distance, Strategy const &strategy)
 Simplify a geometry using a specified strategy.
template<typename Geometry , typename Distance >
void simplify (Geometry const &geometry, Geometry &out, Distance const &max_distance)
 Simplify a geometry.
template<typename Point1 , typename Point2 >
void subtract_point (Point1 &p1, Point2 const &p2)
 Subtracts a point to another.
template<typename Point >
void subtract_value (Point &p, typename detail::param< Point >::type value)
 Subtracts the same value to each coordinate of a point.
template<typename Geometry >
svg_manipulator< Geometry > svg (Geometry const &geometry, std::string const &style, int size=-1)
 Manipulator to stream geometries as SVG.
template<typename Geometry , typename TransformStrategy >
void svg_map (std::ostream &stream, std::string const &style, int size, Geometry const &geometry, TransformStrategy const &strategy)
template<typename Range , typename PriorityQueue , typename InitializationVisitor , typename EventVisitor , typename InterruptPolicy >
void sweep (Range const &range, PriorityQueue &queue, InitializationVisitor &initialization_visitor, EventVisitor &event_visitor, InterruptPolicy const &interrupt_policy)
template<typename Range , typename PriorityQueue , typename InitializationVisitor , typename EventVisitor >
void sweep (Range const &range, PriorityQueue &queue, InitializationVisitor &initialization_visitor, EventVisitor &event_visitor)
template<typename Geometry1 , typename Geometry2 , typename Collection >
void sym_difference (Geometry1 const &geometry1, Geometry2 const &geometry2, Collection &output_collection)
 Calculate the symmetric difference of two geometries.
template<typename Geometry >
bool touches (Geometry const &geometry)
 Checks if a geometry \1.
template<typename Geometry1 , typename Geometry2 >
bool touches (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if two geometries \1.
template<typename Geometry1 , typename Geometry2 , typename Strategy >
bool transform (Geometry1 const &geometry1, Geometry2 &geometry2, Strategy const &strategy)
 Transforms from one geometry to another geometry using the specified strategy.
template<typename Geometry1 , typename Geometry2 >
bool transform (Geometry1 const &geometry1, Geometry2 &geometry2)
 Transforms from one geometry to another geometry using a strategy.
template<typename Geometry1 , typename Geometry2 , typename Collection >
void union_ (Geometry1 const &geometry1, Geometry2 const &geometry2, Collection &output_collection)
 Combines two geometries which each other.
template<typename Geometry >
void unique (Geometry &geometry)
 Calculates the minimal set of a geometry.
char visited_char (detail::overlay::visit_info const &v)
template<typename Geometry1 , typename Geometry2 >
bool within (Geometry1 const &geometry1, Geometry2 const &geometry2)
 Checks if the first geometry is completely inside the second geometry.
template<typename Geometry1 , typename Geometry2 , typename Strategy >
bool within (Geometry1 const &geometry1, Geometry2 const &geometry2, Strategy const &strategy)
 Checks if the first geometry is completely inside the second geometry using the specified strategy.
template<typename Geometry >
wkt_manipulator< Geometry > wkt (Geometry const &geometry)
 Main WKT-streaming function.

Variables

int const max_corner = 1
 Index of maximum corner of the box.
int const min_corner = 0
 Index of minimum corner of the box.

Typedef Documentation

typedef boost::make_signed<std::size_t>::type boost::geometry::signed_size_type

Enumeration Type Documentation

Enumerator:
overlay_union 
overlay_intersection 
overlay_difference 
overlay_dissolve 

Flag for iterating a reversible_view in forward or reverse direction.

Enumerator:
iterate_forward 
iterate_reverse 

Function Documentation

template<typename Geometry , int Dimensions>
void boost::geometry::assert_dimension ( )

assert_dimension, enables compile-time checking if coordinate dimensions are as expected

template<typename Geometry , int Dimensions>
void boost::geometry::assert_dimension_less_equal ( )

assert_dimension, enables compile-time checking if coordinate dimensions are as expected

template<typename Geometry , int Dimensions>
void boost::geometry::assert_dimension_greater_equal ( )
template<typename G1 , typename G2 >
void boost::geometry::assert_dimension_equal ( )

assert_dimension_equal, enables compile-time checking if coordinate dimensions of two geometries are equal

template<typename Geometry , typename OutputGeometry , typename Strategy >
void boost::geometry::convex_hull ( Geometry const &  geometry,
OutputGeometry &  out,
Strategy const &  strategy 
)
template<typename Geometry >
bool boost::geometry::is_convex ( Geometry const &  geometry)
template<typename Geometry , typename Type >
Geometry boost::geometry::make ( Type const &  c1,
Type const &  c2,
Type const &  c3,
Type const &  c4 
)
template<typename Geometry , typename Point >
void boost::geometry::point_on_surface ( Geometry const &  geometry,
Point &  point 
)

Assigns a Point guaranteed to lie on the surface of the Geometry.

Template Parameters:
Geometrygeometry type. This also defines the type of the output point
Parameters:
geometryGeometry to take point from
pointPoint to assign
template<typename Geometry >
geometry::point_type<Geometry>::type boost::geometry::return_point_on_surface ( Geometry const &  geometry)

Returns point guaranteed to lie on the surface of the Geometry.

Template Parameters:
Geometrygeometry type. This also defines the type of the output point
Parameters:
geometryGeometry to take point from
Returns:
The Point guaranteed to lie on the surface of the Geometry
template<typename Geometry >
void boost::geometry::remove_spikes ( Geometry &  geometry)
Template Parameters:
Geometrygeometry type
Parameters:
geometrythe geometry to make remove_spikes
template<std::size_t Edge, typename Geometry , typename Extremes , typename Intruders >
bool boost::geometry::extreme_points ( Geometry const &  geometry,
Extremes &  extremes,
Intruders &  intruders 
)

Returns extreme points (for Edge=1 in dimension 1, so the top, for Edge=0 in dimension 0, the right side)

Note:
We could specify a strategy (less/greater) to get bottom/left side too. However, until now we don't need that.
template<typename RangeOfIntervals , typename T >
boost::range_value<RangeOfIntervals>::type::difference_type boost::geometry::maximum_gap ( RangeOfIntervals const &  range_of_intervals,
T &  max_gap_left,
T &  max_gap_right 
)
template<typename RangeOfIntervals >
boost::range_value<RangeOfIntervals>::type::difference_type boost::geometry::maximum_gap ( RangeOfIntervals const &  range_of_intervals)
template<typename Point , typename Geometry >
bool boost::geometry::point_on_border ( Point &  point,
Geometry const &  geometry,
bool  midpoint = false 
)

Take point on a border.

Template Parameters:
Geometrygeometry type. This also defines the type of the output point
Parameters:
pointto assign
geometrygeometry to take point from
midpointboolean flag, true if the point should not be a vertex, but some point in between of two vertices
Returns:
TRUE if successful, else false. It is only false if polygon/line have no points
Note:
for a polygon, it is always a point on the exterior ring
for take_midpoint, it is not taken from two consecutive duplicate vertices, (unless there are no other).
template<typename Geometry1 , typename Geometry2 , typename Strategy >
void boost::geometry::recalculate ( Geometry1 &  geometry1,
Geometry2 const &  geometry2,
Strategy const &  strategy 
)
template<typename Range , typename PriorityQueue , typename InitializationVisitor , typename EventVisitor , typename InterruptPolicy >
void boost::geometry::sweep ( Range const &  range,
PriorityQueue &  queue,
InitializationVisitor &  initialization_visitor,
EventVisitor &  event_visitor,
InterruptPolicy const &  interrupt_policy 
)
template<typename Range , typename PriorityQueue , typename InitializationVisitor , typename EventVisitor >
void boost::geometry::sweep ( Range const &  range,
PriorityQueue &  queue,
InitializationVisitor &  initialization_visitor,
EventVisitor &  event_visitor 
)
template<typename Collection , typename Geometry >
void boost::geometry::collect_vectors ( Collection &  collection,
Geometry const &  geometry 
)
Template Parameters:
CollectionCollection type, should be e.g. std::vector<>
Geometrygeometry type
Parameters:
collectionthe collection of vectors
geometrythe geometry to make collect_vectors
template<typename Geometry , typename VisitPolicy >
bool boost::geometry::is_valid ( Geometry const &  geometry,
VisitPolicy &  visitor 
)
template<bool Reverse, typename Geometry , typename SegmentIdentifier , typename PointOut >
bool boost::geometry::copy_segment_point ( Geometry const &  geometry,
SegmentIdentifier const &  seg_id,
int  offset,
PointOut &  point_out 
)

Helper function, copies a point from a segment.

template<bool Reverse1, bool Reverse2, typename Geometry1 , typename Geometry2 , typename SegmentIdentifier , typename PointOut >
bool boost::geometry::copy_segment_point ( Geometry1 const &  geometry1,
Geometry2 const &  geometry2,
SegmentIdentifier const &  seg_id,
int  offset,
PointOut &  point_out 
)

Helper function, to avoid the same construct several times, copies a point, based on a source-index and two geometries.

template<bool Reverse1, bool Reverse2, typename Geometry1 , typename Geometry2 , typename SegmentIdentifier , typename PointOut >
bool boost::geometry::copy_segment_points ( Geometry1 const &  geometry1,
Geometry2 const &  geometry2,
SegmentIdentifier const &  seg_id,
PointOut &  point1,
PointOut &  point2 
)

Helper function, to avoid the same construct several times, copies a point, based on a source-index and two geometries.

template<bool Reverse1, bool Reverse2, typename Geometry1 , typename Geometry2 , typename SegmentIdentifier , typename PointOut >
bool boost::geometry::copy_segment_points ( Geometry1 const &  geometry1,
Geometry2 const &  geometry2,
SegmentIdentifier const &  seg_id,
PointOut &  point1,
PointOut &  point2,
PointOut &  point3 
)

Helper function, copies three points: two from the specified segment (from, to) and the next one.

template<bool Reverse, typename Geometry , typename SegmentIdentifier , typename RobustPolicy , typename RangeOut >
void boost::geometry::copy_segments ( Geometry const &  geometry,
SegmentIdentifier const &  seg_id,
signed_size_type  to_index,
RobustPolicy const &  robust_policy,
RangeOut &  range_out 
)

Copy segments from a geometry, starting with the specified segment (seg_id) until the specified index (to_index)

char boost::geometry::method_char ( detail::overlay::method_type const &  method)
char boost::geometry::operation_char ( detail::overlay::operation_type const &  operation)
char boost::geometry::visited_char ( detail::overlay::visit_info const &  v)
template<bool Reverse1, bool Reverse2, overlay_type OverlayType, typename Turns , typename Clusters , typename Geometry1 , typename Geometry2 , typename RobustPolicy , typename Strategy >
void boost::geometry::enrich_intersection_points ( Turns &  turns,
Clusters &  clusters,
detail::overlay::operation_type  for_operation,
Geometry1 const &  geometry1,
Geometry2 const &  geometry2,
RobustPolicy const &  robust_policy,
Strategy const &  strategy 
)

All intersection points are enriched with successor information.

Template Parameters:
Turnstype of intersection container (e.g. vector of "intersection/turn point"'s)
Geometry1Any type fulfilling a Geometry Concept
Geometry2Any type fulfilling a Geometry Concept
Strategyside strategy type
Parameters:
turnscontainer containing intersectionpoints
for_operationoperation_type (union or intersection)
geometry1A model of the specified concept
geometry2A model of the specified concept
robust_policypolicy to handle robustness issues
strategystrategy
template<typename Geometry1 , typename Geometry2 , typename RobustPolicy , typename Turns >
void boost::geometry::get_intersection_points ( Geometry1 const &  geometry1,
Geometry2 const &  geometry2,
RobustPolicy const &  robust_policy,
Turns &  turns 
)
template<bool Reverse1, bool Reverse2, typename AssignPolicy , typename Geometry1 , typename Geometry2 , typename RobustPolicy , typename Turns , typename InterruptPolicy >
void boost::geometry::get_turns ( Geometry1 const &  geometry1,
Geometry2 const &  geometry2,
RobustPolicy const &  robust_policy,
Turns &  turns,
InterruptPolicy &  interrupt_policy 
)

Calculate the turn points of two geometries.

Template Parameters:
Geometry1Any type fulfilling a Geometry Concept
Geometry2Any type fulfilling a Geometry Concept
Turnstype of turn-container (e.g. vector of "intersection/turn point"'s)
Parameters:
geometry1A model of the specified concept
geometry2A model of the specified concept
robust_policypolicy to handle robustness issues
turnscontainer which will contain turn points
interrupt_policypolicy determining if process is stopped when intersection is found
template<typename AssignPolicy , typename Geometry , typename RobustPolicy , typename Turns , typename InterruptPolicy >
void boost::geometry::self_turns ( Geometry const &  geometry,
RobustPolicy const &  robust_policy,
Turns &  turns,
InterruptPolicy &  interrupt_policy 
)

Calculate self intersections of a geometry.

Template Parameters:
Geometrygeometry type
Turnstype of intersection container (e.g. vector of "intersection/turn point"'s)
Parameters:
geometrygeometry
robust_policypolicy to handle robustness issues
turnscontainer which will contain intersection points
interrupt_policypolicy determining if process is stopped when intersection is found
template<typename Geometry , typename Section >
ring_return_type<Geometry const>::type boost::geometry::range_by_section ( Geometry const &  geometry,
Section const &  section 
)

Get full ring (exterior, one of interiors, one from multi) indicated by the specified section.

Template Parameters:
Geometrytype
Sectiontype of section to get from
Parameters:
geometrygeometry to take section of
sectionstructure with section
template<bool Reverse, typename DimensionVector , typename Geometry , typename Sections , typename RobustPolicy >
void boost::geometry::sectionalize ( Geometry const &  geometry,
RobustPolicy const &  robust_policy,
Sections &  sections,
int  source_index = 0,
std::size_t  max_count = 10 
)

Split a geometry into monotonic sections.

Template Parameters:
Geometrytype of geometry to check
Sectionstype of sections to create
Parameters:
geometrygeometry to create sections from
robust_policypolicy to handle robustness issues
sectionsstructure with sections
source_indexindex to assign to the ring_identifiers
max_countmaximal number of points per section (defaults to 10, this seems to give the fastest results)
template<typename Iterator >
bool boost::geometry::has_one_element ( Iterator  first,
Iterator  beyond 
)
template<typename Geometry >
point_iterator<Geometry> boost::geometry::points_begin ( Geometry &  geometry)
template<typename Geometry >
point_iterator<Geometry> boost::geometry::points_end ( Geometry &  geometry)
template<typename Geometry >
point_reverse_iterator<Geometry> boost::geometry::points_rbegin ( Geometry &  geometry)
template<typename Geometry >
point_reverse_iterator<Geometry> boost::geometry::points_rend ( Geometry &  geometry)
template<typename Geometry >
segment_iterator<Geometry const> boost::geometry::segments_begin ( Geometry const &  geometry)
template<typename Geometry >
segment_iterator<Geometry const> boost::geometry::segments_end ( Geometry const &  geometry)
template<typename Geometry , typename TransformStrategy >
void boost::geometry::svg_map ( std::ostream &  stream,
std::string const &  style,
int  size,
Geometry const &  geometry,
TransformStrategy const &  strategy 
)
template<typename Point , typename Op >
void boost::geometry::for_each_coordinate ( Point &  point,
Op  operation 
)
template<typename Point , typename Op >
Op boost::geometry::for_each_coordinate ( Point const &  point,
Op  operation 
)
template<typename Point >
bool boost::geometry::has_infinite_coordinate ( Point const &  point)
template<typename Point >
bool boost::geometry::has_nan_coordinate ( Point const &  point)
template<typename Point >
bool boost::geometry::has_non_finite_coordinate ( Point const &  point)

Variable Documentation

Index of minimum corner of the box.

Index of maximum corner of the box.


April 2, 2011

Copyright © 2007-2011 Barend Gehrels, Amsterdam, the Netherlands
Copyright © 2008-2011 Bruno Lalande, Paris, France
Copyright © 2009-2010 Mateusz Loskot, London, UK
Documentation is generated by Doxygen