Skip to content
__init__.py 2.54 KiB
Newer Older
Fabrice Salvaire's avatar
Fabrice Salvaire committed
####################################################################################################
#
Fabrice Salvaire's avatar
Fabrice Salvaire committed
# Patro - A Python library to make patterns for fashion design
Fabrice Salvaire's avatar
Fabrice Salvaire committed
# Copyright (C) 2017 Fabrice Salvaire
#
# 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/>.
#
####################################################################################################

Fabrice Salvaire's avatar
Fabrice Salvaire committed
"""This module implements a 2D geometry engine which implement standard primitives like line, conic
and Bézier curve.

.. note:: This module is a candidate for a dedicated project.

Purpose
-------

The purpose of this module is to provide all the required algorithms in Python language for a 2D
geometry engine.  In particular it must avoid the use of a third-party libraries which could be over
sized for our purpose and challenging to trust.

It is not designed to provide optimised algorithms for a large number of graphic entities.  Such
optimisations could be provided in addition, in particular if the Python implementation has dramatic
performances.

Bibliographical References
--------------------------

All complex algorithms in this module should have strong references matching theses criteria by
preference order:

* a citation to an article from a well known peer reviewed journal,
* a citation to a reference book authored by a well known author,
* a well written article which can be easily trusted ( in this case an electronic copy of this
  article should be added to the repository).

However a Wikipedia article will usually not fulfils the criteria due to the weakness of this
collaborative encyclopedia: article quality, review process, content modification over time.
Fabrice Salvaire's avatar
Fabrice Salvaire committed

"""

####################################################################################################

from .Primitive import Primitive2DMixin
from .Vector import Vector2D

####################################################################################################

# Fixme: to fix cyclic import issue
Primitive2DMixin.__vector_cls__ = Vector2D