Metadata-Version: 2.4
Name: pavpen-geometry-calculator
Version: 0.1.1.dev46
Summary: Disparate utilities for calculating coordinates and other elements of geometric constructions
Project-URL: Documentation, https://pavpen.github.io/python-pavpen-geometry-calculator/
Project-URL: Issues, https://github.com/pavpen/python-pavpen-geometry-calculator/issues
Project-URL: Source, https://github.com/pavpen/python-pavpen-geometry-calculator
Author-email: "Pavel M. Penev" <pavpen@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Manufacturing
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Software Development :: Libraries
Classifier: Typing :: Typed
Requires-Python: >=3.12
Description-Content-Type: text/markdown

# Geometry Calculator

[![Measure test coverage](https://github.com/pavpen/python-pavpen-geometry-calculator/actions/workflows/measure-test-coverage.yaml/badge.svg?event=push)](https://github.com/pavpen/python-pavpen-geometry-calculator/actions/workflows/measure-test-coverage.yaml)
[![Code coverage report](https://raw.githubusercontent.com/wiki/pavpen/python-pavpen-geometry-calculator/status/tests/reports/codecov-badge.svg)](https://github.com/pavpen/python-pavpen-geometry-calculator/wiki/coverage#test-coverage)

Calculate coordinates, and other elements of a collection of geometric
constructions.

-----

## Table of Contents

* [Example](#example)
* [Installation](#installation)
* [License](#license)
* [Documentation](#documentation)

## Example

```python
>>> # Calculate an orthonormal basis of a space that spans a given set of
>>> # points
>>>
>>> import math
>>> from pavpen.geometry_calculator import OrthonormalBasisCalculator
>>> from pavpen.geometry_calculator.vector_field_implementations import (
...    TupleFloatVectorFieldOperations,
... )
>>>
>>> OrthonormalBasisCalculator(
...    vector_field_operations=TupleFloatVectorFieldOperations.for_3d(),
...    float_tolerance=1e-8,
...    points=((0, 0, 0), (0, 2, 0), (0, 0, -2)),
... ).calculate().basis_vectors
[(0.0, 1.0, 0.0), (0.0, 0.0, -1.0)]

```

### Notes

* Algebraic operations are separate from the objects storing vectors.  This
  allows treating existing objects as vectors without having to modify their
  inheritance hierarchy, or wrap them.
  * In the above example `TupleFloatVectorFieldOperations.for_3d()` returns an
    object which treats a `tuple[float, float, float]` as a 3-dimensional
    orthonormal vector.

## Installation

```console
pip install pavpen-geometry-calculator
```

## License

Geometry Calculator is distributed under the terms of the
[MIT](https://spdx.org/licenses/MIT.html) license.

## Documentation

See the
[API documentation site](https://pavpen.github.io/python-pavpen-geometry-calculator/).
