Point Cloud Library (PCL) 1.14.0
Loading...
Searching...
No Matches
angles.hpp
1/*
2 * Software License Agreement (BSD License)
3 *
4 * Point Cloud Library (PCL) - www.pointclouds.org
5 * Copyright (c) 2010, Willow Garage, Inc.
6 * Copyright (c) 2012-, Open Perception, Inc.
7 *
8 * All rights reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 *
14 * * Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * * Redistributions in binary form must reproduce the above
17 * copyright notice, this list of conditions and the following
18 * disclaimer in the documentation and/or other materials provided
19 * with the distribution.
20 * * Neither the name of the copyright holder(s) nor the names of its
21 * contributors may be used to endorse or promote products derived
22 * from this software without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27 * FOR a PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 *
37 */
38
39#ifndef PCL_COMMON_ANGLES_IMPL_HPP_
40#define PCL_COMMON_ANGLES_IMPL_HPP_
41
42#include <cmath>
43#include <pcl/pcl_macros.h>
44
45namespace pcl
46{
47 inline float
48 normAngle (float alpha)
49 {
50 return (alpha >= 0 ?
51 std::fmod (alpha + static_cast<float>(M_PI),
52 2.0f * static_cast<float>(M_PI))
53 - static_cast<float>(M_PI)
54 :
55 -(std::fmod (static_cast<float>(M_PI) - alpha,
56 2.0f * static_cast<float>(M_PI))
57 - static_cast<float>(M_PI)));
58 }
59
60 inline float
61 rad2deg (float alpha)
62 {
63 return (alpha * 57.29578f);
64 }
65
66 inline float
67 deg2rad (float alpha)
68 {
69 return (alpha * 0.017453293f);
70 }
71
72 inline double
73 rad2deg (double alpha)
74 {
75 return (alpha * 57.29578);
76 }
77
78 inline double
79 deg2rad (double alpha)
80 {
81 return (alpha * 0.017453293);
82 }
83}
84
85#endif // PCL_COMMON_ANGLES_IMPL_HPP_
86
float deg2rad(float alpha)
Convert an angle from degrees to radians.
Definition angles.hpp:67
float rad2deg(float alpha)
Convert an angle from radians to degrees.
Definition angles.hpp:61
float normAngle(float alpha)
Normalize an angle to (-PI, PI].
Definition angles.hpp:48
Defines all the PCL and non-PCL macros used.
#define M_PI
Definition pcl_macros.h:201