blob: d5a2aa9181f04ee19acfcad23c49a3fa897c85bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#ifndef MAZEMATH_H
#define MAZEMATH_H
#include <cmath>
/**
* @brief Class of static methods for common math functions that occur in the 2D maze setting.
*
* @author Justin Wernick
* @author David Schneider
*/
class MazeMath
{
public:
/**
* @brief Rounds a value to the nearest integer.
*
* Values with a decimal fraction less than 0.5 are floored, while values with
* a decimal fraction greater than or eqaul to 0.5 are ceiled.
*
* @param [in] value The number to be rounded off.
*
* @return The rounded off version of the given value.
*/
static double round(double value);
/**
* @brief Finds the straight line distance between two points on a 2D plane.
*
* Implemented using Pythagoras' Theorem.
*
* @param [in] x1 The x coordinate of the first point.
* @param [in] y1 The y coordinate of the first point.
* @param [in] x2 The x coordinate of the second point.
* @param [in] y2 The y coordinate of the second point.
*
* @return The distance between the two given points.
*/
static double distance(double x1, double y1, double x2, double y2);
private:
/**
* @brief Unimplemented constructor.
*
* being a grouping of static functions, construction and destruction of MazeMath
* objects is unneccesary.
*/
MazeMath();
/**
* @brief Unimplemented copy constructor.
*/
MazeMath(const MazeMath& ref);
/**
* @brief Unimplemented assignment operator.
*/
MazeMath& operator=(const MazeMath& rhs);
};
#endif // MAZEMATH_H
|