Go to file
Sybren A. Stüvel 10162d68e3 Constraints: replace 'Set Inverse' operator with an eval-time update
This fixes {T70269}.

Before this commit there was complicated code to try and compute the
correct parent inverse matrix for the 'Child Of' and 'Object Solver'
constraints outside the constraint evaluation. This was done mostly
correctly, but did have some issues. The Set Inverse operator now defers
this computation to be performed during constraint evaluation by just
setting a flag. If the constraint is disabled, and thus tagging it for
update in the depsgraph is not enough to trigger immediate evaluation,
evaluation is forced by temporarily enabling it.

This fix changes the way how the inverse matrix works when some of the
channels of the constraint are disabled. Before this commit, the channel
flags were used to filter both the parent and the inverse matrix. This
meant that it was impossible to make an inverse matrix that would
actually fully neutralize the effect of the constraint. Now only the
parent matrix is filtered, while inverse is applied fully. As a result,
pressing the 'Set Inverse' matrix produces the same transformation as
disabling the constraint. This is also reflected in the changed values
in the 'Child Of' unit test.

This change is not backward compatible, but it should be OK because the
old way was effectively unusable, so it is unlikely anybody relied on
it.

The change in matrix for the Object Solver constraint is due to a
different method of computing it, which caused a slightly different
floating point error that was slightly bigger than allowed by the test,
so I updated the matrix values there as well.

This patch was original written by @angavrilov and subsequently updated
by me.

Differential Revision: https://developer.blender.org/D6091
2020-02-27 10:37:59 +01:00
.github Revert "Merge branch 'master' into blender-v2.81-release" 2019-10-11 21:31:58 +02:00
build_files Cleanup: deduplicate OpenVDB library definitions/include/libs logic 2020-02-26 18:13:14 +01:00
doc PyAPI Doc: Add missing Imbuf documentantion 2020-02-25 23:17:01 -05:00
extern Fix OpenVDB link error on Windows after recent changes 2020-02-26 19:24:20 +01:00
intern Fix OpenVDB link error on Windows after recent changes 2020-02-26 19:24:20 +01:00
release Fix T54323: Improve Paint category names in keymap preferences 2020-02-27 10:11:23 +01:00
source Constraints: replace 'Set Inverse' operator with an eval-time update 2020-02-27 10:37:59 +01:00
tests Constraints: replace 'Set Inverse' operator with an eval-time update 2020-02-27 10:37:59 +01:00
.arcconfig Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
.clang-format clang-format: add particle loop macros 2019-09-26 17:52:49 +02:00
.editorconfig editorconfig: correct indent size 2019-04-17 13:34:46 +02:00
.gitignore Fluid: Added wavelet noise tile to the gitignore 2020-01-29 19:21:52 +01:00
.gitmodules Update for moving blender2.8 to master. 2018-12-21 12:15:21 +01:00
CMakeLists.txt Cleanup: deduplicate OpenVDB library definitions/include/libs logic 2020-02-26 18:13:14 +01:00
COPYING == docs == 2010-10-13 14:44:22 +00:00
GNUmakefile Build: use clang-format from precompiled libraries for make format on Linux 2020-02-15 13:44:20 +01:00
make.bat Build: add "make test" command for Windows, output log file 2019-09-12 20:23:03 +02:00
readme.rst readme: separate development links 2019-04-13 14:45:51 +02:00

.. Keep this document short & concise,
   linking to external resources instead of including content in-line.
   See 'release/text/readme.html' for the end user read-me.


Blender
=======

Blender is the free and open source 3D creation suite.
It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing,
motion tracking and video editing.

.. figure:: https://code.blender.org/wp-content/uploads/2018/12/springrg.jpg
   :scale: 50 %
   :align: center


Project Pages
-------------

- `Main Website <http://www.blender.org>`__
- `Reference Manual <https://docs.blender.org/manual/en/latest/index.html>`__
- `User Community <https://www.blender.org/community/>`__

Development
-----------

- `Build Instructions <https://wiki.blender.org/wiki/Building_Blender>`__
- `Code Review & Bug Tracker <https://developer.blender.org>`__
- `Developer Forum <https://devtalk.blender.org>`__
- `Developer Documentation <https://wiki.blender.org>`__


License
-------

Blender as a whole is licensed under the GNU Public License, Version 3.
Individual files may have a different, but compatible license.

See `blender.org/about/license <https://www.blender.org/about/license>`__ for details.