Skip to content

Added rectilinear convex decomposition

Choose a tag to compare

@luk036 luk036 released this 12 Sep 06:35
· 208 commits to main since this release

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 implementation
    • is_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() to is_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.