Metadata-Version: 2.1
Name: pyc3dserver
Version: 0.0.4
Summary: Python interface of C3Dserver software for reading and editing C3D motion capture files.
Home-page: https://github.com/mkjung99/pyc3dserver
Author: Moon Ki Jung
Author-email: m.k.jung@outlook.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Requires-Python: >=3.7
Description-Content-Type: text/markdown

# PyC3Dserver
Python interface of C3Dserver software for reading and editing C3D motion capture files.

## Description
PyC3Dserver is a python interace of C3Dserver using PyWin32.

## Installation
PyC3Dserver can be installed from [PyPI](https://pypi.org/project/pyc3dserver/) using ```pip``` on Python>=3.7.

```bash
pip install pyc3dserver
```

## Prerequisites
C3Dserver x64 edition (for Windows x64 platforms) installation: https://www.c3dserver.com/

## Usage
Most of numerical inputs and outputs using PyC3Dserver will be in the form of NumPy arrays. So it is recommended to import NumPy as well.
```python
import numpy as np
```
After the installation of PyC3Dserver, you can import it as follows:
```python
import pyc3dserver as c3d
```
You can get the COM object of C3Dserver like this. You need to use this COM object while you are working with PyC3Dserver module.
```python
# Get the COM object of C3Dserver
itf = c3d.c3dserver()
```
Then, you can open a C3D file.
```python
# Open a C3D file
ret = c3d.open_c3d(itf, "sample.c3d")
```
Following functions are most useful in order extract the information from a C3D file. All the outputs are python dictionary types.
```python
# For the information of header
dict_header = c3d.get_dict_header(itf)
# For the information of all groups
dict_groups = c3d.get_dict_groups(itf)
# For the information of all markers(points)
dict_markers = c3d.get_dict_markers(itf)
# For the information of all forces/moments
dict_forces = c3d.get_dict_forces(itf)
# For the information of all analogs(excluding or including forces/moments)
dict_analogs = c3d.get_dict_analogs(itf)
```
After all your processes, it is recommended to close the open C3D file from C3Dserver.
```python
# Close the open file from C3Dserver
ret = c3d.close_c3d(itf)
```

## Examples
There are more functions to get the information of individual markers and analogs. Also there are other functions for editing C3D files.
You can find some examples [here](https://github.com/mkjung99/pyc3dserver_examples).

## Dependencies
- PyWin32: ([GitHub](https://github.com/mhammond/pywin32), [PyPI](https://pypi.org/project/pywin32/), [Anaconda](https://anaconda.org/anaconda/pywin32))
- NumPy: ([Website](https://numpy.org/), [PyPI](https://pypi.org/project/numpy/), [Anaconda](https://anaconda.org/anaconda/numpy))
- SciPy: ([Website](https://www.scipy.org/), [PyPI](https://pypi.org/project/scipy/), [Anaconda](https://anaconda.org/anaconda/scipy))

## References
- [C3D.ORG](https://www.c3d.org/)
- [C3Dserver.com](https://www.c3dserver.com/)
- [Motion Lab Systems, Inc.](https://www.motion-labs.com/)
- [PyWin32](https://github.com/mhammond/pywin32)

## How to cite this work (all versions)
- Please check the lastet version on the link: [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3903913.svg)](https://doi.org/10.5281/zenodo.3903913)

## License
[MIT](https://choosealicense.com/licenses/mit/)


