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

Geometry.h File Reference

#include "math.h"
#include <string>
#include <iostream>

Include dependency graph for Geometry.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  Circle
class  Geometry
class  Line
class  Rect
class  VecPosition

Defines

#define EPSILON   0.0001

Typedefs

typedef double AngRad
typedef double AngDeg

Enumerations

enum  CoordSystemT { CARTESIAN, POLAR }

Functions

double max (double d1, double d2)
double min (double d1, double d2)
int sign (double d1)
AngDeg Rad2Deg (AngRad x)
AngRad Deg2Rad (AngDeg x)
double cosDeg (AngDeg x)
double sinDeg (AngDeg x)
double tanDeg (AngDeg x)
AngDeg atanDeg (double x)
double atan2Deg (double x, double y)
AngDeg acosDeg (double x)
AngDeg asinDeg (double x)
bool isAngInInterval (AngDeg ang, AngDeg angMin, AngDeg angMax)
AngDeg getBisectorTwoAngles (AngDeg angMin, AngDeg angMax)


Detailed Description

File:          Geometry.h
Project:       Robocup Soccer Simulation Team: UvA Trilearn
Authors:       Jelle Kok
Created:       12/02/2001
Last Revision: $ID$
Contents:      Header file for the classes VecPosition, Geometry, Line,
               Circle and Rectangle. All the member
               data and member method declarations for all these classes can be
               found in this file together with some auxiliary functions for
               numeric and goniometric purposes.

Changes

Date Author Comment 12/02/2001 Jelle Kok Initial version created 09/06/2001 Remco de Boer Version including full documentation completed

Definition in file Geometry.h.


Define Documentation

#define EPSILON   0.0001
 

Value used for floating point equality tests.

Definition at line 63 of file Geometry.h.

Referenced by Geometry::abcFormula(), atan2Deg(), Line::getCircleIntersectionPoints(), WorldModel::getFastestInSetTo(), Line::makeLineFromTwoPoints(), WorldModel::predictNrCyclesForDistance(), WorldModel::predictNrCyclesToObject(), DynamicObject::setGlobalVelocity(), VecPosition::setMagnitude(), WorldModel::updateAgentAndBallAfterSense(), and WorldModel::updateParticlesBall().


Typedef Documentation

typedef double AngDeg
 

Type definition for angles in radians.

Definition at line 61 of file Geometry.h.

Referenced by BasicPlayer::accelerateBallToVelocity(), acosDeg(), SenseHandler::analyzeFullStateMessage(), SenseHandler::analyzeSeeGlobalMessage(), asinDeg(), atanDeg(), WorldModel::calculateAngleAgentWithPos(), WorldModel::calculatePosAgentWith2Flags(), WorldModel::calculateStateAgent(), WorldModel::calculateStateAgent2(), WorldModel::calculateStateAgent3(), WorldModel::checkParticlesAgent(), WorldModel::checkParticlesBall(), BasicPlayer::clearBall(), cosDeg(), BasicPlayer::defendGoalLine(), Deg2Rad(), Player::deMeer5_goalie(), BasicPlayer::directTowards(), BasicPlayer::dribble(), BasicPlayer::getActiveInterceptionPointBall(), WorldModel::getActualTurnAngle(), WorldModel::getAgentBodyAngleRelToNeck(), WorldModel::getAgentGlobalBodyAngle(), WorldModel::getAgentGlobalNeckAngle(), WorldModel::getAngleForTurn(), SoccerTypes::getAngleFromDirection(), WorldModel::getBallDirection(), getBisectorTwoAngles(), AgentObject::getBodyAngleRelToNeck(), Player::getDeadBallPosition(), VecPosition::getDirection(), WorldModel::getDirectionOfWidestAngle(), BasicPlayer::getDribblePoint(), WorldModel::getGlobalAngle(), FixedObject::getGlobalAngle(), SoccerTypes::getGlobalAngleLine(), PlayerObject::getGlobalArm(), WorldModel::getGlobalArmDirection(), WorldModel::getGlobalBodyAngle(), PlayerObject::getGlobalBodyAngle(), WorldModel::getGlobalBodyAngleLastSee(), PlayerObject::getGlobalBodyAngleLastSee(), WorldModel::getGlobalNeckAngle(), PlayerObject::getGlobalNeckAngle(), SoccerTypes::getHalfViewAngleValue(), BasicPlayer::getInterceptionPointBall(), Circle::getIntersectionArea(), WorldModel::getMarkingPosition(), WorldModel::getOuterPositionInField(), WorldModel::getPowerForDash(), WorldModel::getProbTackleSucceeds(), WorldModel::getRelativeAngle(), Object::getRelativeAngle(), PlayerObject::getRelativeBodyAngle(), PlayerObject::getRelativeNeckAngle(), BasicPlayer::getShootPositionOnLine(), BasicPlayer::getThroughPassShootingPoint(), VecPosition::getVecPositionFromPolar(), VecPosition::globalToRelative(), BasicPlayer::holdBall(), WorldModel::initParticlesAgent(), WorldModel::initParticlesBall(), BasicPlayer::interceptClose(), BasicPlayer::interceptCloseGoalie(), isAngInInterval(), WorldModel::isCollisionAfterCommand(), WorldModel::isEmptySpace(), WorldModel::isOpponentAtAngle(), BasicPlayer::kickBallCloseToBody(), BasicPlayer::kickTo(), WorldModel::logDrawBallInfo(), Line::makeLineFromPositionAndAngle(), BasicPlayer::mark(), max(), min(), BasicPlayer::moveToPos(), BasicPlayer::moveToPosAlongLine(), VecPosition::normalizeAngle(), BasicPlayer::outplayOpponent(), Player::performPenalty(), WorldModel::predictAgentPosAfterCommand(), WorldModel::predictAgentStateAfterCommand(), WorldModel::predictBallInfoAfterCommand(), WorldModel::predictCommandToInterceptBall(), WorldModel::predictCommandToMoveToPos(), WorldModel::predictCommandTurnTowards(), WorldModel::predictNrCyclesToPoint(), WorldModel::predictObjectStateAfterCommand(), WorldModel::predictStateAfterCommand(), WorldModel::predictStateAfterTurn(), WorldModel::processLastSeeMessage(), WorldModel::processLastSenseMessage(), WorldModel::processNewAgentInfo(), WorldModel::processNewObjectInfo(), WorldModel::processSeeGlobalInfo(), Rad2Deg(), VecPosition::relativeToGlobal(), WorldModel::removeGhosts(), VecPosition::rotate(), BasicPlayer::searchBall(), AgentObject::setBodyAngleRelToNeck(), PlayerObject::setGlobalArm(), PlayerObject::setGlobalBodyAngle(), PlayerObject::setGlobalBodyAngleLastSee(), AgentObject::setGlobalNeckAngle(), PlayerObject::setGlobalNeckAngle(), PlayerObject::setRelativeBodyAngle(), PlayerObject::setRelativeNeckAngle(), Object::setRelativePosition(), sinDeg(), tanDeg(), BasicPlayer::throughPass(), BasicPlayer::turnBackToPoint(), BasicPlayer::turnBodyToPoint(), BasicPlayer::turnNeckToPoint(), BasicPlayer::turnWithBallTo(), WorldModel::updateAgentAndBallAfterSense(), WorldModel::updateAgentObjectAfterSee(), WorldModel::updateBallForCollision(), WorldModel::updateDynamicObjectAfterSee(), WorldModel::updateDynamicObjectForNextCycle(), and WorldModel::updateParticlesBall().

typedef double AngRad
 

Type definition for angles in degrees.

Definition at line 60 of file Geometry.h.

Referenced by Deg2Rad(), max(), and Rad2Deg().


Enumeration Type Documentation

enum CoordSystemT
 

CoordSystem is an enumeration of the different specified coordinate systems. The two possibilities are CARTESIAN or POLAR. These values are for instance used in the initializing a VecPosition. The CoordSystem indicates whether the supplied arguments represent the position in cartesian or in polar coordinates.

Enumeration values:
CARTESIAN 
POLAR 

Definition at line 93 of file Geometry.h.

Referenced by acosDeg(), atan2Deg(), VecPosition::setVecPosition(), VecPosition::show(), sinDeg(), VecPosition::str(), and VecPosition::VecPosition().


Function Documentation

AngDeg acosDeg double    x
 

This function returns the principal value of the arc cosine of x in degrees using the built-in arc cosine function which returns this value in radians.

Parameters:
x  a double value
Returns:
the arc cosine of the given value in degrees

Definition at line 161 of file Geometry.cpp.

References AngDeg, CARTESIAN, and CoordSystemT.

AngDeg asinDeg double    x
 

This function returns the principal value of the arc sine of x in degrees using the built-in arc sine function which returns this value in radians.

Parameters:
x  a double value
Returns:
the arc sine of the given value in degrees

Definition at line 175 of file Geometry.cpp.

References AngDeg.

Referenced by BasicPlayer::accelerateBallToVelocity(), and BasicPlayer::kickTo().

double atan2Deg double    x,
double    y
 

This function returns the principal value of the arc tangent of y/x in degrees using the signs of both arguments to determine the quadrant of the return value. For this the built-in 'atan2' function is used which returns this value in radians.

Parameters:
x  a double value
y  a double value
Returns:
the arc tangent of y/x in degrees taking the signs of x and y into account

Definition at line 149 of file Geometry.cpp.

References CARTESIAN, and CoordSystemT.

Referenced by WorldModel::calculateAngleAgentWithPos(), getBisectorTwoAngles(), and VecPosition::getDirection().

AngDeg atanDeg double    x
 

This function returns the principal value of the arc tangent of x in degrees using the built-in arc tangent function which returns this value in radians.

Parameters:
x  a double value
Returns:
the arc tangent of the given value in degrees

Definition at line 136 of file Geometry.cpp.

double cosDeg AngDeg    x
 

This function returns the cosine of a given angle in degrees using the built-in cosine function that works with angles in radians.

Parameters:
x  an angle in degrees
Returns:
the cosine of the given angle

Definition at line 108 of file Geometry.cpp.

Referenced by WorldModel::calculateAngleAgentWithPos(), WorldModel::calculateVelocityDynamicObject(), getBisectorTwoAngles(), VecPosition::getVecPositionFromPolar(), and WorldModel::initParticlesBall().

AngRad Deg2Rad AngDeg    x
 

This function converts an angle in degrees to the corresponding angle in radians.

Parameters:
x  an angle in degrees
Returns:
the corresponding angle in radians

Definition at line 99 of file Geometry.cpp.

Referenced by WorldModel::calculateVelocityDynamicObject(), cosDeg(), WorldModel::initParticlesBall(), sinDeg(), and tanDeg().

AngDeg getBisectorTwoAngles AngDeg    angMin,
AngDeg    angMax
 

This method returns the bisector (average) of two angles. It deals with the boundary problem, thus when 'angMin' equals 170 and 'angMax' equals -100, -145 is returned.

Parameters:
angMin  minimum angle [-180,180]
angMax  maximum angle [-180,180]
Returns:
average of angMin and angMax.

Definition at line 212 of file Geometry.cpp.

Referenced by WorldModel::getDirectionOfWidestAngle(), and WorldModel::getMarkingPosition().

bool isAngInInterval AngDeg    ang,
AngDeg    angMin,
AngDeg    angMax
 

This function returns a boolean value which indicates whether the value 'ang' (from interval [-180..180] lies in the interval [angMin..angMax]. Examples: isAngInInterval( -100, 4, -150) returns false isAngInInterval( 45, 4, -150) returns true

Parameters:
ang  angle that should be checked
angMin  minimum angle in interval
angMax  maximum angle in interval
Returns:
boolean indicating whether ang lies in [angMin..angMax]

Definition at line 193 of file Geometry.cpp.

References AngDeg.

Referenced by BasicPlayer::mark(), and BasicPlayer::searchBall().

double max double    d1,
double    d2
 

This function returns the maximum of two given doubles.

Parameters:
d1  first parameter
d2  second parameter
Returns:
the maximum of these two parameters

Definition at line 71 of file Geometry.cpp.

References AngDeg, and AngRad.

Referenced by BasicPlayer::clearBall(), Object::getConfidence(), WorldModel::getDirectionOfWidestAngle(), WorldModel::getFastestInSetTo(), WorldModel::getMinMaxDistChange(), WorldModel::getOffsideX(), WorldModel::getProbTackleSucceeds(), BasicPlayer::getShootPositionOnLine(), WorldModel::getStrategicPosition(), WorldModel::getTackleExpires(), WorldModel::invQuantizeMin(), Player::makeBallInfo(), WorldModel::predictCommandToInterceptBall(), WorldModel::predictNrCyclesForDistance(), WorldModel::predictNrCyclesToObject(), WorldModel::predictNrCyclesToPoint(), Player::sayOppAttackerStatus(), SenseHandler::SenseHandler(), and Rect::setRectanglePoints().

double min double    d1,
double    d2
 

This function returns the minimum of two given doubles.

Parameters:
d1  first parameter
d2  second parameter
Returns:
the minimum of these two parameters

Definition at line 80 of file Geometry.cpp.

References AngDeg.

Referenced by WorldModel::createInterceptFeatures(), BasicPlayer::freezeBall(), WorldModel::getDirectionOfWidestAngle(), Circle::getIntersectionArea(), WorldModel::getMarkingPosition(), WorldModel::getMinMaxDistChange(), WorldModel::getProbTackleSucceeds(), BasicPlayer::getShootPositionOnLine(), WorldModel::getStrategicPosition(), Player::makeBallInfo(), BasicPlayer::outplayOpponent(), WorldModel::predictCommandToInterceptBall(), WorldModel::predictCommandTurnTowards(), SenseHandler::SenseHandler(), and Rect::setRectanglePoints().

AngDeg Rad2Deg AngRad    x
 

This function converts an angle in radians to the corresponding angle in degrees.

Parameters:
x  an angle in radians
Returns:
the corresponding angle in degrees

Definition at line 90 of file Geometry.cpp.

Referenced by acosDeg(), asinDeg(), atan2Deg(), atanDeg(), and WorldModel::checkParticlesBall().

int sign double    d1
 

This function returns the sign of a give double. 1 is positive, -1 is negative

Parameters:
d1  first parameter
Returns:
the sign of this double

Definition at line 62 of file Geometry.cpp.

Referenced by WorldModel::calculateStateBall(), BasicPlayer::defendGoalLine(), BasicPlayer::dribble(), Player::getDeadBallPosition(), WorldModel::getMarkingPosition(), Formations::getStrategicPosition(), BasicPlayer::holdBall(), BasicPlayer::interceptScoringAttempt(), BasicPlayer::kickBallCloseToBody(), and WorldModel::updateAgentAndBallAfterSense().

double sinDeg AngDeg    x
 

This function returns the sine of a given angle in degrees using the built-in sine function that works with angles in radians.

Parameters:
x  an angle in degrees
Returns:
the sine of the given angle

Definition at line 117 of file Geometry.cpp.

References CARTESIAN, and CoordSystemT.

Referenced by WorldModel::calculateAngleAgentWithPos(), WorldModel::calculateVelocityDynamicObject(), getBisectorTwoAngles(), VecPosition::getVecPositionFromPolar(), and WorldModel::initParticlesBall().

double tanDeg AngDeg    x
 

This function returns the tangent of a given angle in degrees using the built-in tangent function that works with angles in radians.

Parameters:
x  an angle in degrees
Returns:
the tangent of the given angle

Definition at line 126 of file Geometry.cpp.


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