2015-05-28 15:40:24 +08:00
|
|
|
gmio: C library for geometry input/output
|
2015-03-05 01:25:51 +08:00
|
|
|
===========================================
|
2014-01-21 23:18:17 +08:00
|
|
|
|
2015-05-28 15:40:24 +08:00
|
|
|
gmio is a reusable C library whose purpose is to provide complete I/O
|
2015-03-05 01:25:51 +08:00
|
|
|
support for various CAD file formats (eg. STL)
|
|
|
|
|
2015-05-28 15:40:24 +08:00
|
|
|
gmio aims to be fast, portable (ISO-C90 conformance) and feature-rich.
|
2015-03-05 01:25:51 +08:00
|
|
|
Main highlights:
|
2015-04-01 22:07:00 +08:00
|
|
|
|
|
|
|
* "Abstract" streams that does not tie the user to C stream (`FILE*`).
|
2015-05-28 15:40:24 +08:00
|
|
|
gmio provides a general stream structure based on callbacks, so that
|
2015-04-01 22:07:00 +08:00
|
|
|
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
|
2015-03-05 01:25:51 +08:00
|
|
|
|
2015-06-26 18:40:29 +08:00
|
|
|
|
|
|
|
Supported CAD files format
|
|
|
|
==========================
|
|
|
|
|
|
|
|
Current version only supports the STL file format (STereoLithography), but support is complete :
|
2015-04-01 22:07:00 +08:00
|
|
|
|
|
|
|
* 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
|
2015-06-26 18:40:29 +08:00
|
|
|
* Ability to specify the text formatting to represent float values (ASCII formats)
|
2015-03-05 01:25:51 +08:00
|
|
|
|
|
|
|
In addition, the STL module has the following advatanges:
|
2015-04-01 22:07:00 +08:00
|
|
|
|
|
|
|
* 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`
|
2014-01-21 23:18:17 +08:00
|
|
|
|
|
|
|
|
2015-05-28 15:40:24 +08:00
|
|
|
Building gmio
|
2015-03-05 01:25:51 +08:00
|
|
|
===============
|
2014-01-21 23:18:17 +08:00
|
|
|
|
2015-05-28 15:40:24 +08:00
|
|
|
gmio can be built with CMake, by default a static library is generated.
|
2015-04-01 22:07:00 +08:00
|
|
|
|
|
|
|
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`
|
2014-01-21 23:18:17 +08:00
|
|
|
|
2015-03-03 18:03:50 +08:00
|
|
|
Read CMakeLists.txt to figure out how to build debug and release libraries.
|
2014-01-21 23:18:17 +08:00
|
|
|
|
2015-05-28 15:40:24 +08:00
|
|
|
For the first use of gmio, you should run unit tests:
|
2015-03-05 01:25:51 +08:00
|
|
|
`(n)make check`
|
2014-01-21 23:18:17 +08:00
|
|
|
|
|
|
|
|
2015-03-03 18:03:50 +08:00
|
|
|
How to report a bug
|
|
|
|
===================
|
2014-01-21 23:18:17 +08:00
|
|
|
|
2015-05-28 15:40:24 +08:00
|
|
|
If you think you have found a bug in gmio, we would like to hear
|
|
|
|
about it so that we can fix it. The gmio bug tracking system is
|
2015-05-06 15:39:37 +08:00
|
|
|
open to the public at https://github.com/fougue/gmio/issues.
|
2014-01-21 23:18:17 +08:00
|
|
|
|
|
|
|
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
|
2015-05-28 15:40:24 +08:00
|
|
|
your operating system; the version of gmio you are using, and
|
2014-01-21 23:18:17 +08:00
|
|
|
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.
|
|
|
|
|
|
|
|
|
2015-03-03 18:03:50 +08:00
|
|
|
License
|
|
|
|
=======
|
|
|
|
|
|
|
|
This software is governed by the CeCILL-B license under French law and
|
2014-01-21 23:18:17 +08:00
|
|
|
abiding by the rules of distribution of free software. You can use,
|
2015-03-03 18:03:50 +08:00
|
|
|
modify and/ or redistribute the software under the terms of the CeCILL-B
|
2014-01-21 23:18:17 +08:00
|
|
|
license as circulated by CEA, CNRS and INRIA at the following URL
|
2015-03-30 15:05:25 +08:00
|
|
|
http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
|
2014-01-21 23:18:17 +08:00
|
|
|
|
2015-06-26 00:09:33 +08:00
|
|
|
|
|
|
|
Build status
|
|
|
|
============
|
|
|
|
|
2015-07-10 18:01:20 +08:00
|
|
|
[](https://travis-ci.org/fougue/gmio)
|
|
|
|
[](https://ci.appveyor.com/project/HuguesDelorme/gmio)
|
2015-07-10 17:58:51 +08:00
|
|
|
<a href="https://scan.coverity.com/projects/5721">
|
|
|
|
<img alt="Coverity Scan Build Status"
|
|
|
|
src="https://scan.coverity.com/projects/5721/badge.svg"/>
|
|
|
|
</a>
|
2015-06-26 15:59:02 +08:00
|
|
|
|