You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: polyLoftLinear.m
    path of file: ./repos/GIBBON/lib
    
    the code of the file until where you have to start completion: function [varargout]=polyLoftLinear(varargin)

% function [F,V,indStart,indEnd]=polyLoftLinear(Vc_start,Vc_end,cPar)
% ------------------------------------------------------------------------
%
% This function creates a loft between the two input curves i.e. it
% connects a surface from one curve to the other i
    
function creates a loft between the two input curves i.e. it
% connects a surface from one curve to the other in a linear and stepwise
% fashion. The validity of the output surfaces is not checked and depends
% on the directionality of the input curves.
%
%
% Kevin Mattheus Moerman
% gibbon.toolbox@gmail.com
%
% 2016/01/13 Updated function description
% 2016/01/13 Fixed 'tri' surface type for even steps such that end curve is
% unaltered on output surface.
% 2017/09/20 Added additional outputs for start and end curve points
%------------------------------------------------------------------------

%% Parse input

switch nargin
    case 3
        Vc_start=varargin{1};
        Vc_end=varargin{2};
        cPar=varargin{3};
        untwistOpt=0;
    case 4
        Vc_start=varargin{1};
        Vc_end=varargin{2};
        cPar=varargin{3};
        untwistOpt=varargin{4};
    otherwise
        error('Wrong number of input arguments');
end

if isfield(cPar,'numSteps')
    numSteps=cPar.numSteps;
else
    numSteps=[];
end

%Derive numSteps from point spacings if missing (empty)
if isempty(numSteps)
    d1=sqrt(sum(diff(Vc_start,1,1).^2,2));
    d2=sqrt(sum(diff(Vc_end