Repository navigation
Added rectilinear convex decomposition
Full Changelog: 0.1...0.5
Release Notes: physdes-py
Version: 0.1 → 0.5
Overview
This release introduces significant enhancements to the physdes-py physical design library, focusing on polygon manipulation capabilities, performance improvements, and expanded functionality for geometric operations.
New Features
- RPolygon.to_polygon() Implementation: Added conversion method from rectangular polygons to general polygons
- Polygon Direction Detection:
Polygon.is_clockwise()method implementationis_anticlockwise()method for both Polygon and RPolygon classes
- Geometric Property Checks:
Polygon.is_rectilinear()method implementation- Monotonicity checks for polygons
- Advanced Polygon Operations:
- Convex hull generation for polygons
- Rectilinear convex decomposition capabilities
- Monotone polygon creation fixes
- New Module: Added GEMINLmd module (specific functionality not detailed)
Performance Improvements
- Enhanced performance across multiple polygon operations
- Better implementation of
RPolygon.to_polygon()method - Optimized geometric algorithms
Code Quality & Maintenance
- Comprehensive Testing: Added unit tests for rollist.py and expanded test coverage
- Code Formatting: Applied ruff check --fix and ruff format throughout the codebase
- Pre-commit Integration: Implemented pre-commit hooks for consistent code quality
- CI/CD Fixes: Resolved GitHub Actions workflow issues and build problems
Technical Enhancements
- Benchmarking: Added benchmark tests comparing Polygon and RPolygon performance
- API Refinements: Changed
is_clockwise()tois_anticlockwise()for more intuitive API - Documentation: Updates for document generation support
Experimental Features
- Initial implementations of convex decomposition algorithms
- Ongoing development of rectilinear convex decomposition
Files Changed
- 36 files modified across the codebase
- Extensive changes to core geometric functionality
- Test suite expansions
Contributors
- luk036 (all 28 commits)
This release represents a major step forward in the library's geometric manipulation capabilities, particularly in polygon analysis, decomposition, and property detection. The improvements in code quality and testing infrastructure provide a more robust foundation for physical design applications.