Skip to content
Georg Muntingh edited this page Aug 16, 2017 · 43 revisions

NB: Please install the GitHub with MathJax browser extension for correct visualisation of formulas in this wiki.

What is GoTools?

GoTools is the group name of many interdependent C++ software modules developed by the geometry group at SINTEF Digital, Department of Mathematics and Cybernetics. Most of the functionality is related to geometry, and in particular spline representations of geometry. Over the years, GoTools software has been developed for a range of different applications in many different projects.

Functionality

GoTools functionality is distributed across the following GoTools modules.

  • gotools-core. A few key modules are used by almost all the others; these have been grouped together in GoTools Core.
    • geometry: Classes and functionality for representing, storing and manipulating parameterized geometrical objects.
    • creators: Functionality for generating curves and surfaces by approximation, blending, etc.
    • tesselator: Functionality for making tesselations of geometry entities.
    • utils: General, low-level functionality.
  • compositemodel. Representation, as one unit, of a surface set, including topological entities and operations on a set of surfaces.
  • implicitization. Approximation of spline curves and surfaces by implicitly defined algebraic entities.
  • igeslib. Read from and write to the Initial Graphics Exchange Specification (IGES) format.
  • intersections. An object oriented library for finding intersections of geometric objects like spline curves and surfaces. The library handles singular surfaces and singular and near singular intersections.
  • isogeometric_model. Tools related to isogeometric analysis.
  • lrsplines2D. Classes and tools for locally refineable spline (LR-spline) surfaces.
  • parametrization. Compute reasonable parametrizations for discrete geometrical objects.
  • qualitymodule. A set of tools to check the quality of CAD models.
  • topology. Adjacency analysis for surface sets.
  • trivariate. Spline volumes and elementary volumes, including some creation methods.
  • trivariatemodel. A volume model including topology and some operations on the model.
  • viewlib. A utility viewer to visualize curves and surfaces.

In addition GoTools depends on the following libraries, which are included for convenience:

  • SISL: SINTEF's spline library, available with GPL license.
  • TTL: SINTEF's a generic triangulation library, available with GPL license.
  • newmat: Robert Davies' library for matrix operations, available with a permissive license.

License

GoTools is offered with the GNU Affero General Public License version 3. Alternatively, you can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you develop commercial activities involving the GoTools library without disclosing the source code of your own applications.

Other resources

Clone this wiki locally