1 // Boost.Geometry
2 // QuickBook Example
3 
4 // Copyright (c) 2020, Aditya Mohan
5 
6 // Use, modification and distribution is subject to the Boost Software License,
7 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
9 
10 //[dot_product
11 //` Calculate the dot product of two points
12 
13 #include <iostream>
14 
15 #include <boost/geometry.hpp>
16 #include <boost/geometry/arithmetic/dot_product.hpp>
17 #include <boost/geometry/geometries/adapted/boost_array.hpp>
18 
19 namespace bg = boost::geometry; /*< Convenient namespace alias >*/
20 
BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)21 BOOST_GEOMETRY_REGISTER_BOOST_ARRAY_CS(cs::cartesian)
22 
23 
24 int main()
25 {
26      double dp1,dp2,dp3,dp4;
27      bg::model::point<double, 3, bg::cs::cartesian> point1(1.0, 2.0, 3.0);
28      bg::model::point<double, 3, bg::cs::cartesian> point2(4.0, 5.0, 6.0);
29 
30      //Example 1
31      dp1 = bg::dot_product(point1, point2);
32 
33      std::cout << "Dot Product 1: "<< dp1 << std::endl;
34 
35      bg::model::point<double, 2, bg::cs::cartesian> point3(3.0, 2.0);
36      bg::model::point<double, 2, bg::cs::cartesian> point4(4.0, 7.0);
37 
38      //Example 2
39      dp2 = bg::dot_product(point3, point4);
40 
41      std::cout << "Dot Product 2: "<< dp2 << std::endl;
42 
43      boost::array<double, 2> a =  {1, 2};
44      boost::array<double, 2> b =  {2, 3};
45 
46      //Example 3
47      dp3 = bg::dot_product(a, b);
48 
49      std::cout << "Dot Product 3: "<< dp3 << std::endl;
50 
51      return 0;
52 
53 }
54 
55 //]
56 
57 //[dot_product_output
58 /*`
59 Output:
60 [pre
61 Dot Product 1: 32
62 Dot Product 2: 26
63 Dot Product 3: 8
64 ]
65 */
66 //]
67