61 lines
1.1 KiB
C++
Executable file
61 lines
1.1 KiB
C++
Executable file
#ifndef _POSITION_TRACKER_H
|
|
#define _POSITION_TRACKER_H
|
|
|
|
#include "../../stdafx.h"
|
|
|
|
class Position_Tracker : public IO_Module
|
|
{
|
|
public:
|
|
Position_Tracker()
|
|
{
|
|
this->parent = NULL;
|
|
this->moduleId = 0;
|
|
this->positionX = 0;
|
|
this->positionY = 0;
|
|
this->orientation = 0;
|
|
}
|
|
|
|
Position_Tracker(uint32 trackerId)
|
|
{
|
|
this->parent = NULL;
|
|
this->moduleId = trackerId;
|
|
this->positionX = 0;
|
|
this->positionY = 0;
|
|
this->orientation = 0;
|
|
}
|
|
|
|
protected:
|
|
float positionX;
|
|
float positionY;
|
|
float orientation;
|
|
|
|
public:
|
|
void Update();
|
|
|
|
// Sets the current position; x and y in mm
|
|
void SetPosition(int newPositionX, int newPositionY, float newOrientation) {
|
|
positionX = newPositionX*(TICKS_PER_CM/10.0f);
|
|
positionY = newPositionY*(TICKS_PER_CM/10.0f);
|
|
orientation = easyAngle(newOrientation);
|
|
}
|
|
|
|
// returns x-koordinate in mm
|
|
int16 GetPositionX()
|
|
{
|
|
return (int16)((positionX*10.0f)/TICKS_PER_CM);
|
|
}
|
|
|
|
// returns y-koordinate in mm
|
|
int16 GetPositionY()
|
|
{
|
|
return (int16)((positionY*10.0f)/TICKS_PER_CM);
|
|
}
|
|
|
|
// returns orientation
|
|
float GetOrientation()
|
|
{
|
|
return orientation;
|
|
}
|
|
};
|
|
|
|
#endif
|