[general]
name=MSA: CurveMaster
qgisMinimumVersion=3.0
qgisMaximumVersion=3.99
description=CAD tool for interactive curve adjustment, fillet rounding, Trim/Extend, dynamic offset, Polar Tracking, and CAD Smart Pour/Erase pavement filling
about=Enables interactive bending of segments into arcs, corner and two-line fillet rounding with auto-trim, AutoCAD-style Trim/Extend, CAD parallel offset, polyline/polygon drawing with Polar Tracking, and CAD Smart Pour for interactive pavement surface filling between curbs with dynamic radius, auto-merge, and Shift+Click CAD Smart Erase cutout. Includes on-canvas CAD HUD overlays with keyboard entry, multi-layer boundary detection, and full Undo/Redo support.
description[pl]=Narzędzie CAD do korekty łuków, zaokrąglania narożników (fillet), trim/extend, offsetu, rysowania z Polar Trackingiem oraz wylewania i wycinania nawierzchni (Smart Pour / Smart Erase)
about[pl]=Wtyczka umożliwia precyzyjne wyginanie prostych odcinków w łuki, zaokrąglanie wierzchołków i narożników dwóch linii (fillet) z automatycznym docięciem, przycinanie i wydłużanie obiektów (Trim/Extend), prosty offset równoległy CAD, rysowanie ze śledzeniem biegunowym (Polar Tracking) oraz interaktywne wylewanie nawierzchni (CAD Smart Pour) między krawężnikami z automatycznym scalaniem (Auto-Merge) i wycinaniem fragmentów (Shift+Click Gumka CAD). Posiada pływające okienka CAD HUD z wpisywaniem wartości z klawiatury oraz pełną obsługę Undo/Redo.
version=1.7.4
author=Mikołaj Sazonov
email=curvemaster@sazonov.work
tracker=https://github.com/mikolajsazonov-bit/msa-curvemaster/issues
repository=https://github.com/mikolajsazonov-bit/msa-curvemaster
homepage=https://github.com/mikolajsazonov-bit/msa-curvemaster
category=Vector
icon=icon.png
experimental=False
deprecated=False
tags=curves, arc, fillet, trim, extend, offset, parallel, polar, tracking, angle, cad, geometry, polyline, polygon, digitizing, vector, smart pour, smart erase, pavement, boundary, hatch
changelog=1.7.4:
        - Metadata fix: Resolved configparser interpolation syntax error in changelog for plugins.qgis.org validation
    1.7.3:
        - Smart Pour: Auto-noding and segment splitting at T-junctions and tangent lines (e.g. lines extended to curb boundaries without explicit vertices)
        - Smart Pour: Configurable gap tolerance (default 0.05 m / 5 cm) preventing flood fill leakage through small gaps, with toolbar spinbox and menu controls
        - Smart Pour: Persistent boundary layers and gap tolerance saved in and restored from QgsProject (with fallback to QSettings) across project open and save
    1.7.2:
        - User Experience: Changed point requirement and layer warnings in Polar Digitizing and Offset tools to gentle blue informational messages that auto-dismiss after 3 seconds
    1.7.1:
        - CAD Arc Mode & Polar Tracking: Fixed tangent direction when continuing existing lines from snapped endpoints (tangent and base angle now always orient smoothly outward away from the line)
        - CAD Arc Mode: Allowed toggling Arc mode with 'A' before placing the initial vertex V0
    1.7.0:
        - Polar Tracking & CAD Digitizing: Holding Shift disables polar tracking and all snapping for freehand drawing
        - CAD Close [C]: Pressing 'C' closes the polyline (snaps to first vertex) or completes the polygon with automatic ring closure
        - CAD Arc Mode [A]: Pressing 'A' toggles Arc segment mode tangent to previous segment (press 'L' to return to Line)
        - CAD Bi-tangent Arc: When the arc approaches any nearby line, edge, or polygon wall, it automatically calculates a bi-tangent arc perfectly tangent to both the start segment and the target edge
        - Clean Undo [Backspace/Delete]: Undoes entire arc segments with a single keypress
    1.6.0:
        - Trim / Extend: Added AutoCAD-style Fence / Crossing line selection mode for batch trimming and extending
        - Drag across lines from empty canvas space or press 'F' / click endpoints to draw a fence line
        - Dynamic live preview: crossed lines highlight simultaneously in red (Trim) or green (Extend)
        - Real-time Shift toggle between batch Trim and batch Extend during fence drawing
        - Single undo/redo step for entire batch fence operation
    1.5.5:
        - Trim / Extend: Added ability to trim terminal and uncrossed lines (deleting the line or part) when no cutting edges intersect them, matching CAD Quick Trim behavior
        - Trim / Extend: Enhanced visual red feedback and status bar cues for full-line trim/delete
        - Trim / Extend: Robust multipart line handling during trim and deletion
    1.5.4:
        - Parallel Offset: Added partial offset feature with Shift Tap (<350ms) toggle and Shift Hold (>=350ms) momentary mode
        - Parallel Offset: Segment length defined by mouse distance from initial click, with direct numeric distance entry support
    1.5.3:
        - Two-line Fillet: Fixed spurious chord creation when filleting between two curved polylines / arcs by filtering all intermediate vertices inside the cut corner
        - Two-line Fillet: Preserved natural line orientation and digitizing direction during fillet trim and arc attachment
        - Two-line Fillet: Resolved corner segments when lines meet at terminal vertices even if clicked further along the curves
    1.5.2:
        - Two-line Fillet: Added robust closed loop / island filleting preserving 100 percent of body vertices and cleanly closing loops
        - Two-line Fillet: Fixed spurious continuation on curved lines to cleanly merge corner lines into a single singlepart LineString without multipart conflicts
        - Corner Fillet: Added support for closed polyline loops and vertex 0 filleting
    1.5.1:
        - Smart Pour / Erase: Dynamic real-time switching between Pour and Erase modes by pressing and holding Shift during radius dragging
        - Smart Pour: Disabled QGIS snapping when picking start point P0 and radius dragging to ensure exact corridor selection
        - Smart Pour: Pre-cached boundary and polygon geometries at P0 for instantaneous 0ms mode switching
    1.5.0:
        - Smart Pour: Added CAD Smart Erase (Shift + Click) for interactive pavement section cutout using dynamic radius
        - Smart Erase: Live visual preview of cutout section in warning red and dedicated eraser HUD overlay
        - Smart Erase: Automatic feature deletion if entire polygon is inside radius, or geometry update with full Undo/Redo support
        - Smart Erase: SinglePart polygon layer support with safe splitting and GeoPackage FID handling
    1.4.1:
        - Smart Pour: Selectable category attribute field on toolbar and dropdown menu
        - Smart Pour: Strict attribute detection based on categorized styling (no guessing if unstyled)
        - Smart Pour: Removed artificial category fallback ("Asfalt"); allows defining a new category when field is selected, or none when unassigned
        - Smart Pour: Prevent unintended auto-merging and column creation when no category field is selected
    1.4.0:
        - Added CAD Smart Pour (Zalej nawierzchnię) tool for interactive pavement surface filling between curbs
        - Dynamic cutoff radius with on-canvas CAD HUD and keyboard entry
        - Auto-merge support for contiguous polygons belonging to the same surface category
        - Live layer styling and color swatch generation for categories in HUD and toolbar
        - Tab/Shift+Tab category switching during drawing
        - Multi-layer boundary selection dialog with project persistence
        - Fix: Prevent C++ SIGSEGV during symbol preview generation using pure QPainter swatches
        - Fix: Fixed dangling QgsMapMouseEvent lifetime in Trim/Extend tool keyboard handling

