?? sir_pf_share.h
字號:
#pragma once
#include <vector>
#include <math.h>
namespace PF_SPA
{
/**
*狀態變量的范圍,及部分與之相關的函數,狀態范圍的單位為像素數,狀態變量范圍的坐標系為狀態的坐標系,比如機器人世界坐標系
*/
struct StateRange
{
StateRange(float Xmin,float Xmax,float Ymin,float Ymax,float OriMin,float OriMax)//三維的默認構造函數
{
AddStateRange(0,Xmin,Xmax);
AddStateRange(1,Ymin,Ymax);
AddStateRange(2,OriMin,OriMax);
}
~StateRange()
{
}
std::vector<std::vector<float>>m_vStateRage;///<狀態空間每一維的大小范圍
bool CheckRangeVal(float MinVal,float MaxVal)
{
return MaxVal>=MinVal?true:false;
}
/**
*@brief 添加狀態范圍到范圍變量m_vStateRage中
*
*@parm DimensionIndex狀態維數下標0開始
*@parm MinVal 當前狀態最小值
*@parm MaxVal 當前狀態最大值
*/
bool AddStateRange(unsigned DimensionIndex,float MinVal,float MaxVal)
{
if (CheckRangeVal(MinVal,MaxVal))
{
if (DimensionIndex>=m_vStateRage.size())//若輸入的狀態維數下標超過了已有范圍則直接壓入
{
std::vector<float>Range;
Range.push_back(MinVal);
Range.push_back(MaxVal);
m_vStateRage.push_back(Range);
}
else
{
m_vStateRage[DimensionIndex][0]=MinVal;
m_vStateRage[DimensionIndex][1]=MaxVal;
}
}
return true;
}
/**
*@brief 查找范圍變量m_vStateRage內容,有則為真,否則返回假
*
*@parm DimensionIndex狀態維數下標0開始
*@parm MinVal 當前狀態最小值
*@parm MaxVal 當前狀態最大值
*/
bool QueryStateRange(unsigned DimensionIndex,float& MinVal,float& MaxVal)
{
if (DimensionIndex<m_vStateRage.size())//有效范圍內
{
MinVal=m_vStateRage[DimensionIndex][0];
MaxVal=m_vStateRage[DimensionIndex][1];
return true;
}
else
{
return false;
}
}
/**
*@brief 查找范圍變量m_vStateRage的維數,返回的維數是從1開始的
*
*/
unsigned QueryStateDimension()
{
return m_vStateRage.size();
}
};
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -