- //Vertical
- if (line.x1 == line.x2 && x == line.x1)
- return between(y, line.y1, line.y2);
- //Horizontal
- if (line.y1 == line.y2 && y == line.y2)
- return between(x, line.x1, line.x2);
- //Diagonal
- if (abs(line.y2-line.y1) == abs(line.x2-line.x1)) {
- int slope = (line.y2 - line.y1) / (line.x2 - line.x1);
+ int slope;
+ switch (line.d) {
+ case horz:
+ return y == line.y1 && between(x, line.x1, line.x2);
+ case vert:
+ return x == line.x1 && between(y, line.y1, line.y2);
+ case diag:
+ slope = (line.y2 - line.y1) / (line.x2 - line.x1);