..   -*- rst -*-

..
  SPDX-FileCopyrightText: © 2007-2021 Benedict Verhegghe <bverheg@gmail.com>
  SPDX-License-Identifier: GPL-3.0-or-later

  This file is part of pyFormex 3.0  (Mon Nov 22 14:32:59 CET 2021)
  pyFormex is a tool for generating, manipulating and transforming 3D
  geometrical models by sequences of mathematical operations.
  Home page: https://pyformex.org
  Project page: https://savannah.nongnu.org/projects/pyformex/
  Development: https://gitlab.com/bverheg/pyformex
  Distributed under the GNU General Public License version 3 or later.

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see http://www.gnu.org/licenses/.


.. note:: The pyFormex version was bumped to 3.0 to highlight the new
	  installation procedure (allowing user and multiple version
	  installs), the upgrade of the minimal Python version to 3.7,
	  and the upgrade of the primary OS target to Debian 11.


pyFormex 3.0 Releasenotes
=========================
- default OS target is now Debian 11 (bullseye): Python 3.9,
  numpy 1.19, pyside2 5.15, sphinx 3.4
- minimal versions: Python 3.7, NumPy 1.16, PySide2 5.11, Sphinx 1.7
- pyqt5 can now be used as alternate Qt5 bindings
- support for vtk5, vtk6 and vmtk has been removed. vtk7 supported.
- new installation procedure (install.sh) allows for installation in
  user space or as root and multiple installed versions
- allow the use of non-system Python versions
- multi.multitask now works with external commands and in script mode
- generic readGeometry and writeGeometry to read/write from/to a multitude
  of file formats
- TriSurface.read reads more formats and splits polygons into triangles
- TriSurface.remesh is a new internal surface remeshing tool
- TriSurface.write method allows writing .PLY format
- TriSurface.nodalWeights: new method returning area weights of the nodes
- other improved TriSurface methods: inertia, curvature, edgeAngles,
  featureEdges, distanceOfPoints, avgVertexNormals
- changes to geomtools: new functions polygonVectorPairs, polygonAvgNormals;
  improved methods polygonNormals, faceDistance
- arraytools.vectorPairAngle now returns angles in degrees
- utils.Namespace: a SimpleNamespace subclass with dict type access
- surface_menu: fixed the remesh option; improved statistics option
- improved simple.sphere
- improved rendering of smooth averaged normals mode
- restored the classic color dialog
- improved documentation for many modules
- many new doctests have been added


pyFormex 2.6 Releasenotes
=========================
- new internal Trisurface remesh function based on pyacvd
- new TriSurface remesh function based on instant_meshes
- improved gambit NEU support
- local html documentation is no longer contained in the distribution,
  but can be built from the Help menu.
- process.Process class is replaced with process.run function
- gui.draw.runLongTask runs a background process without waiting and
  without blocking the GUI.
- new implementation of elements module. Most elements now support the
  subdivision
- support for many more Mesh export/import formats
- revised Geometry menu
- use setuptools instead of distutils in setup.py
- Many functional improvements, bug fixes and documentation enhancements


pyFormex 2.5 Releasenotes
=========================
- improved Dialogs
- smart Dialog placement
- new customizable FileDialog class and subclasses
- draw supports colors with 4 components (RGBA)
- add interactive nongui console
- Varray.__init__ avoids numpy deprecation
- readPLY can read compressed PLY files
- writePLY fixed and supports ascii as well as binary
- export PLY files from geometry menu
- new arraytools functions: mapArray, resizeAxis, resizeArray
- fix bugs in Trisurface.write, Trisurface.inside, vertex color mode


pyFormex 2.4 Releasenotes
=========================
This version fixes an important bug in the 2.2 and 2.3 releases. Users
of those versions should upgrade. This also adds some interesting
new features.

- An important bug in TextArray, drawMarks and drawText has been fixed.
- geomtools has new functions split_polygon and splitPolygon to help in
  splitting polygons into smaller ones with specfied maximal plexitude
- The OBJ file reader now reads polygons of any plexitude ans allows splitting
- A PLY file reader has been added, also allowing splitting of polygons
- A new, easily customizable FileDialog is available in gui.dialogs
- Geometry menu allows reading of polygons in .obj and .ply format, and
  optionally splitting them to quads and triangles
- Formex.rosette has a default value 360/n for the angle


pyFormex 2.3 Releasenotes
=========================
With this release all older versions become unsupported.
All users are urged to upgrade.
- Some important bug fixes in widgets/dialogs
- Improvements to widgets/dialogs
- Add a quality tri3 to quad4 remesher using 'Instant Meshes' external


pyFormex 2.2 Releasenotes
=========================
These are the most noticeable changes since the 2.1 release:
- Dialogs have validation of the results before accepting them
- The gui.widgets module has many improvements. See the module docs
- InputDialog has a shorter name: Dialog
- The gui.image module has many improvements. See the module docs
- image.saveImage is a more powerful replacement for image.save. See docs.
- image.recordSession has been repaired and greatly improved. See docs
- drawText has a rotate parameter to allow drawing text under any angle
- Improved and completed documentation of gui.widgets and gui.image


pyFormex 2.1 Releasenotes
=========================
These are the most noticeable changes since the 2.0 release:
- Allow catching temporary results from TriSurface.inside
- Fix a bug in the gtsinside helper program
- Add utils.ChDir context manager
- Change TriSurface.dualMesh
- New function arraytools.binsum
- Replace all use of the deprecated numpy.matrix class
- Fix filewrite for older numpy(1.13) and Python(3.6)
- Add a script to install dependencies on Debian/Ubuntu
- Fix incorrect installation instructions
- Verified installation and testing on Debian 10.5, Ubuntu 18.04 and 20.04


pyFormex 2.0 Releasenotes
=========================
- Removed support for Python2.x, minimum required Python version is 3.6



.. End
