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:
@@ -4297,7 +4297,8 @@ bool TopoShape::_makETransform(const TopoShape &shape,
|
||||
const Base::Matrix4D &rclTrf, const char *op, bool checkScale, bool copy)
|
||||
{
|
||||
if(checkScale) {
|
||||
if(rclTrf.hasScale()<0) {
|
||||
auto type = rclTrf.hasScale();
|
||||
if (type != Base::ScaleType::Uniform && type != Base::ScaleType::NoScaling) {
|
||||
makEGTransform(shape,rclTrf,op,copy);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user