Pyrogenesis trunk
Namespaces | Functions
Geometry.cpp File Reference
#include "precompiled.h"
#include "Geometry.h"
Include dependency graph for Geometry.cpp:

Namespaces

namespace  Geometry
 

Functions

CFixedVector2D Geometry::GetHalfBoundingBox (const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize)
 Returns a vector (bx,by) such that every point inside the given rotated rectangle has coordinates (x,y) with -bx <= x <= bx, -by <= y < by. More...
 
fixed Geometry::DistanceToSquare (const CFixedVector2D &point, const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize, bool countInsideAsZero=false)
 Returns the minimum Euclidean distance from the given point to any point on the boundary of the given rotated rectangle. More...
 
fixed Geometry::DistanceToSquareSquared (const CFixedVector2D &point, const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize, bool countInsideAsZero=false)
 Similar to above but never uses sqrt, so it returns the squared distance. More...
 
CFixedVector2D Geometry::NearestPointOnSquare (const CFixedVector2D &point, const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize)
 Returns a point on the boundary of the given rotated rectangle that is closest (or equally closest) to the given point in Euclidean distance. More...
 
fixed Geometry::DistanceSquareToSquare (const CFixedVector2D &relativePos, const CFixedVector2D &u1, const CFixedVector2D &v1, const CFixedVector2D &halfSize1, const CFixedVector2D &u2, const CFixedVector2D &v2, const CFixedVector2D &halfSize2)
 Returns the shortest distance between two squares. More...
 
fixed Geometry::MaxDistanceToSquare (const CFixedVector2D &point, const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize, bool countInsideAsZero=false)
 Returns the greatest straight line distance from a point to a square. More...
 
fixed Geometry::MaxDistanceSquareToSquare (const CFixedVector2D &relativePos, const CFixedVector2D &u1, const CFixedVector2D &v1, const CFixedVector2D &halfSize1, const CFixedVector2D &u2, const CFixedVector2D &v2, const CFixedVector2D &halfSize2)
 Return the greatest straight line distance between two squares. More...
 
bool Geometry::TestRaySquare (const CFixedVector2D &a, const CFixedVector2D &b, const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize)
 
bool Geometry::TestRayAASquare (const CFixedVector2D &a, const CFixedVector2D &b, const CFixedVector2D &halfSize)
 
static bool Geometry::SquareSAT (const CFixedVector2D &a, const CFixedVector2D &axis, const CFixedVector2D &u, const CFixedVector2D &v, const CFixedVector2D &halfSize)
 Separating axis test; returns true if the square defined by u/v/halfSize at the origin is not entirely on the clockwise side of a line in direction 'axis' passing through 'a'. More...
 
bool Geometry::TestSquareSquare (const CFixedVector2D &c0, const CFixedVector2D &u0, const CFixedVector2D &v0, const CFixedVector2D &halfSize0, const CFixedVector2D &c1, const CFixedVector2D &u1, const CFixedVector2D &v1, const CFixedVector2D &halfSize1)
 
int Geometry::GetPerimeterDistance (int x_max, int y_max, int x, int y)
 Used in Footprint when spawning units: Given a grid point (x, y) on the rectangle [-x_max, x_max] x [-y_max, y_max], this returns the distance travelled in moving from (x_max, 0) to the the point while walking counter-clockwise along the perimeter of the rectangle. More...
 
std::pair< int, int > Geometry::GetPerimeterCoordinates (int x_max, int y_max, int k)
 Used in Footprint when spawning units: This returns the grid point on the rectangle [-x_max, x_max] x [-y_max, y_max] reached after starting at (x_max, 0) and walking a distance k counter-clockwise along the perimeter of the rectangle. More...
 
fixed Geometry::DistanceToSegment (const CFixedVector2D &point, const CFixedVector2D &a, const CFixedVector2D &b)
 Returns the minimum Euclidean distance from the given point to any point on the given segment. More...