boost/libs/geometry/doc/generated/arithmetic.qbk
2021-10-05 21:37:46 +02:00

444 lines
9.9 KiB
Plaintext

[/============================================================================
Boost.Geometry (aka GGL, Generic Geometry Library)
Copyright (c) 2007-2013 Barend Gehrels, Amsterdam, the Netherlands.
Copyright (c) 2008-2013 Bruno Lalande, Paris, France.
Copyright (c) 2009-2013 Mateusz Loskot, 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)
=============================================================================/]
[/ Generated by doxygen_xml2qbk 1.1.1, don't change, will be overwritten automatically]
[/ Generated from doxy/doxygen_output/xml/group__arithmetic.xml]
[section:add_point add_point]
'''<indexterm><primary>add_point</primary></indexterm>'''
Adds a point to another.
[heading Description]
The coordinates of the second point will be added to those of the first point. The second point is not modified.
[heading Synopsis]
``template<typename Point1, typename Point2>
void add_point(Point1 & p1, Point2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point1 &] [Any type fulfilling a Point Concept ] [p1] [first point ]]
[[Point2 const &] [Any type fulfilling a Point Concept ] [p2] [second point ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:add_value add_value]
'''<indexterm><primary>add_value</primary></indexterm>'''
Adds the same value to each coordinate of a point.
[heading Synopsis]
``template<typename Point>
void add_value(Point & p, typename detail::param< Point >::type value)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point &] [Any type fulfilling a Point Concept ] [p] [point ]]
[[typename detail::param< Point >::type] [] [value] [value to add ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:assign_point assign_point]
'''<indexterm><primary>assign_point</primary></indexterm>'''
Assign a point with another.
[heading Description]
The coordinates of the first point will be assigned those of the second point. The second point is not modified.
[heading Synopsis]
``template<typename Point1, typename Point2>
void assign_point(Point1 & p1, Point2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point1 &] [Any type fulfilling a Point Concept ] [p1] [first point ]]
[[Point2 const &] [Any type fulfilling a Point Concept ] [p2] [second point ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:assign_value assign_value]
'''<indexterm><primary>assign_value</primary></indexterm>'''
Assign each coordinate of a point the same value.
[heading Synopsis]
``template<typename Point>
void assign_value(Point & p, typename detail::param< Point >::type value)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point &] [Any type fulfilling a Point Concept ] [p] [point ]]
[[typename detail::param< Point >::type] [] [value] [value to assign ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:cross_product_2 cross_product]
'''<indexterm><primary>cross_product</primary></indexterm>'''
Computes the cross product of two vectors.
[heading Description]
All vectors should have the same dimension, 3 or 2.
[heading Synopsis]
``template<typename ResultP, typename P1, typename P2, std::enable_if_t< dimension< ResultP >::value !=3||! traits::make< ResultP >::is_specialized, int >>
ResultP cross_product(P1 const & p1, P2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[ResultP] [] [ - ] [Must be specified]]
[[std::enable_if_t< dimension< ResultP >::value !=3||! traits::make< ResultP >::is_specialized, int >] [] [ - ] [Must be specified]]
[[P1 const &] [] [p1] [first vector ]]
[[P2 const &] [] [p2] [second vector ]]
]
[heading Returns]
the cross product vector
[heading Header]
`#include <boost/geometry/arithmetic/cross_product.hpp>`
[endsect]
[section:cross_product_2 cross_product]
'''<indexterm><primary>cross_product</primary></indexterm>'''
Computes the cross product of two vectors.
[heading Description]
All vectors should have the same dimension, 3 or 2.
[heading Synopsis]
``template<typename P, std::enable_if_t< dimension< P >::value !=3||! traits::make< P >::is_specialized, int >>
P cross_product(P const & p1, P const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[std::enable_if_t< dimension< P >::value !=3||! traits::make< P >::is_specialized, int >] [] [ - ] [Must be specified]]
[[P const &] [] [p1] [first vector ]]
[[P const &] [] [p2] [second vector ]]
]
[heading Returns]
the cross product vector
[heading Header]
`#include <boost/geometry/arithmetic/cross_product.hpp>`
[heading Examples]
[cross_product] [cross_product_output]
[endsect]
[section:divide_point divide_point]
'''<indexterm><primary>divide_point</primary></indexterm>'''
Divides a point by another.
[heading Description]
The coordinates of the first point will be divided by those of the second point. The second point is not modified.
[heading Synopsis]
``template<typename Point1, typename Point2>
void divide_point(Point1 & p1, Point2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point1 &] [Any type fulfilling a Point Concept ] [p1] [first point ]]
[[Point2 const &] [Any type fulfilling a Point Concept ] [p2] [second point ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:divide_value divide_value]
'''<indexterm><primary>divide_value</primary></indexterm>'''
Divides each coordinate of the same point by a value.
[heading Synopsis]
``template<typename Point>
void divide_value(Point & p, typename detail::param< Point >::type value)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point &] [Any type fulfilling a Point Concept ] [p] [point ]]
[[typename detail::param< Point >::type] [] [value] [value to divide by ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:dot_product dot_product]
'''<indexterm><primary>dot_product</primary></indexterm>'''
Computes the dot product (or scalar product) of 2 vectors (points).
[heading Synopsis]
``template<typename Point1, typename Point2>
constexpr select_coordinate_type<Point1, Point2>::type dot_product(Point1 const & p1, Point2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point1 const &] [Any type fulfilling a Point Concept ] [p1] [first point ]]
[[Point2 const &] [Any type fulfilling a Point Concept ] [p2] [second point ]]
]
[heading Returns]
the dot product
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/dot_product.hpp>`
[heading Examples]
[dot_product] [dot_product_output]
[endsect]
[section:multiply_point multiply_point]
'''<indexterm><primary>multiply_point</primary></indexterm>'''
Multiplies a point by another.
[heading Description]
The coordinates of the first point will be multiplied by those of the second point. The second point is not modified.
[heading Synopsis]
``template<typename Point1, typename Point2>
void multiply_point(Point1 & p1, Point2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point1 &] [Any type fulfilling a Point Concept ] [p1] [first point ]]
[[Point2 const &] [Any type fulfilling a Point Concept ] [p2] [second point ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:multiply_value multiply_value]
'''<indexterm><primary>multiply_value</primary></indexterm>'''
Multiplies each coordinate of a point by the same value.
[heading Synopsis]
``template<typename Point>
void multiply_value(Point & p, typename detail::param< Point >::type value)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point &] [Any type fulfilling a Point Concept ] [p] [point ]]
[[typename detail::param< Point >::type] [] [value] [value to multiply by ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:subtract_point subtract_point]
'''<indexterm><primary>subtract_point</primary></indexterm>'''
Subtracts a point to another.
[heading Description]
The coordinates of the second point will be subtracted to those of the first point. The second point is not modified.
[heading Synopsis]
``template<typename Point1, typename Point2>
void subtract_point(Point1 & p1, Point2 const & p2)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point1 &] [Any type fulfilling a Point Concept ] [p1] [first point ]]
[[Point2 const &] [Any type fulfilling a Point Concept ] [p2] [second point ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]
[section:subtract_value subtract_value]
'''<indexterm><primary>subtract_value</primary></indexterm>'''
Subtracts the same value to each coordinate of a point.
[heading Synopsis]
``template<typename Point>
void subtract_value(Point & p, typename detail::param< Point >::type value)``
[heading Parameters]
[table
[[Type] [Concept] [Name] [Description] ]
[[Point &] [Any type fulfilling a Point Concept ] [p] [point ]]
[[typename detail::param< Point >::type] [] [value] [value to subtract ]]
]
[heading Header]
Either
`#include <boost/geometry.hpp>`
Or
`#include <boost/geometry/arithmetic/arithmetic.hpp>`
[endsect]