gmio/README.md
2015-05-06 09:39:37 +02:00

101 lines
3.9 KiB
Markdown

GeomIO: C library for geometry input/output
===========================================
This is GeomIO v0.1dev
GeomIO is a reusable C library whose purpose is to provide complete I/O
support for various CAD file formats (eg. STL)
GeomIO aims to be fast, portable (ISO-C90 conformance) and feature-rich.
Main highlights:
* "Abstract" streams that does not tie the user to C stream (`FILE*`).
GeomIO provides a general stream structure based on callbacks, so that
any kind of device can be used (memory, file, socket, ...)
* Operations can be easily aborted
* Buffering of input/ouput for efficient device usage
* Available under the CeCILL-B license, which is fully BSD compatible
Current version only supports STL file format (STereoLithography). Support of
STL is complete:
* Binary(little/big endian) and ASCII formats
* Header data and "attribute byte count" for binary format
* Name of solid for ASCII format
* Detection of the input data format
In addition, the STL module has the following advatanges:
* The user keeps its own geometry data structures, no conversion needed.
This reduces the effort so that the user just specifies callbacks for
retrieval/creation of geometry data
* No dynamic memory allocations
* Extended support of OpenCascade's `StlMesh_Mesh`
Building GeomIO
===============
GeomIO can be built with CMake, by default a static library is generated.
1. For an out-of-source build, create a directory where the build will take
place (say `build/`)
2. Call `cmake`, passing as argument the directory where is located
CMakeLists.txt
3. `(n)make`
4. `(n)make install`
Read CMakeLists.txt to figure out how to build debug and release libraries.
For the first use of GeomIO, you should run unit tests:
`(n)make check`
How to report a bug
===================
If you think you have found a bug in GeomIO, we would like to hear
about it so that we can fix it. The GeomIO bug tracking system is
open to the public at https://github.com/fougue/gmio/issues.
Before reporting a bug, please use the bug-tracker's search functions
to see if the issue is already known.
Always include the following information in your bug report: the name
and version number of your compiler; the name and version number of
your operating system; the version of GeomIO you are using, and
what configure options it was compiled with.
If the problem you are reporting is only visible at run-time, try to
create a small test program that shows the problem when run.
License
=======
This software is governed by the CeCILL-B license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL-B
license as circulated by CEA, CNRS and INRIA at the following URL
http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited
liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL-B license and that you accept its terms.