Metadata-Version: 2.4
Name: planex2d-occ
Version: 0.3.0.2.dev1
Summary: planex2d's OpenCASCADE integration for netgen: export to netgen.occ, pads and pockets, sections and projections
Keywords: geometry,2D,CAD,OpenCASCADE,netgen,NGSolve,meshing,planex2d
Author: Sebastian Hirnschall
License-Expression: LGPL-2.1-or-later AND MPL-2.0 AND Apache-2.0 AND BSD-3-Clause AND MIT
License-File: LICENSE
License-File: licenses/Eigen-COPYING.APACHE
License-File: licenses/Eigen-COPYING.BSD
License-File: licenses/Eigen-COPYING.MPL2
License-File: licenses/pybind11-LICENSE
License-File: licenses/Taskflow-LICENSE
License-File: THIRD_PARTY_NOTICES.md
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: C++
Classifier: Topic :: Scientific/Engineering
Project-URL: Homepage, https://planex2d.org
Project-URL: Documentation, https://planex2d.org/docs/
Project-URL: Source, https://github.com/planex2d/planex2d-occ
Project-URL: Issues, https://github.com/planex2d/planex2d/issues
Requires-Python: >=3.11
Requires-Dist: planex2d==0.3.0
Requires-Dist: netgen-mesher<=6.2.2608.post78.dev0,>=6.2.2608.post33.dev0
Description-Content-Type: text/markdown

# planex2d-occ

planex2d's OpenCASCADE integration for [netgen](https://github.com/NGSolve/netgen): the exports to netgen.occ
(`face.ToOCCFace()`, `px.OCCGeometry(...)`), pads and pockets, sections and projections of OCC shapes.
[planex2d](https://pypi.org/project/planex2d/) itself runs without netgen; install this package to use netgen with it:

```
pip install planex2d[occ]
```

pip then picks the planex2d-occ that fits: every release is built for exactly one planex2d version and for the most
recent netgen-mesher releases, and keeps a netgen you have installed if it is one of them. planex loads the module for
your netgen on import; there is nothing to import yourself.

With a nightly build of netgen or NGSolve (such as 6.2.2608.post78.dev0), install with `--pre`:

```
pip install --pre planex2d[occ]
```

It takes the pre-release of planex2d-occ that has a module for your nightly: it covers netgen's nightlies since its
newest release, up to the newest one its daily build has reached. A nightly published after that build is replaced by
the newest one it covers (pip then warns that your NGSolve no longer fits); the next day's build covers it. A nightly
from before netgen's newest release has no module: name your NGSolve (`pip install --pre planex2d[occ]
ngsolve==<your version>`) so that pip keeps it, and planex runs without its OCC part, with a warning at `import planex`
that names the netgen versions planex2d-occ is built for. Without `--pre`, pip sees only the releases for netgen's real
releases and would install one of those in place of your nightly.

## Versions

- `0.2.0.3` is the third build for planex2d `0.2.0`. A new build comes out when netgen publishes a release (post
  releases included); it then holds modules for the newest netgen releases.
- `0.2.0.4.dev2` is a pre-release after it: modules for netgen's nightly builds since its newest release. A new one comes
  out with each nightly; the next build for a netgen release sorts above it.
- Each release lists the planex2d and netgen-mesher versions it is for in its requirements and its release notes.

## How it is built

The modules are compiled from planex2d's source distribution of the pinned version (its OCC bindings), once per netgen
version, against that netgen and the OpenCASCADE it was built with, using netgen's own pybind11. A scheduled workflow
builds and tests a new release when netgen publishes a release or a nightly build: `.github/workflows/release.yml`, with the scripts in `tools/`.

## License

LGPL-2.1-or-later, as planex2d; see `LICENSE` and `THIRD_PARTY_NOTICES.md`.
