A message field for an angle measurement which does not lose precision at very high angles. More...
#include <info.hpp>
Public Member Functions | |
| double | get () const |
| If the field has a value, returns that value as a double; otherwise, returns a default. More... | |
| void | get (int64_t *revolutions, float *radian_offset) const |
| If the field has a value, returns that value in the int64 and float parameters passed in; otherwise, returns a default. More... | |
| bool | has () const |
| True if (and only if) the field has a value. More... | |
| HighResAngleField (HebiInfoPtr internal, HebiInfoHighResAngleField field) | |
| operator bool () const | |
Allows casting to a bool to check if the field has a value without directly calling has(). More... | |
Private Attributes | |
| HebiInfoHighResAngleField const | field_ |
| HebiInfoPtr const | internal_ |
A message field for an angle measurement which does not lose precision at very high angles.
This field is represented as an int64_t for the number of revolutions and a float for the radian offset from that number of revolutions.
| hebi::Info::HighResAngleField::HighResAngleField | ( | HebiInfoPtr | internal, |
| HebiInfoHighResAngleField | field | ||
| ) |
| double hebi::Info::HighResAngleField::get | ( | ) | const |
| void hebi::Info::HighResAngleField::get | ( | int64_t * | revolutions, |
| float * | radian_offset | ||
| ) | const |
If the field has a value, returns that value in the int64 and float parameters passed in; otherwise, returns a default.
Note that this maintains the full precision of the underlying angle measurement, even for very large numbers of revolutions.
| revolutions | The number of full revolutions |
| radian_offset | The offset from the given number of full revolutions. Note that this is usually between 0 and 2*M_PI, but callers should not assume this. |
| bool hebi::Info::HighResAngleField::has | ( | ) | const |
|
explicit |
Allows casting to a bool to check if the field has a value without directly calling has().
This can be used as in the following (assuming 'parent' is a parent message, and this field is called 'myField')
|
private |
|
private |