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 edge = lineToEdge3d(line) 29%LINETOEDGE3D Convert a 3D straight line to a 3D finite edge. 30% 31% EDGE = lineToEdge3d(LINE) 32% Returns the edge with same origin as the line LINE, and with second 33% extremity corresponding to the addition of line origin and direction. 34% LINE is represented as [X0 Y0 Z0 DX DY DZ] 35% EDGE is represented as [X1 Y1 Z1 X2 Y2 Z2] 36% 37% Example 38% line = [3 4 5 1 2 3]; 39% edge = lineToEdge3d(line) 40% edge = 41% 3 4 5 4 6 8 42% 43% See also 44% lines3d, edges3d, edgeToLine3d 45 46% ------ 47% Author: David Legland 48% e-mail: david.legland@inra.fr 49% Created: 2019-05-07, using Matlab 9.6.0.1072779 (R2019a) 50% Copyright 2019 INRA - Cepia Software Platform. 51 52edge = [line(:, 1:3) line(:,1:3)+line(:,4:6)]; 53