pax_global_header 0000666 0000000 0000000 00000000064 13200054150 0014500 g ustar 00root root 0000000 0000000 52 comment=19a4c761e1c03dfa8b0de8d4a7836503203a2b09
MutatorMath-2.1.0/ 0000775 0000000 0000000 00000000000 13200054150 0013745 5 ustar 00root root 0000000 0000000 MutatorMath-2.1.0/.coveragerc 0000664 0000000 0000000 00000001625 13200054150 0016072 0 ustar 00root root 0000000 0000000 [run]
# measure 'branch' coverage in addition to 'statement' coverage
# See: http://coverage.readthedocs.org/en/coverage-4.0.3/branch.html#branch
branch = True
# list of directories or packages to measure
source = mutatorMath
# these are treated as equivalent when combining data
[paths]
source =
Lib/mutatorMath
.tox/*/lib/python*/site-packages/mutatorMath
.tox/pypy*/site-packages/mutatorMath
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
# keywords to use in inline comments to skip coverage
pragma: no cover
# don't complain if tests don't hit defensive assertion code
raise AssertionError
raise NotImplementedError
# don't complain if non-runnable code isn't run
if 0:
if __name__ == .__main__.:
# ignore source code that can’t be found
ignore_errors = True
# when running a summary report, show missing lines
show_missing = True
MutatorMath-2.1.0/.gitignore 0000664 0000000 0000000 00000001023 13200054150 0015731 0 ustar 00root root 0000000 0000000 # Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*.idea
*.log
# Distribution / Packaging
*.egg-info
*.eggs
build
dist
# Unit test / coverage files
.tox/
.coverage
.coverage.*
htmlcov/
Lib/support/axes.py
Lib/support/mutatorMath-A.py
Lib/support/mutatorMath-B.py
Lib/support/mutatorMath-performance.py
.coverage
.coverage.*
Lib/mutatorMath/test/ufo/testData
Lib/mutatorMath/test/ufo/data/instances
Lib/mutatorMath/test/ufo/data/no_warpmap_test.designspace
Lib/mutatorMath/test/ufo/data/warpmap_test.designspace
MutatorMath-2.1.0/.pyup.yml 0000664 0000000 0000000 00000000250 13200054150 0015540 0 ustar 00root root 0000000 0000000 # controls the frequency of updates (undocumented beta feature)
schedule: every week
# do not pin dependencies unless they have explicit version specifiers
pin: False
MutatorMath-2.1.0/.travis.yml 0000664 0000000 0000000 00000002353 13200054150 0016061 0 ustar 00root root 0000000 0000000 sudo: false
language: python
matrix:
include:
- python: 2.7
env: TOXENV=py27-cov
- python: 3.5
env: TOXENV=py35-cov
- python: 3.6
env: TOXENV=py36-cov
install:
- pip install tox
- pip install coveralls
script:
- tox
after_success:
- coverage combine
- coveralls
deploy:
# deploy to PyPI on tags
provider: pypi
server: https://upload.pypi.org/legacy/
on:
repo: LettError/MutatorMath
tags: true
all_branches: true
python: 3.5
user: anthrotype
password:
secure: fezM8kh/iosxrNrBE0IT5GSg9WDINh1TezYsk2U0fJBHnPWSxsbw4+PX4TrUxuij/6Ysl2K/nMbIfFb6y3qbOFCgIEDPXxRWWk4d2hDyWWa6qrGryOGZ9T4nqBncDqY/3eNIdJ4w6renkLsesVcjb35DkF7SCWA0ONlMxWsG5hIXu9mLorCc+tqf47hCQ1R+uNZy3W6GqnwlmEfxkkQR3uFA+ncnLMoRs7VSJkzZneTUa6eQLCi7l9UVLP/zEk5u1m0mui6Q4pdKgVIixG9gu3U8Fe64DNv7CNNdnLyW6PXnketqPbhXZjduheS1uLh9Is9OnuyfrF8seRa0MyrOlHfwYYRisbwfzAdDhv4t9MhLdEKmpDJTt51ud2WF+aQS+m4i1fp9/5HPgL+MZaZi9jLBHz0qnct1BTh6vioMD96+OGd4+1Ig7fqMlfZWF4bHf/xVTI5LiPq2NSkcD4Lo+52o3OcOt3JYStTFaVr0ordWX39NPid+Qv2acZCezr01fnSMEDdEdff4CipfjXH66LIvZFN2+HeDz9jgt4WsqmqG2JWbcO0qYx8TU8EQO3PS+NWxzOPlu36ZUHOlexy37CEC1wbNwgvIrndgk9/ERfqGk19YvH9LHNJ1InOCGw2wzHvOXVMEgFYTlfXG05+sUUeqpteQx9SMjXoxdl4k6UE=
distributions: sdist bdist_wheel
MutatorMath-2.1.0/Docs/ 0000775 0000000 0000000 00000000000 13200054150 0014635 5 ustar 00root root 0000000 0000000 MutatorMath-2.1.0/Docs/designSpaceFactors.md 0000664 0000000 0000000 00000005054 13200054150 0020732 0 ustar 00root root 0000000 0000000 DesignSpace Factors
===================
In MutatorMath instances are calculated by multiplying all masters with a specific factor and then adding them all up. Determining the factors is then the important job. MutatorMath has to deal with all sorts of edge cases and extrapolation so the code might be a bit cryptic, but the basic idea is not so complex. So here are some images.
These graphs were made with Drawbot and represent actual factors calculated by MutatorMath. It is a two dimensional designspace with four masters. The axes are gray. The third dimension maps the value of the factors of the masters: 0 in the plane with the axes, 1 up in space. So while it looks like a three axis system, it is a two axis system with the factors as the third dimension.

The master at the origin, the place where all dimensions are 0, is called neutral. All other on-axis masters in the designspace are relative to this neutral. That means that the neutral is subtracted from each. At the end of the calculation the neutral is added again to inflate the instance. So the factor for the neutral is 1, it is part of everything. The factors of the neutral master form a box.

Now we insert the second master at `Location(A=1, B=0)`. It is on-axis because only one of its dimensions (A) has magnitude. Its factor is 1 along the line A=1. Note its factor is 0 at the origin and at the line A=0 (and all other axes if we had more). In this designspace the influence of this master forms a wedge.

Next we insert a another on-axis master, but now at `Location(A=0, B=1)`. This factor is 1 along the line B=1, it is 0 at the origin and the line B=1. It looks like another wedge.

But we also want to include masters at other locations, what about `Location(A=1, B=1)` for instance? We can see that at that location both on-axis masters are at full force, and even the neutral is added with factor 1. Here something interesting needs to happen. First MutatorMath calculates the instance at that location using only the on-axis masters. If you were to look at this instance closely it would be distorted: it is an extrapolation. This on-axis-only instance is then subtracted from the object we want to insert. Now the sum of the masters will look familiar again: the off-axis master corrects it. The factors for an off-axis master look like a part of a pyramid.
MutatorMath-2.1.0/Docs/designSpaceFileFormat.md 0000664 0000000 0000000 00000000274 13200054150 0021360 0 ustar 00root root 0000000 0000000 DesignSpace Format
==================
Please refer to the [designSpaceDocument](https://github.com/LettError/designSpaceDocument) repository for an up to data specification of the file.
MutatorMath-2.1.0/Docs/designSpace_neutral.jpg 0000664 0000000 0000000 00000051535 13200054150 0021327 0 ustar 00root root 0000000 0000000 JFIF d d Ducky <