Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

WorldModel Member List

This is the complete list of members for WorldModel, including all inherited members.
addOneToGoalDiff()WorldModel
agentObjectWorldModel [private]
averageParticles(VecPosition posArray[], int iLength)WorldModel [private]
BallWorldModel [private]
bNewInfoWorldModel [private]
bsCheckBallWorldModel [private]
calculateAngleAgentWithPos(VecPosition pos)WorldModel [private]
calculatePosAgentWith2Flags(ObjectT objFlag1, ObjectT objFlag2)WorldModel [private]
calculateStateAgent(VecPosition *posGlobal, VecPosition *velGlobal, AngDeg *angGlobal)WorldModel [private]
calculateStateAgent2(VecPosition *posGlobal, VecPosition *velGlobal, AngDeg *angGlobal)WorldModel [private]
calculateStateAgent3(VecPosition *posGlobal, VecPosition *velGlobal, AngDeg *angGlobal)WorldModel [private]
calculateStateBall(VecPosition *posGlobal, VecPosition *velGlobal)WorldModel [private]
calculateStatePlayer(ObjectT o, VecPosition *posGlobal, VecPosition *velGlobal)WorldModel [private]
calculateVelocityDynamicObject(ObjectT o)WorldModel [private]
checkParticlesAgent(AngDeg angGlobalNeck)WorldModel [private]
checkParticlesBall(VecPosition posArray[], VecPosition velArray[], int iLength, int *iNrLeft)WorldModel [private]
cond_newInfoWorldModel [private]
coordinateWith(ObjectT obj)WorldModel
createInterceptFeatures()WorldModel
drawCoordinationGraph()WorldModel
dTotalVarPosWorldModel [private]
dTotalVarVelWorldModel [private]
FlagsWorldModel [private]
formationsWorldModel [private]
getActualKickPowerRate()WorldModel
getActualTurnAngle(AngDeg angActualAngle, double dSpeed, ObjectT o=OBJECT_ILLEGAL)WorldModel
getAgentArmExpires()WorldModel
getAgentArmMovable()WorldModel
getAgentArmPosition()WorldModel
getAgentBodyAngleRelToNeck() constWorldModel
getAgentEffort() constWorldModel
getAgentGlobalBodyAngle()WorldModel
getAgentGlobalNeckAngle() constWorldModel
getAgentGlobalPosition() constWorldModel
getAgentGlobalVelocity() constWorldModel
getAgentIndex() constWorldModel
getAgentObjectType() constWorldModel
getAgentSpeed() constWorldModel
getAgentStamina() constWorldModel
getAgentTiredNess() constWorldModel
getAgentViewAngle() constWorldModel
getAgentViewFrequency(ViewAngleT va=VA_ILLEGAL, ViewQualityT vq=VQ_ILLEGAL)WorldModel
getAgentViewQuality() constWorldModel
getAngleForTurn(AngDeg angDesiredAngle, double dSpeed, ObjectT o=OBJECT_ILLEGAL)WorldModel
getBallDirection()WorldModel
getBallPos()WorldModel
getBallSpeed()WorldModel
getChangeViewCommand()WorldModel
getCheckBallStatus() constWorldModel
getClosestInSetTo(ObjectSetT objectSet, ObjectT o, double *dDist=NULL, double dConfThr=-1.0)WorldModel
getClosestInSetTo(ObjectSetT objectSet, VecPosition pos, double *dDist=NULL, double dConfThr=-1.0)WorldModel
getClosestInSetTo(ObjectSetT objectSet, Line l, VecPosition pos1, VecPosition pos2, double *dDistToLine=NULL, double *dDistPos1To=NULL)WorldModel
getClosestPlayerInFormationTo(VecPosition pos, bool bWithGoalie=1, ObjectT obj=OBJECT_ILLEGAL, PlayerSetT ps=PS_ALL, FormationT ft=FT_ILLEGAL)WorldModel
getClosestRelativeInSet(ObjectSetT set, double *dDist=NULL)WorldModel
getCommunicationString()WorldModel
getConfidence(ObjectT o)WorldModel
getCurrentCycle()WorldModel
getCurrentTime()WorldModel
getDashPowerRate(ObjectT obj)WorldModel
getDirectionOfWidestAngle(VecPosition posOrg, AngDeg angMin, AngDeg angMax, AngDeg *ang, double dDist)WorldModel
getEffectiveMaxSpeed(ObjectT obj, bool bWithNoise=false)WorldModel
getEffortMax(ObjectT obj)WorldModel
getEndSpeedFromFirstSpeed(double dFirstSpeed, double dCycles)WorldModel
getFastestInSetTo(ObjectSetT objectSet, ObjectT o, int *iCycles=NULL)WorldModel
getFastestInSetTo(ObjectSetT objectSet, VecPosition pos, VecPosition vel, double dDecay, int *iCycles=NULL)WorldModel
getFeature(FeatureT type)WorldModel
getFirstEmptySpotInSet(ObjectSetT objectSet, int iUnknownPlayer=-1)WorldModel
getFirstSpeedFromDist(double dDist, double dCycles, double dDecay=-1.0)WorldModel
getFirstSpeedFromEndSpeed(double dEndSpeed, double dCycles, double dDecay=-1.0)WorldModel
getFurthestInSetTo(ObjectSetT objectSet, ObjectT o, double *dDist=NULL, double dConfThr=-1.0)WorldModel
getFurthestRelativeInSet(ObjectSetT set, double *dDist=NULL)WorldModel
getGlobalAngle(ObjectT o)WorldModel
getGlobalArmDirection(ObjectT o)WorldModel
getGlobalBodyAngle(ObjectT o)WorldModel
getGlobalBodyAngleLastSee(ObjectT o)WorldModel
getGlobalNeckAngle(ObjectT o)WorldModel
getGlobalPosition(ObjectT o)WorldModel
getGlobalPositionLastSee(ObjectT o)WorldModel
getGlobalVelocity(ObjectT o)WorldModel
getGlobalVelocityLastSee(ObjectT o)WorldModel
getGoalDiff() constWorldModel
getHeteroInfoPlayer(ObjectT obj)WorldModel
getHeteroPlayerType(ObjectT obj)WorldModel
getInertiaMoment(ObjectT obj)WorldModel
getInfoHeteroPlayer(int iIndex)WorldModel
getKickPowerForSpeed(double dDesiredSpeed)WorldModel
getKickSpeedToTravel(double dDistance, double dEndSpeed)WorldModel
getLastOpponentDefender(double *dX=NULL)WorldModel
getListCloseOpponents(VecPosition pos, double dDist=15)WorldModel
getMarkingPosition(VecPosition pos, double dDist, MarkT mark)WorldModel
getMaximalKickDist(ObjectT obj)WorldModel
getMaxRangeUnknownPlayer(ObjectT obj, char *strMsg)WorldModel [private]
getMaxTraveledDistance(ObjectT o)WorldModel
getMinMaxDirChange(double dOutput, double *dMin, double *dMax, double x1)WorldModel [private]
getMinMaxDistChange(double dOutput, double dDist, double *dMin, double *dMax, double x1, double xDist1, double xDist2)WorldModel [private]
getMinMaxDistQuantizeValue(double dInput, double *dMin, double *dMax, double x1, double x2)WorldModel [private]
getNrInSetInCircle(ObjectSetT objectSet, Circle c)WorldModel
getNrInSetInCone(ObjectSetT objectSet, double dWidth, VecPosition start, VecPosition end)WorldModel
getNrInSetInRectangle(ObjectSetT objectSet, Rect *rect=NULL)WorldModel
getNrOfCommands(CommandT c) constWorldModel
getObjectFocus()WorldModel
getObjectPtrFromType(ObjectT o)WorldModel [private]
getOffsideX(bool bIncludeComm=true)WorldModel
getOppGoalieType()WorldModel
getOuterPositionInField(VecPosition pos, AngDeg ang, double dDist=3.0, bool bWithPenalty=true)WorldModel
getOwnGoalieType()WorldModel
getPlayerDecay(ObjectT obj)WorldModel
getPlayerNumber() constWorldModel
getPlayerSize(ObjectT obj)WorldModel
getPlayerSpeedMax(ObjectT obj)WorldModel
getPlayerType(ObjectT o=OBJECT_ILLEGAL)WorldModel
getPlayMode() constWorldModel
getPosClosestOpponentTo(double *dDist=NULL, ObjectT o=OBJECT_ILLEGAL)WorldModel
getPosOpponentGoal()WorldModel
getPosOwnGoal()WorldModel
getPowerForDash(VecPosition posRelTo, AngDeg angBody, VecPosition vel, double dEffort, int iCycles=1)WorldModel
getProbTackleClosestOpp(int iExtraCycles=0)WorldModel
getProbTackleSucceeds(ObjectT o=OBJECT_ILLEGAL, int iExtraCycles=0, VecPosition *pos=NULL)WorldModel
getRecvThink()WorldModel
getRelAngleOpponentGoal()WorldModel
getRelativeAngle(ObjectT o, bool bWithBody=false)WorldModel
getRelativeDistance(ObjectT o)WorldModel
getRelativePosition(ObjectT o)WorldModel
getRelDistanceOpponentGoal()WorldModel
getSecondClosestInSetTo(ObjectSetT objectSet, ObjectT o, double *dDist=NULL, double dConfThr=-1.0)WorldModel
getSecondClosestRelativeInSet(ObjectSetT set, double *dDist=NULL)WorldModel
getSide() constWorldModel
getSidePenalty()WorldModel
getStaminaIncMax(ObjectT obj)WorldModel
getStrategicPosition(ObjectT obj, FormationT ft=FT_ILLEGAL)WorldModel
getStrategicPosition(int iPlayer=-1, FormationT ft=FT_ILLEGAL)WorldModel
getSubstitutedOpp()WorldModel
getTackleExpires(ObjectT o=OBJECT_ILLEGAL)WorldModel
getTeamName() constWorldModel
getTimeChangeInformation(ObjectT o)WorldModel
getTimeCheckBall() constWorldModel
getTimeFromConfidence(double dConf)WorldModel
getTimeGlobalAngles(ObjectT o)WorldModel
getTimeGlobalArmDirection(ObjectT o)WorldModel
getTimeGlobalPosition(ObjectT o)WorldModel
getTimeGlobalPositionLastSee(ObjectT o)WorldModel
getTimeGlobalVelocity(ObjectT o)WorldModel
getTimeLastHearMessage() constWorldModel
getTimeLastRecvSeeMessage() constWorldModel
getTimeLastRecvSenseMessage() constWorldModel
getTimeLastRefereeMessage()WorldModel
getTimeLastSeeGlobalMessage() constWorldModel
getTimeLastSeeMessage() constWorldModel
getTimeLastSeen(ObjectT o)WorldModel
getTimeLastSenseMessage() constWorldModel
getTimeSinceLastCatch()WorldModel
iCommandCountersWorldModel [private]
iGoalDiffWorldModel [private]
initParticlesAgent(AngDeg angGlobal)WorldModel [private]
initParticlesAgent(VecPosition posInitital)WorldModel [private]
initParticlesBall(VecPosition posArray[], VecPosition velArray[], int iLength)WorldModel [private]
iNrHolesWorldModel
iNrOpponentsSeenWorldModel
iNrParticlesAgentWorldModel [private, static]
iNrParticlesBallWorldModel [private, static]
iNrTeammatesSeenWorldModel
iNrUnknownPlayersWorldModel [private]
invQuantizeMax(double dOutput, double dQuantizeStep)WorldModel [private]
invQuantizeMin(double dOutput, double dQuantizeStep)WorldModel [private]
iPlayerNumberWorldModel [private]
isBackPassThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isBackPassUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isBallCatchable()WorldModel
isBallHeadingToGoal()WorldModel
isBallInOurPossesion()WorldModel
isBallInOwnPenaltyArea()WorldModel
isBallKickable()WorldModel
isBeforeGoal(VecPosition pos)WorldModel
isBeforeKickOff(PlayModeT pm=PM_ILLEGAL)WorldModel
isCollisionAfterCommand(SoccerCommand soc)WorldModel
isConfidenceGood(ObjectT)WorldModel
isConfidenceVeryGood(ObjectT)WorldModel
isCornerKickThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isCornerKickUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isDeadBallThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isDeadBallUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isEmptySpace(ObjectT obj, AngDeg ang, double dDist=4.0)WorldModel
isFeatureRelevant(FeatureT type)WorldModel
isFreeKickFaultThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isFreeKickFaultUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isFreeKickThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isFreeKickUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isFullStateOn(SideT s=SIDE_ILLEGAL)WorldModel
isGoalKickThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isGoalKickUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isInField(VecPosition pos, double dMargin=1)WorldModel
isInOwnPenaltyArea(VecPosition pos)WorldModel
isInPlayerSet(ObjectT o, PlayerSetT ps)WorldModel
isInTheirPenaltyArea(VecPosition pos)WorldModel
isKickInThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isKickInUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isKickOffThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isKickOffUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isKnownPlayer(ObjectT o)WorldModel
isLastMessageSee() constWorldModel
isOffsideThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isOffsideUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isOnside(ObjectT)WorldModel
isOpponentAtAngle(AngDeg ang, double dDist)WorldModel
isPenaltyThem(PlayModeT pm=PM_ILLEGAL)WorldModel
isPenaltyUs(PlayModeT pm=PM_ILLEGAL)WorldModel
isQueuedActionPerformed()WorldModel
isTimeStopped()WorldModel
isVisible(ObjectT o)WorldModel
iterateObjectDone(int &iIndex)WorldModel
iterateObjectNext(int &iIndex, ObjectSetT g, double dConf=-1.0, bool bForward=false)WorldModel
iterateObjectStart(int &iIndex, ObjectSetT g, double dConf=-1.0, bool bForward=false)WorldModel
LinesWorldModel [private]
logCircle(int iLogLevel, VecPosition pos, double dRadius, bool bAll=false)WorldModel
logCoordInfo(int iLogLevel)WorldModel
logDrawBallInfo(int iLogLevel)WorldModel
logDrawInfo(int iLogLevel)WorldModel
logLine(int iLogLevel, VecPosition pos1, VecPosition pos2, bool bAll=false)WorldModel
logObjectInformation(int iLogLevel, ObjectT o)WorldModel
m_bPerformedKickWorldModel [private]
m_bRecvThinkWorldModel [private]
m_bWasCollisionWorldModel
m_changeViewCommandWorldModel [private]
m_colorPlayersWorldModel
m_dCommOffsideXWorldModel [private]
m_featuresWorldModel [private]
m_iCycleInMsgWorldModel [private]
m_iMessageSenderWorldModel [private]
m_iMultXWorldModel
m_iMultYWorldModel
m_objFocusWorldModel [private]
m_setSubstitutedOppWorldModel [private]
m_sidePenaltyWorldModel [private]
m_strCommunicateWorldModel [private]
m_strPlayerMsgWorldModel [private]
m_timeCommOffsideXWorldModel [private]
m_timeLastCollisionWorldModel
m_timePlayerMsgWorldModel [private]
mapUnknownPlayers(Time time)WorldModel
mutex_newInfoWorldModel [private]
OpponentsWorldModel [private]
particlesPosAgentWorldModel [private]
particlesPosBallWorldModel [private]
particlesVelBallWorldModel [private]
performedCommandsWorldModel [private]
playModeWorldModel [private]
predictAgentPos(int iCycles, int iDashPower=0)WorldModel
predictAgentPosAfterCommand(SoccerCommand com)WorldModel
predictAgentStateAfterCommand(SoccerCommand com, VecPosition *pos, VecPosition *vel, AngDeg *angBody, AngDeg *angNeck, Stamina *sta)WorldModel
predictBallInfoAfterCommand(SoccerCommand soc, VecPosition *pos=NULL, VecPosition *vel=NULL)WorldModel
predictCommandToInterceptBall(ObjectT obj, SoccerCommand soc, int *iCycles=NULL, VecPosition *posIntercept=NULL, VecPosition *pos=NULL, VecPosition *vel=NULL, AngDeg *angBody=NULL)WorldModel
predictCommandToMoveToPos(ObjectT obj, VecPosition posTo, int iCycles, double dDistBack=2.5, bool bMoveBack=false, VecPosition *pos=NULL, VecPosition *vel=NULL, AngDeg *angBody=NULL)WorldModel
predictCommandTurnTowards(ObjectT obj, VecPosition posTo, int iCycles, double dDistBack, bool bMoveBack, VecPosition *pos=NULL, VecPosition *vel=NULL, AngDeg *angBody=NULL)WorldModel
predictFinalAgentPos(VecPosition *pos=NULL, VecPosition *vel=NULL)WorldModel
predictNrCyclesForDistance(ObjectT o, double dDist, double dCurSpeed)WorldModel
predictNrCyclesToObject(ObjectT objFrom, ObjectT objTo)WorldModel
predictNrCyclesToPoint(ObjectT o, VecPosition posTo)WorldModel
predictObjectStateAfterCommand(ObjectT obj, SoccerCommand com, VecPosition *pos, VecPosition *vel, AngDeg *angBody, AngDeg *angNeck, Stamina *sta)WorldModel
predictPosAfterNrCycles(ObjectT o, double dCycles, int iDashPower=100, VecPosition *posIn=NULL, VecPosition *velIn=NULL, bool bUpdate=true)WorldModel
predictStaminaAfterDash(double dPower, Stamina *sta)WorldModel
predictStateAfterCommand(SoccerCommand com, VecPosition *pos, VecPosition *vel, AngDeg *angGlobalBody, AngDeg *angGlobalNeck, ObjectT obj=OBJECT_ILLEGAL, Stamina *sta=NULL)WorldModel
predictStateAfterDash(double dActualPower, VecPosition *pos, VecPosition *vel, Stamina *sta, double dDirection, ObjectT o=OBJECT_ILLEGAL)WorldModel
predictStateAfterTurn(AngDeg dSendAngle, VecPosition *pos, VecPosition *vel, AngDeg *angBody, AngDeg *angNeck, ObjectT obj=OBJECT_ILLEGAL, Stamina *sta=NULL)WorldModel
processCatchedBall(RefereeMessageT rm, Time time)WorldModel
processLastSeeMessage()WorldModel [private]
processLastSenseMessage()WorldModel [private]
processNewAgentInfo(ViewQualityT vq, ViewAngleT va, double dStamina, double dEffort, double dSpeed, AngDeg angSpeed, AngDeg angHeadAngle, int iTackleExpires, int iArmMovable, int iArmExpires, VecPosition posArm)WorldModel
processNewHeteroPlayer(int iIndex, double dPlayerSpeedMax, double dStaminaIncMax, double dPlayerDecay, double dInertiaMoment, double dDashPowerRate, double dPlayerSize, double dKickableMargin, double dKickRand, double dExtraStamina, double dEffortMax, double dEffortMin)WorldModel
processNewObjectInfo(ObjectT o, Time time, double dDist, int iDir, double dDistChange, double dDirChange, AngDeg angRelBodyAng, AngDeg angRelNeckAng, bool isGoalie, ObjectT objMin, ObjectT objMax, double dPointDir, bool isTackling)WorldModel
processPerfectHearInfo(ObjectT o, VecPosition pos, double dConf, bool bIsGoalie=0)WorldModel
processPerfectHearInfoBall(VecPosition pos, VecPosition vel, double dConf)WorldModel
processPlayerMessage()WorldModel
processQueuedCommands(SoccerCommand commands[], int iCommands)WorldModel
processRecvThink(bool b)WorldModel
processSeeGlobalInfo(ObjectT o, Time time, VecPosition pos, VecPosition vel, AngDeg angBody, AngDeg angNeck)WorldModel
processUnsureHearInfo(ObjectT o, VecPosition pos, double dConf)WorldModel
PSWorldModel [private]
ptWorldModel [private]
queuedCommandsWorldModel [private]
removeGhosts()WorldModel
resampleParticlesAgent(int iLeft)WorldModel [private]
resampleParticlesBall(VecPosition posArray[], VecPosition velArray[], int iLength, int iLeft)WorldModel [private]
resetTimeObjects()WorldModel
setAgentObjectType(ObjectT o)WorldModel
setAgentViewAngle(ViewAngleT va)WorldModel
setAgentViewQuality(ViewQualityT vq)WorldModel
setChangeViewCommand(SoccerCommand soc)WorldModel
setCheckBallStatus(BallStatusT bs)WorldModel
setCommunicationString(char *srt)WorldModel
setFeature(FeatureT type, Feature feature)WorldModel
setHeteroPlayerType(ObjectT o, int iPlayer)WorldModel
setIsKnownPlayer(ObjectT o, bool isKnownPlayer)WorldModel
setNrOfCommands(CommandT c, int i)WorldModel
setObjectFocus(ObjectT obj)WorldModel
setPlayerNumber(int i)WorldModel
setPlayMode(PlayModeT pm)WorldModel
setSide(SideT s)WorldModel
setSidePenalty(SideT side)WorldModel
setSubstitutedOpp(ObjectT obj)WorldModel
setTeamName(char *str)WorldModel
setTimeCheckBall(Time time)WorldModel
setTimeLastCatch(Time time)WorldModel
setTimeLastHearMessage(Time time)WorldModel
setTimeLastRefereeMessage(Time time)WorldModel
setTimeLastSeeGlobalMessage(Time time)WorldModel
setTimeLastSeeMessage(Time time)WorldModel
setTimeLastSeen(ObjectT o, Time time)WorldModel
setTimeLastSenseMessage(Time time)WorldModel
show(ostream &os=cout)WorldModel
show(ObjectSetT set, ostream &os=cout)WorldModel
show(ObjectT o, ostream &os=cout)WorldModel
showQueuedCommands(ostream &os=cout)WorldModel
sideSideWorldModel [private]
SSWorldModel [private]
storePlayerMessage(int iPlayer, char *strMsg, int iCycle)WorldModel
strLastHearMessageWorldModel
strLastSeeMessageWorldModel
strLastSenseMessageWorldModel
strTeamNameWorldModel [private]
subtractOneFromGoalDiff()WorldModel
TeammatesWorldModel [private]
timeCheckBallWorldModel [private]
timeLastCatchWorldModel [private]
timeLastHearMessageWorldModel [private]
timeLastRecvSeeMessageWorldModel [private]
timeLastRecvSenseMessageWorldModel [private]
timeLastRefMessageWorldModel [private]
timeLastSeeMessageWorldModel [private]
timeLastSenseMessageWorldModel [private]
UnknownPlayersWorldModel [private]
updateAfterSeeMessage()WorldModel [private]
updateAfterSenseMessage()WorldModel
updateAgentAndBallAfterSense()WorldModel [private]
updateAgentObjectAfterSee()WorldModel [private]
updateAll()WorldModel
updateBallAfterKick(SoccerCommand soc)WorldModel [private]
updateBallForCollision(VecPosition posAgent)WorldModel [private]
updateDynamicObjectAfterSee(ObjectT o)WorldModel [private]
updateDynamicObjectForNextCycle(ObjectT o, int iCycle)WorldModel [private]
updateObjectRelativeFromGlobal(ObjectT o)WorldModel [private]
updateParticlesAgent(VecPosition vel, bool bAfterSense)WorldModel [private]
updateParticlesBall(VecPosition posArray[], VecPosition velArray[], int iLength, double dPower, AngDeg ang)WorldModel [private]
updateRelativeFromGlobal()WorldModel [private]
updateSSToHeteroPlayerType(int iPlayerType)WorldModel
waitForNewInformation()WorldModel
WorldModel(ServerSettings *ss, PlayerSettings *ps, Formations *fs)WorldModel
~WorldModel()WorldModel

Generated on Fri Nov 7 11:46:11 2003 for UvA Trilearn 2003 Base Code by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001