[![Build Status](https://travis-ci.org/tpaviot/oce.png?branch=master)](https://travis-ci.org/tpaviot/oce)
Appveyor:
[![Build status](https://ci.appveyor.com/api/projects/status/ff5s1jjpao8kf2c4?svg=true)](https://ci.appveyor.com/project/tpaviot/oce)
[![Join the chat at https://gitter.im/tpaviot/oce](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tpaviot/oce?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

## About

oce is a C++ 3D modeling library. It can be used to develop CAD/CAM softwares, for instance [FreeCad](http://www.freecadweb.org/) or [IfcOpenShell](http://www.ifcopenshell.org/).

oce stands for **o**pencascade **c**ommunity **e**dition. This project aims at gathering patches/ changes/ improvements from the OCC community. Official OCCT documentation and sources are available at http://www.opencascade.org/, you can also theck their development portal at http://dev.opencascade.org.

## Download latest release

You can download source code as well as precompiled binaries for Windows at:

**[oce-0.18.3](https://github.com/tpaviot/oce/releases/tag/OCE-0.18.3)** (February 2018)

## OCE history

Below are listed all the oce releases since the beginning of the project, the matching OCCT version, as well as ABI Change if any (an ABI change means that OCE binaries are not compatible with previous ones).

| OCE release number | ABI Change | OCE release date | OCCT version |
| ------------- | ------------- |  ------------- |------------- |
| [0.18.3](https://github.com/tpaviot/oce/releases/tag/OCE-0.18.3)  | No | February | 6.9.1
| [0.18.2](https://github.com/tpaviot/oce/releases/tag/OCE-0.18.2)  | No | August 2017 | 6.9.1
| [0.18.1](https://github.com/tpaviot/oce/releases/tag/OCE-0.18.1)  | No | May 2017 | 6.9.1
| [0.18](https://github.com/tpaviot/oce/releases/tag/OCE-0.18)  | Yes | January 2017 | 6.9.1
| [0.17.2](https://github.com/tpaviot/oce/releases/tag/OCE-0.17.2)  | No | June 2016 | 6.8.0 
| [0.17.1](https://github.com/tpaviot/oce/releases/tag/OCE-0.17.1)  | No | January 2016 | 6.8.0 |
| [0.17](https://github.com/tpaviot/oce/releases/tag/OCE-0.17)  | Yes | March 2015 | 6.8.0 |
| [0.16.1](https://github.com/tpaviot/oce/releases/tag/OCE-0.16.1) | No | November 2014 | 6.7.1 |
| [0.16](https://github.com/tpaviot/oce/releases/tag/OCE-0.16) | Yes | July 2014 | 6.7.1 |
| [0.15](https://github.com/tpaviot/oce/releases/tag/OCE-0.15) | Yes | February 2014 | 6.7.0 |
| [0.14.1](https://github.com/tpaviot/oce/releases/tag/OCE-0.14.1) | No | January 2014 | 6.6.0 |
| [0.14](https://github.com/tpaviot/oce/releases/tag/OCE-0.14) | No | December 2013 | 6.6.0 |
| [0.13](https://github.com/tpaviot/oce/releases/tag/OCE-0.13) | Yes | September 2013 | 6.6.0 |
| [0.12](https://github.com/tpaviot/oce/releases/tag/OCE-0.12) | Yes | March 2013 | 6.5.4 |
| [0.11](https://github.com/tpaviot/oce/releases/tag/OCE-0.11) | Yes | December 2012 | 6.5.4 |
| [0.10](https://github.com/tpaviot/oce/releases/tag/OCE-0.10) | Yes | June 2012 | 6.5.3 |
| [0.9.1](https://github.com/tpaviot/oce/releases/tag/OCE-0.9.1) | No | January 2012 | 6.5.2 |
| [0.9.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.9.0) | No | January 2012 | 6.5.2 |
| [0.8.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.8.0) | No | December 2011 | 6.5.1 |
| [0.7.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.7.0) | No | October 2011 | 6.5.1 |
| [0.6.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.6.0) | No | September 2011 | 6.5.1 |
| [0.5.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.5.0) | No | August 2011 | 6.5.1 |
| [0.4.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.4.0) | No | July 2011 | 6.5.0 |
| [0.3.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.3.0) | No | June 2011 | 6.5.0 |
| [0.2.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.2.0) | No | May 2011 | 6.5.0 |
| [0.1.0](https://github.com/tpaviot/oce/releases/tag/OCE-0.1.0) |  First public release | April 2011 | 6.5.0 |

## OCE documentation

Read the official upstream documentation for 6.9.1 release, at:

https://www.opencascade.com/doc/occt-6.9.1/refman/html/index.html

## OCE community

We use the following online resources:
  * Sources
       https://github.com/tpaviot/oce
  * Releases/Downloads/Precompiled binaries:
       https://github.com/tpaviot/oce/releases
  * Bug tracker
       https://github.com/tpaviot/oce/issues
  * Mailing list
       http://groups.google.com/group/oce-dev/about
  * Travis-CI
       https://travis-ci.org/tpaviot/oce
  * Appveyor
       https://ci.appveyor.com/project/tpaviot/oce

To request write access to the repository, just ask @tpaviot (tpaviot@gmail.com).

## Get the source and compile
 
  * Create a local copy of the github repository:
``` bash
$ git clone git://github.com/tpaviot/oce.git
```
  * Stay to date with latest developements:

``` bash
$ cd oce
$ git pull
```
  * Compile:

Read the [BUILD.Unix.md](BUILD.Unix.md) file for instructions on compiling for Unix (for both Linux and MacOSX users). Windows users should read [BUILD.MINGWw64.md](BUILD.MINGWw64.md) if they use Mingw or [BUILD.MSVC.md](BUILD.MSVC.md) if they prefer MSVC compiler.

## License

OCE has the same license as OCCT; since OCCT 6.7.0 (OCE-0.16.x), you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 2.1 as published by the Free Software Foundation, with special exception defined in the file OCCT_LGPL_EXCEPTION.txt. See LICENSE_LGPL_21.txt for the full license text.
