1## Copyright (C) 2021 David Legland 2## All rights reserved. 3## 4## Redistribution and use in source and binary forms, with or without 5## modification, are permitted provided that the following conditions are met: 6## 7## 1 Redistributions of source code must retain the above copyright notice, 8## this list of conditions and the following disclaimer. 9## 2 Redistributions in binary form must reproduce the above copyright 10## notice, this list of conditions and the following disclaimer in the 11## documentation and/or other materials provided with the distribution. 12## 13## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' 14## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16## ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR 17## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18## DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20## CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23## 24## The views and conclusions contained in the software and documentation are 25## those of the authors and should not be interpreted as representing official 26## policies, either expressed or implied, of the copyright holders. 27 28function dest = transformLine(line, trans) 29%TRANSFORMLINE Transform a line with an affine transform. 30% 31% LINE2 = transformLine(LINE1, TRANS); 32% returns the line LINE1 transformed with affine transform TRANS. 33% LINE1 has the form [x0 y0 dx dy], and TRANS is a transformation 34% matrix. 35% 36% Format of TRANS can be one of : 37% [a b] , [a b c] , or [a b c] 38% [d e] [d e f] [d e f] 39% [0 0 1] 40% 41% LINE2 = transformLine(LINES, TRANS); 42% Also work when LINES is a [N*4] array of double. In this case, LINE2 43% has the same size as LINE. 44% 45% See also: 46% lines2d, transforms2d, transformPoint 47% 48% --------- 49% author : David Legland 50% INRA - TPV URPOI - BIA IMASTE 51% created the 06/04/2004. 52% 53 54% HISTORY 55% 02/03/2007: rewrite function 56 57 58% isolate points 59points1 = line(:, 1:2); 60points2 = line(:, 1:2) + line(:, 3:4); 61 62% transform points 63points1 = transformPoint(points1, trans); 64points2 = transformPoint(points2, trans); 65 66dest = createLine(points1, points2); 67