| 255 | } |
| 256 | |
| 257 | void GridModifyTool::draw(SkCanvas* canvas, const DrawData& drawData) { |
| 258 | NetworkingObjects::NetObjTemporaryPtr<WorldGrid> gLock = grid.lock(); |
| 259 | if(gLock) { |
| 260 | WorldGrid& g = *gLock; |
| 261 | if(g.bounds.has_value()) { |
| 262 | const auto& b = g.bounds.value(); |
| 263 | Vector2f bMin = drawP.world.drawData.cam.c.to_space(b.min); |
| 264 | Vector2f bMax = drawP.world.drawData.cam.c.to_space(b.max); |
| 265 | SkPaint rectBoundsPaint; |
| 266 | rectBoundsPaint.setColor4f(drawP.world.canvasTheme.get_tool_front_color()); |
| 267 | rectBoundsPaint.setStroke(true); |
| 268 | rectBoundsPaint.setStrokeWidth(0.0f); |
| 269 | rectBoundsPaint.setAntiAlias(drawData.skiaAA); |
| 270 | canvas->drawRect(SkRect::MakeLTRB(bMin.x(), bMin.y(), bMax.x(), bMax.y()), rectBoundsPaint); |
| 271 | if(selectionMode == 0 || selectionMode == 4) |
| 272 | drawP.draw_drag_circle(canvas, bMax, {0.9f, 0.5f, 0.1f, 1.0f}, drawData); |
| 273 | if(selectionMode == 0 || selectionMode == 3) |
| 274 | drawP.draw_drag_circle(canvas, bMin, {0.9f, 0.5f, 0.1f, 1.0f}, drawData); |
| 275 | } |
| 276 | if(selectionMode == 0 || selectionMode == 2) { |
| 277 | Vector2f gSizeScreenPos; |
| 278 | auto mouseWorldPos = drawP.world.drawData.cam.c.from_space(drawData.main->input.mouse.pos); |
| 279 | if(mouseWorldPos.x() < g.offset.x() && selectionMode == 2) |
| 280 | gSizeScreenPos = drawData.cam.c.to_space(g.offset - WorldVec{g.size, 0}); |
| 281 | else |
| 282 | gSizeScreenPos = drawData.cam.c.to_space(g.offset + WorldVec{g.size, 0}); |
| 283 | drawP.draw_drag_circle(canvas, gSizeScreenPos, {0.1f, 0.9f, 0.9f, 1.0f}, drawData); |
| 284 | } |
| 285 | if(selectionMode == 0 || selectionMode == 1 || selectionMode == 3 || selectionMode == 4) { |
| 286 | Vector2f gOffset = drawData.cam.c.to_space(g.offset); |
| 287 | drawP.draw_drag_circle(canvas, gOffset, {1.0f, 0.27f, 0.27f, 1.0f}, drawData); |
| 288 | } |
| 289 | } |
| 290 | } |
| 291 | |
| 292 | void GridModifyTool::switch_tool(DrawingProgramToolType newTool) { |
| 293 | NetworkingObjects::NetObjTemporaryPtr<WorldGrid> gLock = grid.lock(); |
nothing calls this directly
no test coverage detected