flutter_quad_annotator 0.1.0 copy "flutter_quad_annotator: ^0.1.0" to clipboard
flutter_quad_annotator: ^0.1.0 copied to clipboard

A Flutter package for quadrilateral annotation with draggable vertices and edges, featuring magnifier, grid assistance, and highly customizable styling options.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2024-12-19 #

๐Ÿ”„ Major Refactoring #

  • BREAKING CHANGE: Refactored breathing animation and magnifier parameters into dedicated configuration objects
  • Replaced scattered parameters with BreathingAnimation and MagnifierConfiguration classes
  • Improved code organization and maintainability

โœจ New Features #

  • BreathingAnimation Configuration:

    • Added BreathingAnimation class for centralized breathing effect configuration
    • Configurable breathing color, duration, opacity range, spacing, and stroke width
    • Enhanced visual feedback with customizable breathing light effects
  • MagnifierConfiguration Enhancement:

    • Added MagnifierConfiguration class for comprehensive magnifier settings
    • Support for multiple magnifier shapes (circle, square)
    • Configurable position modes (edge, corner, follow)
    • Customizable crosshair appearance and border styling
    • Enhanced magnifier positioning with corner and edge offset options

๐Ÿ› ๏ธ API Improvements #

  • Simplified API with grouped configuration parameters
  • Better type safety with dedicated configuration classes
  • Improved extensibility for future feature additions
  • Enhanced code reusability across different use cases
  • Dynamic Size Detection: Width and height parameters are now optional, supporting automatic size detection
  • Enhanced Magnifier Positioning: edgeOffset parameter type changed from double to Offset for 2D positioning (edgeOffset ๅ‚ๆ•ฐ็ฑปๅž‹ไปŽ double ๅ˜ไธบ Offset ไปฅๆ”ฏๆŒไบŒ็ปดๅฎšไฝ)

๐Ÿ“š Documentation #

  • Updated README.md with new API structure
  • Added comprehensive configuration examples
  • Removed outdated grid assistance feature documentation
  • Enhanced API documentation with parameter tables

๐Ÿ”ง Developer Experience #

  • Better IntelliSense support with structured configuration objects
  • Cleaner code organization in example applications
  • Improved maintainability with logical parameter grouping

โš ๏ธ Migration Guide #

To migrate from 0.0.1 to 0.1.0:

// Old API (0.0.1)
QuadAnnotatorBox(
  enableBreathing: true,
  breathingColor: Colors.white,
  enableMagnifier: true,
  magnifierRadius: 60.0,
)

// New API (0.1.0)
QuadAnnotatorBox(
  breathing: const BreathingAnimation(
    enabled: true,
    color: Colors.white,
  ),
  magnifier: const MagnifierConfiguration(
    enabled: true,
    radius: 60.0,
  ),
)

0.0.1 - 2024-12-19 #

Added #

  • ๐ŸŽ‰ Initial release of Flutter Quad Annotator package

  • โœจ Core Features:

    • Draggable quadrilateral vertices for precise shape adjustment
    • Draggable edges for moving entire quadrilateral
    • Interactive magnifier with customizable size and scale
    • Optional grid overlay for alignment assistance
    • Single-touch gesture recognition to avoid multi-touch interference
  • ๐ŸŽจ Customization Options:

    • Configurable vertex colors, sizes, and styles
    • Customizable edge colors and widths
    • Adjustable background colors
    • Grid spacing and appearance settings
    • Magnifier positioning and behavior options
  • ๐Ÿ“ฑ Event System:

    • onVerticesChanged - Triggered when quadrilateral shape changes
    • onVertexDragStart / onVertexDragEnd - Vertex drag lifecycle events
    • onEdgeDragStart / onEdgeDragEnd - Edge drag lifecycle events
  • ๐Ÿ”ง Developer Experience:

    • Comprehensive example application
    • Interactive control panel for testing all features
    • Real-time coordinate display
    • Well-documented API with inline comments
  • ๐Ÿ—๏ธ Architecture:

    • QuadAnnotatorBox - Main annotation widget
    • QuadAnnotatorController - State management
    • RectangleFeature - Quadrilateral data model
    • QuadrilateralPainter - Custom rendering engine
    • SingleTouchPanGestureRecognizer - Gesture handling
  • ๐ŸŽฏ Additional Features:

    • Auto-detection support with rectangle_detector integration
    • Preview mode for read-only display
    • Flexible initialization with custom or auto-detected rectangles
    • Optimized performance with efficient rendering

Technical Details #

  • Flutter SDK: >=1.17.0
  • Dart SDK: ^3.8.1
  • Dependencies: rectangle_detector ^1.0.0
  • Platform Support: iOS, Android, Web, Desktop

Documentation #

  • Comprehensive README with usage examples
  • API documentation with parameter descriptions
  • Example application demonstrating all features
  • MIT License for open-source usage

[Unreleased] #

Planned Features #

  • โŒ Undo/Redo functionality
  • โŒ Keyboard shortcuts support
  • โŒ Export/Import quadrilateral data
  • โŒ Multiple quadrilateral support
  • โŒ Animation transitions
  • โŒ Accessibility improvements
  • โŒ Performance optimizations
  • โŒ Additional gesture recognizers

Note: This changelog follows the Keep a Changelog format. For migration guides and breaking changes, please refer to the documentation.

1
likes
0
points
55
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for quadrilateral annotation with draggable vertices and edges, featuring magnifier, grid assistance, and highly customizable styling options.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, rectangle_detector

More

Packages that depend on flutter_quad_annotator