Base: fix Matrix4D::hasScale

* If all column vectors of the 3x3 sub-matrix are equal the function incorrectly claims that it's uniform scaling.
* Detect also non-uniform scaling and if was applied from the left or right side
* Replace the int with an enum and expose it to Python
* Add several new unit tests
This commit is contained in:
wmayer
2022-02-15 21:05:11 +01:00
parent 48e2ee100c
commit a5e561b31d
8 changed files with 110 additions and 40 deletions

View File

@@ -37,8 +37,10 @@ Scale the matrix with the vector
<Methode Name="hasScale" Const="true">
<Documentation>
<UserDocu>
hasScale(tol=None)
Return 0 is no scale factor, 1 for uniform scaling, -1 for non-uniform scaling.
hasScale(tol=0.0)
Return an enum value of ScaleType. Possible values are:
Uniform, NonUniformLeft, NonUniformRight, NoScaling or Other
if it's not a scale matrix
</UserDocu>
</Documentation>
</Methode>