📄 objects.h
字号:
class PlayerObject: public DynamicObject
{
protected:
bool isKnownPlayer; /*!< are we sure about player number */
ObjectT objRangeMin; /*!< Minimum in range of possible player obj*/
ObjectT objRangeMax; /*!< Maximum in range of possible player obj*/
bool isGoalie; /*!< is this object a goalie */
AngDeg angGlobalBodyAngle; /*!< Global body angle */
AngDeg angGlobalNeckAngle; /*!< Global neck angle */
AngDeg angGlobalBodyAngleLastSee;/*!< Global body angle from last see msg */
Time timeGlobalAngles; /*!< Server time of global angles */
int iHeteroPlayerType; /*!< index of heterogeneous player type */
Time m_timeTackle; /*!< time tackle command was observerd */
AngDeg m_angGlobalArm; /*!< global pointing direction of arm */
Time m_timeGlobalArm; /*!< time arm last seen */
private:
AngDeg angRelativeBodyAngle; /*!< Relative body angle to main player */
AngDeg angRelativeNeckAngle; /*!< Relative neck angle to main player */
Time timeRelativeAngles; /*!< Server time of relative angles */
public:
PlayerObject( );
void show( ostream & os = cout );
void show( const char * strTeamName, ostream & os = cout );
// standard get and set methods
bool setPossibleRange ( ObjectT objMin, ObjectT objMax );
bool isInRange ( ObjectT obj, bool bTeamFirst);
ObjectT getMinRange ( );
ObjectT getMaxRange ( );
bool setIsKnownPlayer ( bool b );
bool getIsKnownPlayer ( ) const;
bool setIsGoalie ( bool b );
bool getIsGoalie ( ) const;
bool setRelativeBodyAngle ( AngDeg ang, Time time );
AngDeg getRelativeBodyAngle ( ) const;
bool setGlobalBodyAngle ( AngDeg ang, Time time );
AngDeg getGlobalBodyAngle ( ) const;
bool setRelativeNeckAngle ( AngDeg ang, Time time );
AngDeg getRelativeNeckAngle ( ) const;
bool setGlobalNeckAngle ( AngDeg ang, Time time );
AngDeg getGlobalNeckAngle ( ) const;
bool setTimeRelativeAngles( Time time );
Time getTimeRelativeAngles( ) const;
bool setTimeGlobalAngles ( Time time );
Time getTimeGlobalAngles ( ) const;
bool setGlobalBodyAngleLastSee( AngDeg ang );
AngDeg getGlobalBodyAngleLastSee( ) const;
bool setHeteroPlayerType ( int index ) ;
int getHeteroPlayerType ( ) const;
bool setTimeTackle ( Time time );
Time getTimeTackle ( ) const;
bool setGlobalArm ( AngDeg ang, Time time );
AngDeg getGlobalArm ( ) const;
bool setTimeGlobalArm ( Time time );
Time getTimeGlobalArm ( ) const;
};
/*****************************************************************************/
/********************* CLASS BALLOBJECT **************************************/
/*****************************************************************************/
/*! Class PlayerObject contains RoboCup information that is available for the
ball. No extra variables are added to superclass DynamicObject
*/
class BallObject: public DynamicObject
{
public:
BallObject();
void show( ostream & os = cout );
};
/*****************************************************************************/
/********************* CLASS STAMINA *****************************************/
/*****************************************************************************/
/*! The following stamina information is stored in this class.
- actual stamina
- recovery, determines how much stamina recovers each cycle, decreases
below a certain threshold (never increases)
- effort, determines which percentage of dash power is actually used.
decreases below certain threshold, increases above a higher
threshold.
*/
class Stamina
{
double m_dStamina; /*!< Stamina value (>0) */
double m_dEffort; /*!< Effort value (0..1) */
double m_dRecovery; /*!< Recovery (0..1) */
public:
Stamina( double dSta = 4000.0, double dEff=1.0, double dRec=1.0 );
void show ( ostream & os = cout );
// return value how tired an agent is
TiredNessT getTiredNess( double dRecDecThr, double dStaminaMax );
// standard get and set methods.
double getStamina ( ) const;
bool setStamina ( double d );
double getEffort ( ) const;
bool setEffort ( double d );
double getRecovery ( ) const;
bool setRecovery ( double d );
};
/*****************************************************************************/
/********************* CLASS AGENTOBJECT *************************************/
/*****************************************************************************/
/*! Class AgentObject contains RoboCup information that is available for the
agent. New variables are declared that extend a normal PlayerObject.*/
class AgentObject: public PlayerObject
{
ViewAngleT viewAngle; /*!< View angle of this agent */
ViewQualityT viewQuality; /*!< View quality of this agent */
Stamina stamina; /*!< Stamina (stamina, effort, recovery*/
VecPosition velSpeedRelToNeck; /*!< Velocity vector relative to neck */
AngDeg angBodyAngleRelToNeck; /*!< Relative angle of body with neck */
VecPosition posPositionDifference; /*!< Global pos difference with lastsee*/
bool m_bArmMovable; /*!< Indicates whether can move arm. */
int m_iArmExpires; /*!< Nr. of cycles till arm expires */
VecPosition m_posGlobalArm; ;/*!< Global point to which arm point */
int m_iTackleExpires; /*!< Nr. of cycles till tackle expires */
public:
AgentObject( double dStaminaMax = 4000 );
void show( ostream & os = cout );
void show( const char * strTeamName, ostream & os = cout );
// standard get and set methods
VecPosition getPositionDifference( ) const;
bool setPositionDifference( VecPosition v );
ViewAngleT getViewAngle ( ) const;
bool setViewAngle ( ViewAngleT v );
ViewQualityT getViewQuality ( ) const;
bool setViewQuality ( ViewQualityT v );
Stamina getStamina ( ) const;
bool setStamina ( Stamina sta );
VecPosition getSpeedRelToNeck ( ) const;
bool setSpeedRelToNeck ( VecPosition v );
bool setGlobalNeckAngle ( AngDeg ang );
AngDeg getBodyAngleRelToNeck( ) const;
bool setBodyAngleRelToNeck( AngDeg ang );
bool getArmMovable ( ) const;
bool setArmMovable ( bool b );
int getArmExpires ( ) const;
bool setArmExpires ( int i );
VecPosition getGlobalArmPosition ( ) const;
bool setGlobalArmPosition ( VecPosition v );
int getTackleExpires ( ) const;
bool setTackleExpires ( int i );
} ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -