0001 function Vshrink = vb_shrink_cortex_for_plot(V, F, inflate)
0002
0003
0004
0005 if ~exist('inflate', 'var') || isempty(inflate)
0006 inflate = false;
0007 end
0008
0009 if vb_matlab_version('>=', '8.4')
0010
0011
0012
0013 n = struct;
0014 n.faces = F;
0015 n.vertices = V;
0016
0017 Vnorm = patchnormals(n);
0018
0019 for k=1:size(Vnorm, 1)
0020 Vnorm(k, :) = Vnorm(k, :) ./ norm(Vnorm(k, :));
0021 end
0022
0023
0024 if inflate
0025
0026 Vshrink = V + 1*Vnorm;
0027 else
0028
0029 Vshrink = V + 0.001*Vnorm;
0030 end
0031 else
0032 Vshrink = V;
0033 end
0034
0035
0036 function N = patchnormals(FV)
0037
0038
0039
0040
0041
0042 A = FV.faces(:,1);
0043 B = FV.faces(:,2);
0044 C = FV.faces(:,3);
0045
0046
0047 n = cross(FV.vertices(A,:)-FV.vertices(B,:),FV.vertices(C,:)-FV.vertices(A,:));
0048
0049
0050 N = zeros(size(FV.vertices));
0051 for i = 1:size(FV.faces,1)
0052 N(A(i),:) = N(A(i),:)+n(i,:);
0053 N(B(i),:) = N(B(i),:)+n(i,:);
0054 N(C(i),:) = N(C(i),:)+n(i,:);
0055 end