@Override public void drawPoint(Vec2 argPoint, float argRadiusOnScreen, Color3f color) { setFillColor(color); setStrokeColor(color); getWorldToScreenToOut(argPoint, tempVec1); canvas.fillCircle(tempVec1.x, tempVec1.y, argRadiusOnScreen); }
@Override public void drawSegment(Vec2 p1, Vec2 p2, Color3f color) { setStrokeColor(color); setFillColor(color); getWorldToScreenToOut(p1, tempVec1); getWorldToScreenToOut(p2, tempVec2); canvas.drawLine(tempVec1.x, tempVec1.y, tempVec2.x, tempVec2.y); }
@Override public void drawPoint(Vec2 argPoint, float argRadiusOnScreen, Color3f color) { if (canvas == null) { log().error(CANVASERROR); return; } setFillColor(color); setStrokeColor(color); getWorldToScreenToOut(argPoint, tempVec1); canvas.fillCircle(tempVec1.x, tempVec1.y, argRadiusOnScreen); }
@Override public void drawCircle(Vec2 center, float radius, Color3f color) { setFillColor(color); setStrokeColor(color); // calculate the effective radius tempVec1.set(center.x + radius, center.y + radius); getWorldToScreenToOut(tempVec1, tempVec1); getWorldToScreenToOut(center, tempVec2); canvas.fillCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); canvas.strokeCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); }
@Override public void drawSegment(Vec2 p1, Vec2 p2, Color3f color) { if (canvas == null) { log().error(CANVASERROR); return; } setStrokeColor(color); setFillColor(color); getWorldToScreenToOut(p1, tempVec1); getWorldToScreenToOut(p2, tempVec2); canvas.drawLine(tempVec1.x, tempVec1.y, tempVec2.x, tempVec2.y); }
@Override public void drawSolidCircle(Vec2 center, float radius, Vec2 axis, Color3f color) { setFillColor(color); setStrokeColor(color); // calculate the effective radius tempVec1.set(center.x + radius, center.y + radius); getWorldToScreenToOut(tempVec1, tempVec1); getWorldToScreenToOut(center, tempVec2); getWorldToScreenToOut(axis, tempVec3); canvas.fillCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); canvas.strokeCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); }
@Override public void drawCircle(Vec2 center, float radius, Color3f color) { if (canvas == null) { log().error(CANVASERROR); return; } setFillColor(color); setStrokeColor(color); // calculate the effective radius tempVec1.set(center.x + radius, center.y + radius); getWorldToScreenToOut(tempVec1, tempVec1); getWorldToScreenToOut(center, tempVec2); canvas.fillCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); canvas.strokeCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); }
@Override public void drawSolidPolygon(Vec2[] vertices, int vertexCount, Color3f color) { setFillColor(color); setStrokeColor(color); Path path = canvas.createPath(); for (int i = 0; i < vertexCount; i++) { getWorldToScreenToOut(vertices[i], tempVec1); if (i == 0) { path.moveTo(tempVec1.x, tempVec1.y); } else { path.lineTo(tempVec1.x, tempVec1.y); } } path.close(); canvas.fillPath(path); canvas.strokePath(path); }
@Override public void drawSolidCircle(Vec2 center, float radius, Vec2 axis, Color3f color) { if (canvas == null) { log().error(CANVASERROR); return; } setFillColor(color); setStrokeColor(color); // calculate the effective radius tempVec1.set(center.x + radius, center.y + radius); getWorldToScreenToOut(tempVec1, tempVec1); getWorldToScreenToOut(center, tempVec2); getWorldToScreenToOut(axis, tempVec3); canvas.fillCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); canvas.strokeCircle(tempVec2.x, tempVec2.y, tempVec1.x - tempVec2.x); }
@Override public void drawSolidPolygon(Vec2[] vertices, int vertexCount, Color3f color) { if (canvas == null) { log().error(CANVASERROR); return; } setFillColor(color); setStrokeColor(color); Path path = canvas.createPath(); for (int i = 0; i < vertexCount; i++) { getWorldToScreenToOut(vertices[i], tempVec1); if (i == 0) { path.moveTo(tempVec1.x, tempVec1.y); } else { path.lineTo(tempVec1.x, tempVec1.y); } } path.close(); canvas.fillPath(path); canvas.strokePath(path); }