?? worldmodel.h
字號:
double dDist, double dCurSpeed ); int predictNrCyclesToPoint ( ObjectT o, VecPosition posTo ); int predictNrCyclesToObject ( ObjectT objFrom, ObjectT objTo ); void predictStaminaAfterDash ( double dPower, Stamina *sta ); SoccerCommand predictCommandTurnTowards ( ObjectT obj, VecPosition posTo, int iCycles, double dDistBack, bool bMoveBack, VecPosition *pos = NULL, VecPosition *vel = NULL, AngDeg *angBody = NULL ); SoccerCommand predictCommandToMoveToPos ( ObjectT obj, VecPosition posTo, int iCycles, double dDistBack = 2.5, bool bMoveBack = false, VecPosition *pos = NULL, VecPosition *vel = NULL, AngDeg *angBody = NULL ); SoccerCommand predictCommandToInterceptBall( ObjectT obj, SoccerCommand soc, int *iCycles = NULL , VecPosition *posIntercept=NULL, VecPosition *pos = NULL, VecPosition *vel = NULL, AngDeg *angBody = NULL ); bool isCollisionAfterCommand ( SoccerCommand soc ); ////////////////////////// HIGH-LEVEL METHODS (WorldModelHighLevel.C) /////// // methods that return the number of players in a certain area of the field int getNrInSetInRectangle ( ObjectSetT objectSet, Rect *rect = NULL ); int getNrInSetInCircle ( ObjectSetT objectSet, Circle c ); int getNrInSetInCone ( ObjectSetT objectSet, double dWidth, VecPosition start, VecPosition end ); bool isEmptySpace ( ObjectT obj, AngDeg ang, double dDist = 4.0 ); bool coordinateWith ( ObjectT obj ); // method that return the closest or fastest player to a certain pos orobject ObjectT getClosestInSetTo ( ObjectSetT objectSet, ObjectT o , double *dDist = NULL, double dConfThr = -1.0 ); ObjectT getClosestInSetTo ( ObjectSetT objectSet, VecPosition pos, double *dDist = NULL, double dConfThr = -1.0 ); ObjectT getClosestInSetTo ( ObjectSetT objectSet, Line l, VecPosition pos1, VecPosition pos2, double *dDistToLine= NULL, double *dDistPos1To=NULL); ObjectT getClosestRelativeInSet ( ObjectSetT set, double *dDist = NULL ); ObjectT getSecondClosestInSetTo ( ObjectSetT objectSet, ObjectT o, double *dDist = NULL, double dConfThr = -1.0 ); ObjectT getSecondClosestRelativeInSet( ObjectSetT set, double *dDist = NULL ); void createInterceptFeatures ( ); ObjectT getFastestInSetTo ( ObjectSetT objectSet, ObjectT o, int *iCycles = NULL ); ObjectT getFastestInSetTo ( ObjectSetT objectSet, VecPosition pos, VecPosition vel, double dDecay, int *iCycles = NULL ); ObjectT getFurthestInSetTo ( ObjectSetT objectSet, ObjectT o , double *dDist = NULL, double dConfThr = -1.0 ); ObjectT getFurthestRelativeInSet ( ObjectSetT set, double *dDist = NULL ); VecPosition getPosClosestOpponentTo ( double *dDist = NULL, ObjectT o =OBJECT_ILLEGAL); double getMaxTraveledDistance ( ObjectT o ); // various methods dealing with sets of objects ObjectT getFirstEmptySpotInSet ( ObjectSetT objectSet, int iUnknownPlayer=-1); // boolean methods that indicate whether an object fulfills a constraint bool isVisible ( ObjectT o ); bool isBallKickable ( ); bool isBallCatchable ( ); bool isBallHeadingToGoal ( ); bool isBallInOurPossesion ( ); bool isBallInOwnPenaltyArea ( ); bool isInOwnPenaltyArea ( VecPosition pos ); bool isInTheirPenaltyArea ( VecPosition pos ); bool isConfidenceGood ( ObjectT ); bool isConfidenceVeryGood ( ObjectT ); bool isOnside ( ObjectT ); bool isOpponentAtAngle ( AngDeg ang, double dDist ); // various methods that supply specific information about the field Time getTimeFromConfidence ( double dConf ); double getOffsideX ( bool bIncludeComm=true); VecPosition getOuterPositionInField ( VecPosition pos, AngDeg ang, double dDist = 3.0, bool bWithPenalty=true); AngDeg getDirectionOfWidestAngle ( VecPosition posOrg, AngDeg angMin, AngDeg angMax, AngDeg *ang, double dDist ); bool isInField ( VecPosition pos, double dMargin = 1 ); bool isBeforeGoal ( VecPosition pos ); // strategic positioning VecPosition getStrategicPosition ( ObjectT obj, FormationT ft = FT_ILLEGAL ); VecPosition getStrategicPosition ( int iPlayer = -1, FormationT ft = FT_ILLEGAL ); VecPosition getMarkingPosition ( VecPosition pos, double dDist, MarkT mark ); int getClosestPlayerInFormationTo( VecPosition pos, bool bWithGoalie = 1, ObjectT obj=OBJECT_ILLEGAL, PlayerSetT ps = PS_ALL, FormationT ft = FT_ILLEGAL ); // methods for computing the actual argument for a soccer command. double getActualKickPowerRate ( ); double getKickPowerForSpeed ( double dDesiredSpeed ); double getKickSpeedToTravel ( double dDistance, double dEndSpeed ); double getFirstSpeedFromEndSpeed ( double dEndSpeed, double dCycles, double dDecay = -1.0 ); double getFirstSpeedFromDist ( double dDist, double dCycles, double dDecay = -1.0 ); double getEndSpeedFromFirstSpeed ( double dFirstSpeed, double dCycles ); AngDeg getAngleForTurn ( AngDeg angDesiredAngle, double dSpeed, ObjectT o=OBJECT_ILLEGAL); AngDeg getActualTurnAngle ( AngDeg angActualAngle, double dSpeed, ObjectT o=OBJECT_ILLEGAL); double getPowerForDash ( VecPosition posRelTo, AngDeg angBody, VecPosition vel, double dEffort, int iCycles = 1 ); ////////////////////////// VARIOUS (WorldModel.C) /////////////////////////// // constructor WorldModel ( ServerSettings *ss, PlayerSettings *ps, Formations *fs ); ~WorldModel ( ); // print information about WorldModel void show ( ostream &os = cout ); void show ( ObjectSetT set, ostream &os = cout ); void showQueuedCommands ( ostream &os = cout ); void show ( ObjectT o, ostream &os = cout ); // methods that deal with timing information bool waitForNewInformation ( ); // methods that deal with debugging void logObjectInformation ( int iLogLevel, ObjectT o ); void logDrawInfo ( int iLogLevel ); void logCoordInfo ( int iLogLevel ); bool logCircle ( int iLogLevel, VecPosition pos, double dRadius, bool bAll = false ); bool logLine ( int iLogLevel, VecPosition pos1, VecPosition pos2, bool bAll = false ); bool logDrawBallInfo ( int iLogLevel ); void drawCoordinationGraph ( ); // specific static variables char m_colorPlayers[11][8]; /*!< color information with which each player should draw its relevant info*/ int m_iMultX; /*!< This variable denotes with which value the x coordinates of the draw information should be multiplied in order to convert the coordinates to the coordinate system of the monitor*/ int m_iMultY; /*!< This variable denotes with which value the y coordinates of the draw information should be multiplied in order to convert the coordinates to the coordinate system of the monitor*/ bool isFeatureRelevant ( FeatureT type ); Feature getFeature ( FeatureT type ); bool setFeature ( FeatureT type, Feature feature );};#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -