farm-ng-core
conversions.h
Go to the documentation of this file.
1 // Copyright 2022, farm-ng inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #pragma once
16 
17 #include <Eigen/Dense>
19 #include <sophus/concepts/point.h>
20 #include <sophus/lie/se3.h>
21 
22 namespace farm_ng {
23 
24 /// Converts meters [m] to inches [in]
25 template <sophus::concepts::RealScalarType T>
27  return m / 0.0254f;
28 }
29 
30 /// Converts inches [in] to meters [m]
31 template <sophus::concepts::RealScalarType T>
32 T metersFromInches(T inches) {
33  return 0.0254 * inches;
34 }
35 
36 /// Converts feet [ft] to meters [m]
37 template <sophus::concepts::RealScalarType T>
38 T metersFromFeet(T feet) {
39  return metersFromInches(12.0 * feet);
40 }
41 
42 /// Converts meters [m] to feet [ft]
43 template <sophus::concepts::RealScalarType T>
44 T feetFromMeters(T meters) {
45  return inchesFromMeters(meters) / 12.0;
46 }
47 
48 /// Converts radians to degrees
49 template <sophus::concepts::RealScalarType T>
50 T degFromRad(T rad) {
51  return T(180.0) / M_PI * rad;
52 }
53 
54 /// Converts degrees to radians
55 template <sophus::concepts::RealScalarType T>
56 T radFromDeg(T deg) {
57  return M_PI / T(180.0) * deg;
58 }
59 
60 template <sophus::concepts::RealEigenDenseType TPoint>
61 auto radFromDeg(TPoint const& v_deg) {
62  return radFromDeg(typename TPoint::Scalar(1.0)) * v_deg;
63 }
64 
65 /// Converts radians to arc minutes (60th of a degree)
66 template <sophus::concepts::RealScalarType T>
67 T arcMinuteFromRad(T rad) {
68  return T(60.) * degFromRad(rad);
69 }
70 
71 /// Converts arc minutes (60th of a degree) to radians
72 template <sophus::concepts::RealScalarType T>
73 T radFromArcMinute(T arc_minute) {
74  return radFromDeg(arc_minute / T(60.));
75 }
76 
77 } // namespace farm_ng
farm_ng
Definition: backtrace.cpp:102
point.h
logger.h
farm_ng::radFromArcMinute
T radFromArcMinute(T arc_minute)
Converts arc minutes (60th of a degree) to radians.
Definition: conversions.h:73
farm_ng::degFromRad
T degFromRad(T rad)
Converts radians to degrees.
Definition: conversions.h:50
farm_ng::feetFromMeters
T feetFromMeters(T meters)
Converts meters [m] to feet [ft].
Definition: conversions.h:44
farm_ng::inchesFromMeters
T inchesFromMeters(T m)
Converts meters [m] to inches [in].
Definition: conversions.h:26
farm_ng::metersFromFeet
T metersFromFeet(T feet)
Converts feet [ft] to meters [m].
Definition: conversions.h:38
farm_ng::radFromDeg
T radFromDeg(T deg)
Converts degrees to radians.
Definition: conversions.h:56
se3.h
farm_ng::arcMinuteFromRad
T arcMinuteFromRad(T rad)
Converts radians to arc minutes (60th of a degree)
Definition: conversions.h:67
farm_ng::metersFromInches
T metersFromInches(T inches)
Converts inches [in] to meters [m].
Definition: conversions.h:32