Bare Metal Programming Tool Kit
|
a relative or absolute (= relative to (0,0)) location on a grid More...
#include <graphics.h>
Public Member Functions | |
vector () | |
construct a vector, the value defaults to (0,0) | |
vector (short int x, short int y) | |
construct a vector from its x and y coordinates | |
short int | x_get () const |
get the x component | |
short int | y_get () const |
get the y component | |
vector | operator+ (const vector p) const |
add two vectors by adding the x and y coordinates | |
vector | operator+= (const vector p) |
add a vector to an existing vector | |
vector | operator+ (void) const |
return the vector unmodified | |
vector | operator- (const vector p) const |
subtract two vectors by subtracting the coordinates | |
vector | operator-= (const vector p) |
subtract a vector from an existing vector | |
vector | operator- (void) const |
returns the negative of the vector (point-mirrored in the origin) | |
vector | operator/ (int n) const |
divides a vector by an integer by dividing the coordinates | |
vector & | operator/= (int n) |
divides an existing vector by an integer | |
vector | operator* (int n) const |
multiplies a vector by an integer by multiplying the coordinates | |
vector & | operator*= (int n) |
multiplies an existing vector by an integer | |
vector | operator* (const vector rhs) const |
multiplying two vectors multiplies their X and Y components | |
bool | operator== (const vector p) const |
reports whether two vectors are equal | |
bool | operator!= (const vector p) const |
reports whether two vectors are unequal | |
vector | direction (void) const |
returns the direction of a vector | |
vector | abs (void) const |
returns the absolute of a vector | |
vector | x_projection (void) const |
returns the projection of the vector on the x axis | |
vector | y_projection (void) const |
returns the projection of the vector on the y axis | |
vector | mirrored (void) const |
returns with x and y swapped | |
bool | is_within (const vector p) const |
reports whether te vector is within the box [0,p> | |
Static Public Member Functions | |
static vector | origin () |
the vector (0,0) | |
static vector | zero () |
the vector (0,0) | |
static vector | one () |
the vector (1,1) | |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &s, const vector p) |
prints a vector | |
a relative or absolute (= relative to (0,0)) location on a grid
A vector is a pair of 16-bit integer values that are the x and y coordinates of an absolute or relative location on an integer grid. A vector can be constructed from its x and y values. When no values are supplied a vector defaults to (0,0).
Vectors are intended to represent a location, displacement, or size on a garphics screen. 16 bits should be more than enough for this purpose.
When a vector is used to identify a pixel on a screen (0,0) is the top-left pixel.
Two vectors can be added or subtracted to yield a new vector. A vector can be multiplied or divided by an integer to yield a new vector. Vectors can be compared for equality and inequality. The x_projection() and y_projection() functions return the projection of the vector on the two axises. The function is_within() tests whether a vector is within the box bounded by the origin and the argument.
For debugging, a << operator is provided to print a vector.
A vector fits in a single (32 bits) word. It has no references to other objects.
Definition at line 52 of file graphics.h.
|
inline |
returns the absolute of a vector
The absolute of a vector is the original vector, mirrored into the first quadrant by the x and y axises. In other words, the x and y of the absolute are the absolutes of the original x and y.
Definition at line 156 of file graphics.h.
|
inline |
returns the direction of a vector
The direction of a vector is a vector that, for both its x and y component, has the value 1 or -1, and the same sign as the original vector.
Definition at line 147 of file graphics.h.
|
inline |
reports whether te vector is within the box [0,p>
The call a.is_within(b) returns true iff a is within the rectangle [(0,0),b], where the boundary lines that go through (0,0) are included, but the boundaries that go through b are excluded.
Definition at line 187 of file graphics.h.
|
inline |
returns with x and y swapped
In other words, the return vector as mirrored in the y=x line.
Definition at line 178 of file graphics.h.
|
inline |
returns the projection of the vector on the x axis
In other words, the vector with y set to 0.
Definition at line 166 of file graphics.h.
|
inline |
returns the projection of the vector on the y axis
In other words, the vector with x set to 0.
Definition at line 172 of file graphics.h.
|
related |
prints a vector
This operator prints a vector in the (%d,%d) format.