/* Drawing::drawLineTabbed * Draws a line from [start] to [end] *******************************************************************/ void Drawing::drawLineTabbed(fpoint2_t start, fpoint2_t end, double tab, double tab_max) { // Draw line glBegin(GL_LINES); glVertex2d(start.x, start.y); glVertex2d(end.x, end.y); glEnd(); // Calculate midpoint fpoint2_t mid; mid.x = start.x + ((end.x - start.x) * 0.5); mid.y = start.y + ((end.y - start.y) * 0.5); // Calculate tab length double tablen = MathStuff::distance(start, end) * tab; if (tablen > tab_max) tablen = tab_max; if (tablen < 2) tablen = 2; // Calculate tab endpoint fpoint2_t invdir(-(end.y - start.y), end.x - start.x); invdir.normalize(); // Draw tab glBegin(GL_LINES); glVertex2d(mid.x, mid.y); glVertex2d(mid.x - invdir.x*tablen, mid.y - invdir.y*tablen); glEnd(); }
/* Drawing::drawLineTabbed * Draws a line from [x1,y1] to [x2,y2] *******************************************************************/ void Drawing::drawLineTabbed(double x1, double y1, double x2, double y2, double tab, double tab_max) { // Draw line glBegin(GL_LINES); glVertex2d(x1, y1); glVertex2d(x2, y2); glEnd(); // Calculate midpoint fpoint2_t mid; mid.x = x1 + ((x2 - x1) * 0.5); mid.y = y1 + ((y1 - y1) * 0.5); // Calculate tab length double tablen = MathStuff::distance(x1, y1, x2, y2) * tab; if (tablen > tab_max) tablen = tab_max; if (tablen < 2) tablen = 2; // Calculate tab endpoint fpoint2_t invdir(-(y2 - y1), x2 - x1); invdir.normalize(); // Draw tab glBegin(GL_LINES); glVertex2d(mid.x, mid.y); glVertex2d(mid.x - invdir.x*tablen, mid.y - invdir.y*tablen); glEnd(); }