# Py4DMath

Py4DMath is a math engine that contains functions which allows a 3D object to translate and rotate.

It consists of the following classes:
1) Vectors
2) Matrix
3) Quaternions

## Table of Contents
- [API Documentation](#api-documentation)
- [Developer's Guide](#developers-guide)
- [Contact](#contact)

## API Documentation

TBD

## Developer's Guide

### Prerequistes
- Python 3.10+
- virtualenv

### Installation

1) Create a new virtual environment, if not already created

```
python -m virtualenv venv
```

2) Activate the virtual environment

```
source venv/bin/activate
```

3) Install dependencies

```
make install-deps
```

### Version Changes

***NOTE***: When making updates to the source code, make sure to bump versions.

1) Update the version number in Py4DMath/version.py, using [semantic versioning](https://semver.org).

2) Update the CHANGES.txt with the new version number and detail what changed.

### Deployment

This package is available on PyPi.

To deploy to PyPi,

1) Build the `dist` package using `make build`

2) Upload to PyPi using `make upload`

## Contact 
Nicholas Chumney - [nicholas.chumney@outlook.com](nicholas.chumney@outlook.com) 

## Acknowledgements
- [3D Math Engine Project](https://www.haroldserrano.com/math-engine-project/)
