From fece5c2bde9036204e592924dfd71e52ca85bc12 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Wed, 1 May 2019 07:30:08 +0800 Subject: [PATCH] in the following order: sx, sy, sz --- src/m_shearing.scad | 47 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/src/m_shearing.scad b/src/m_shearing.scad index b4c07005..d7074be0 100644 --- a/src/m_shearing.scad +++ b/src/m_shearing.scad @@ -1,15 +1,46 @@ -function m_shearing(sx = [0, 0], sy = [0, 0], sz = [0, 0]) = +include <__private__/__m_multiply.scad>; + +function _m_shearing_sx(sx) = let( sx_along_y = sx[0], - sx_along_z = sx[1], - sy_along_x = sy[0], - sy_along_z = sy[1], - sz_along_x = sz[0], - sz_along_y = sz[1] - ) + sx_along_z = sx[1] + ) [ [1, sx_along_y, sx_along_z, 0], + [0, 1, 0, 0], + [0, 0, 1, 0], + [0, 0, 0, 1] + ]; + +function _m_shearing_sy(sy) = + let( + sy_along_x = sy[0], + sy_along_z = sy[1] + ) + [ + [1, 0, 0, 0], [sy_along_x, 1, sy_along_z, 0], + [0, 0, 1, 0], + [0, 0, 0, 1] + ]; + +function _m_shearing_sz(sz) = + let( + sz_along_x = sz[0], + sz_along_y = sz[1] + ) + [ + [1, 0, 0, 0], + [0, 1, 0, 0], [sz_along_x, sz_along_y, 1, 0], [0, 0, 0, 1] - ]; \ No newline at end of file + ]; + +function m_shearing(sx = [0, 0], sy = [0, 0], sz = [0, 0]) = + __m_multiply( + _m_shearing_sy(sz), + __m_multiply( + _m_shearing_sy(sy), + _m_shearing_sx(sx) + ) + ); \ No newline at end of file