55 lines
1.3 KiB
C
55 lines
1.3 KiB
C
/*
|
||
* © Copyright 2014 – Urheberrechtshinweis
|
||
* Alle Rechte vorbehalten / All Rights Reserved
|
||
*
|
||
* Programmcode ist urheberrechtlich geschuetzt.
|
||
* Das Urheberrecht liegt, soweit nicht ausdruecklich anders gekennzeichnet, bei Frank Ebner.
|
||
* Keine Verwendung ohne explizite Genehmigung.
|
||
* (vgl. § 106 ff UrhG / § 97 UrhG)
|
||
*/
|
||
|
||
#ifndef WALKSTATEHEADING_H
|
||
#define WALKSTATEHEADING_H
|
||
|
||
#include "../../../../geo/Heading.h"
|
||
|
||
/**
|
||
* base-class e.g. needed for GridWalkHeading and GridWalkHeadingControl to work
|
||
*/
|
||
struct WalkStateHeading {
|
||
|
||
/** used for better naming: heading.error instead of headingError */
|
||
struct _Heading {
|
||
|
||
/**
|
||
* the direction [0:2pi] the walk should move to
|
||
* e.g. indiciated by:
|
||
* compass
|
||
* integration over gyroscope values
|
||
*/
|
||
Heading direction;
|
||
|
||
/**
|
||
* (cumulative) error between walked edges and requested direction (above).
|
||
* is used to ensure that (even though the grid contains only 45° edges) we
|
||
* approximately walk into the requested direction.
|
||
*/
|
||
float error = 0;
|
||
|
||
/** ctor */
|
||
_Heading(const Heading direction, const float error) : direction(direction), error(error) {;}
|
||
|
||
} heading;
|
||
|
||
|
||
|
||
|
||
/** ctor */
|
||
explicit WalkStateHeading(const Heading& direction, const float error) : heading(direction, error) {;}
|
||
|
||
};
|
||
|
||
|
||
|
||
#endif // WALKSTATEHEADING_H
|