/Src/Dependencies/Boost/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp
http://hadesmem.googlecode.com/ · C++ · 63 lines · 28 code · 14 blank · 21 comment · 0 complexity · 1b08d02f71be7d6380dec71bb4c360f9 MD5 · raw file
- // Boost.Geometry (aka GGL, Generic Geometry Library)
- // QuickBook Example
- // Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
- // 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)
- //[make_2d_point
- //` Shows the usage of make as a generic constructor for different point types
- #include <iostream>
- #include <boost/geometry.hpp>
- #include <boost/geometry/geometries/point_xy.hpp>
- #include <boost/geometry/geometries/register/point.hpp>
- #include <boost/geometry/geometries/adapted/boost_tuple.hpp>
- #include <boost/geometry/geometries/adapted/boost_polygon/point.hpp>
- BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian)
- struct mypoint { float _x, _y; };
- BOOST_GEOMETRY_REGISTER_POINT_2D(mypoint, float, cs::cartesian, _x, _y)
- template <typename Point>
- void construct_and_display()
- {
- using boost::geometry::make;
- using boost::geometry::get;
- Point p = make<Point>(1, 2);
- std::cout << "x=" << get<0>(p) << " y=" << get<1>(p)
- << " (" << typeid(Point).name() << ")"
- << std::endl;
- }
- int main()
- {
- construct_and_display<boost::geometry::model::d2::point_xy<double> >();
- construct_and_display<boost::geometry::model::d2::point_xy<int> >();
- construct_and_display<boost::tuple<double, double> >();
- construct_and_display<boost::polygon::point_data<int> >();
- construct_and_display<mypoint>();
- return 0;
- }
- //]
- //[make_2d_point_output
- /*`
- Output (compiled using gcc):
- [pre
- x=1 y=2 (N5boost8geometry5model2d28point_xyIdNS0_2cs9cartesianEEE)
- x=1 y=2 (N5boost8geometry5model2d28point_xyIiNS0_2cs9cartesianEEE)
- x=1 y=2 (N5boost6tuples5tupleIddNS0_9null_typeES2_S2_S2_S2_S2_S2_S2_EE)
- x=1 y=2 (N5boost7polygon10point_dataIiEE)
- x=1 y=2 (7mypoint)
- ]
- */
- //]