Metadata-Version: 2.1
Name: compas_occt
Version: 0.1.18
Summary: Nanobind wrapper for OCCT
Author-Email: Petras Vestartas <petrasvestartas@gmail.com>
Classifier: Development Status :: 3 - Alpha
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: C++
Classifier: License :: OSI Approved :: MIT License
Project-URL: Homepage, https://github.com//compas_occt
Project-URL: Repository, https://github.com//compas_occt
Project-URL: Issues, https://github.com//compas_occt/issues
Requires-Python: >=3.9
Requires-Dist: numpy>=1.21.0
Requires-Dist: compas>=2.4
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: build; extra == "dev"
Provides-Extra: docs
Requires-Dist: markdown-callouts>=0.4; extra == "docs"
Requires-Dist: markdown-exec>=1.8; extra == "docs"
Requires-Dist: mike; extra == "docs"
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocs-autorefs>=1.4; extra == "docs"
Requires-Dist: mkdocs-coverage>=1.0; extra == "docs"
Requires-Dist: mkdocs-git-revision-date-localized-plugin>=1.2; extra == "docs"
Requires-Dist: mkdocs-llmstxt>=0.2; extra == "docs"
Requires-Dist: mkdocs-material>=9.5; extra == "docs"
Requires-Dist: mkdocs-minify-plugin>=0.8; extra == "docs"
Requires-Dist: mkdocs-redirects>=1.2; extra == "docs"
Requires-Dist: mkdocs-section-index>=0.3; extra == "docs"
Requires-Dist: mkdocstrings[python]; extra == "docs"
Requires-Dist: pydantic>=2.10; extra == "docs"
Requires-Dist: tomli>=2.0; python_version < "3.11" and extra == "docs"
Description-Content-Type: text/markdown

# compas_occt

Fast [OpenCASCADE (OCCT 8)](https://github.com/Open-Cascade-SAS/OCCT) geometry for COMPAS —
NURBS curves and surfaces, Breps, booleans, and STEP/IGES/STL/BREP I/O.

It's a drop-in replacement for [`compas_occ`](https://github.com/compas-dev/compas_occ) with the
same API, but links OCCT directly through one compiled [nanobind](https://github.com/wjakob/nanobind)
module instead of depending on `pythonocc-core`.

## Install

```bash
pip install compas_occt
```

## Usage

```python
from compas.geometry import Box, Point
from compas.geometry import Brep, NurbsCurve

# COMPAS dispatches to the OCCT backend
brep = Brep.from_box(Box(1))
brep.to_step("box.step")

curve = NurbsCurve.from_points([Point(0, 0, 0), Point(3, 6, 0), Point(6, -3, 3), Point(10, 0, 0)])
print(curve.length())
```

## Documentation

<https://petrasvestartas.github.io/compas_occt/>

## Contributing

See the docs for building from source. Report bugs on the
[issue tracker](https://github.com/petrasvestartas/compas_occt/issues).

## License

MIT
