Skip to content
/ pdan Public

Implementation of the algorithm by Skorobogatov et al., 2021, for decomposition of convex polygons.

License

Notifications You must be signed in to change notification settings

GeorgySk/pdan

Repository files navigation

pdan

Summary

pdan is a Python library that implements the algorithm of Skorobogatov, G. et al., 2021 for convex polygon decomposition into separate parts depending on the area requirements.


In what follows

  • python is an alias for python3.8 or any later version (python3.9 and so on).

Installation

Install the latest pip & setuptools packages versions:

python -m pip install --upgrade pip setuptools

User

Download and install the latest stable version from PyPI repository:

python -m pip install --upgrade pdan

Developer

Download the latest version from GitHub repository

git clone https://github.com/LostFan123/pdan.git
cd pdan

Install dependencies:

poetry install

Usage

>>> from pdan import minimizing_split, Contour, Point, Polygon
>>> contour = Contour([Point(0, 0), Point(1, 0), Point(1, 1), Point(0, 1)])
>>> part, other = minimizing_split(contour, 0.5, key=lambda x, y: x.length)
>>> Polygon(part).area == Polygon(other).area == 0.5
True

Development

Bumping version

Preparation

Install bump-my-version.

Pre-release

Choose which version number category to bump following semver specification.

Test bumping version

bump-my-version bump --dry-run --verbose $CATEGORY

where $CATEGORY is the target version number category name, possible values are patch/minor/major.

Bump version

bump-my-version bump --verbose $CATEGORY

This will set version to major.minor.patch-alpha.

Release

Test bumping version

bump-my-version bump --dry-run --verbose release

Bump version

bump-my-version bump --verbose release

This will set version to major.minor.patch.

Running tests

Plain:

pytest

Inside Docker container:

docker compose up

Bash script (e.g. can be used in Git hooks):

./run-tests.sh

or

./run-tests.sh cpython

PowerShell script (e.g. can be used in Git hooks):

.\run-tests.ps1

or

.\run-tests.ps1 cpython

About

Implementation of the algorithm by Skorobogatov et al., 2021, for decomposition of convex polygons.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages