import { BaseTool } from './base-tool'; import type { PointerState, ToolSettings } from '@/types'; /** * Pencil tool - 1px drawing */ export class PencilTool extends BaseTool { constructor() { super('Pencil'); } onPointerDown( pointer: PointerState, ctx: CanvasRenderingContext2D, settings: ToolSettings ): void { this.isDrawing = true; ctx.strokeStyle = settings.color; ctx.lineWidth = 1; ctx.lineCap = 'round'; ctx.lineJoin = 'round'; ctx.globalAlpha = settings.opacity; ctx.beginPath(); ctx.moveTo(pointer.x, pointer.y); } onPointerMove( pointer: PointerState, ctx: CanvasRenderingContext2D, settings: ToolSettings ): void { if (!this.isDrawing) return; ctx.lineTo(pointer.x, pointer.y); ctx.stroke(); } onPointerUp( pointer: PointerState, ctx: CanvasRenderingContext2D, settings: ToolSettings ): void { if (!this.isDrawing) return; this.isDrawing = false; ctx.globalAlpha = 1; } }