#pragma once
|
|
#include <vector>
|
#include "SPosition2D.h"
|
|
struct SCalculateResult
|
{
|
SCalculateResult()
|
{
|
Reset();
|
}
|
|
void Reset()
|
{
|
dStraightLineA = 0.;
|
dStraightLineB = 0.;
|
dOrthogonalLineA = 0.;
|
dOrthogonalLineB = 0.;
|
dStraghtValue = 0.;
|
dOrthogonalValue = 0.;
|
dOrthogonalTheta = 0.;
|
}
|
|
double dStraightLineA;
|
double dStraightLineB;
|
double dOrthogonalLineA;
|
double dOrthogonalLineB;
|
|
double dStraghtValue;
|
double dOrthogonalValue;
|
double dOrthogonalTheta;
|
};
|
typedef std::vector<SCalculateResult> VectorCalculateResult;
|
typedef std::vector<SCalculateResult>::iterator VectorCalculateResultIt;
|
typedef std::vector<SCalculateResult>::const_iterator constVectorCalculateResultIt;
|
|
typedef std::vector<double> VectorDouble;
|
typedef std::vector<double>::iterator VectorDoubleIt;
|
typedef std::vector<double>::const_iterator constVectorDoubleIt;
|
|
class AFX_EXT_CLASS CMotorCalculator
|
{
|
public:
|
CMotorCalculator(int nIndex=-1);
|
virtual ~CMotorCalculator(void);
|
void Reset();
|
|
void SetDesignPosition(const VectorDouble& vectorPosX, const VectorDouble& vectorPosY);
|
void SetDesignPosition(const VectorPosition2D& vectorDesignPos) { m_vectorDesignPos = vectorDesignPos; }
|
void SetMotorPosition(const VectorDouble& vectorPosX, const VectorDouble& vectorPosY);
|
void SetMotorPosition(const VectorPosition2D& vectorMotorPos) { m_vectorMotorPos = vectorMotorPos; }
|
|
const VectorPosition2D* GetDesignPosition() { return &m_vectorDesignPos; }
|
const VectorPosition2D* GetMotorPosition() { return &m_vectorMotorPos; }
|
const SCalculateResult* GetCalculateResult() { return &m_sCalculateResult; }
|
|
int CalculateResult();
|
|
protected:
|
int m_nIndex;
|
VectorPosition2D m_vectorDesignPos;
|
VectorPosition2D m_vectorMotorPos;
|
SCalculateResult m_sCalculateResult;
|
|
};
|