APM:Libraries
IRLock.cpp
Go to the documentation of this file.
1 /*
2  * IRLock.cpp
3  *
4  * Created on: Nov 12, 2014
5  * Author: MLandes
6  */
7 
8 #include "IRLock.h"
9 
10 // retrieve body frame x and y angles (in radians) to target
11 // returns true if data is available
12 bool IRLock::get_angle_to_target_rad(float &x_angle_rad, float &y_angle_rad) const
13 {
14  // return false if we have no target
15  if (!_flags.healthy) {
16  return false;
17  }
18 
19  // use data from first (largest) object
20  x_angle_rad = atanf(_target_info.pos_x);
21  y_angle_rad = atanf(_target_info.pos_y);
22  return true;
23 }
24 
25 // retrieve body frame unit vector in direction of target
26 // returns true if data is available
28 {
29  // return false if we have no target
30  if (!_flags.healthy) {
31  return false;
32  }
33 
34  // use data from first (largest) object
35  ret.x = -_target_info.pos_y;
36  ret.y = _target_info.pos_x;
37  ret.z = 1.0f;
38  ret /= ret.length();
39  return true;
40 }
bool get_unit_vector_body(Vector3f &ret) const
Definition: IRLock.cpp:27
irlock_target_info _target_info
Definition: IRLock.h:71
T y
Definition: vector3.h:67
T z
Definition: vector3.h:67
bool get_angle_to_target_rad(float &x_angle_rad, float &y_angle_rad) const
Definition: IRLock.cpp:12
float length(void) const
Definition: vector3.cpp:288
struct IRLock::AP_IRLock_Flags _flags
T x
Definition: vector3.h:67