diff options
Diffstat (limited to 'boost/geometry/multi/strategies/cartesian/centroid_average.hpp')
-rw-r--r-- | boost/geometry/multi/strategies/cartesian/centroid_average.hpp | 97 |
1 files changed, 1 insertions, 96 deletions
diff --git a/boost/geometry/multi/strategies/cartesian/centroid_average.hpp b/boost/geometry/multi/strategies/cartesian/centroid_average.hpp index f28daf20bb..ce614e2e76 100644 --- a/boost/geometry/multi/strategies/cartesian/centroid_average.hpp +++ b/boost/geometry/multi/strategies/cartesian/centroid_average.hpp @@ -15,102 +15,7 @@ #define BOOST_GEOMETRY_MULTI_STRATEGIES_CARTESIAN_CENTROID_AVERAGE_HPP -#include <boost/numeric/conversion/cast.hpp> -#include <boost/type_traits.hpp> - -#include <boost/geometry/core/coordinate_type.hpp> -#include <boost/geometry/core/point_type.hpp> -#include <boost/geometry/arithmetic/arithmetic.hpp> -#include <boost/geometry/strategies/centroid.hpp> - - -namespace boost { namespace geometry -{ - -namespace strategy { namespace centroid -{ - - -/*! -\brief Centroid calculation taking average of points -\ingroup strategies -*/ -template -< - typename PointCentroid, - typename Point = PointCentroid -> -class average -{ -private : - - /*! subclass to keep state */ - class sum - { - friend class average; - int count; - PointCentroid centroid; - - public : - inline sum() - : count(0) - { - assign_zero(centroid); - } - }; - -public : - typedef sum state_type; - typedef PointCentroid centroid_point_type; - typedef Point point_type; - - static inline void apply(Point const& p, sum& state) - { - add_point(state.centroid, p); - state.count++; - } - - static inline void result(sum const& state, PointCentroid& centroid) - { - centroid = state.centroid; - divide_value(centroid, state.count); - } - -}; - - -#ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS - - -namespace services -{ - -template <typename Point, std::size_t DimensionCount, typename Geometry> -struct default_strategy -< - cartesian_tag, - pointlike_tag, - DimensionCount, - Point, - Geometry -> -{ - typedef average - < - Point, - typename point_type<Geometry>::type - > type; -}; - -} // namespace services - -#endif - - -}} // namespace strategy::centroid - - -}} // namespace boost::geometry +#include <boost/geometry/strategies/cartesian/centroid_average.hpp> #endif // BOOST_GEOMETRY_MULTI_STRATEGIES_CARTESIAN_CENTROID_AVERAGE_HPP |