% Create 3D line Line_3D = sugr_Line_3D(a1,a2) Usage: Line_3D = sugr_Line_3D(L) 6-vector, CovM = 0; needs not be a Plücker vector Line_3D = sugr_Line_3D(L,Chh) homgeneous 6-vector, needs not be a Plücker vector Line_3D = structure * .h = spherically normalized Plücker vector * .Crr = reduced covariance matrix * .Jr = null space of [.h,Dual(.h)]' * .type = 4 Bernhard Wrobel, Wolfgang Förstner 7/2012 wfoerstn@uni-bonn.de See also sugr_minimal_3D_Line, sugr_construct_join_Line_3D, sugr_constrain_3D_Line sugr_Point_3D , sugr_Plane_3D
0001 %% Create 3D line 0002 % 0003 % Line_3D = sugr_Line_3D(a1,a2) 0004 % 0005 % Usage: 0006 % Line_3D = sugr_Line_3D(L) 0007 % 6-vector, CovM = 0; needs not be a Plücker vector 0008 % Line_3D = sugr_Line_3D(L,Chh) 0009 % homgeneous 6-vector, needs not be a Plücker vector 0010 % 0011 % Line_3D = structure 0012 % * .h = spherically normalized Plücker vector 0013 % * .Crr = reduced covariance matrix 0014 % * .Jr = null space of [.h,Dual(.h)]' 0015 % * .type = 4 0016 % 0017 % Bernhard Wrobel, Wolfgang Förstner 7/2012 0018 % wfoerstn@uni-bonn.de 0019 % 0020 % See also sugr_minimal_3D_Line, sugr_construct_join_Line_3D, sugr_constrain_3D_Line 0021 % sugr_Point_3D , sugr_Plane_3D 0022 0023 0024 function Line_3D = sugr_Line_3D(a1,a2) 0025 0026 % default 0027 Chh = zeros(6); 0028 0029 switch nargin 0030 case 0 0031 0032 case 1 % 1 argument 0033 0034 % (1) Plücker vector, CovM == 0 0035 % spherically normalized, Plücker constraint 0036 Line_3D = sugr_minimal_3D_Line(a1,Chh); 0037 0038 case 2 % 2 argument 0039 0040 % (2) homogeneous vector 0041 Line_3D = sugr_minimal_3D_Line(a1,a2); 0042 0043 end 0044 0045 Line_3D.type=4;