function [apertureInfoVec, mappingMx, limMx] = matRad_daoApertureInfo2Vec(apertureInfo)
0001 function [apertureInfoVec, mappingMx, limMx] = matRad_daoApertureInfo2Vec(apertureInfo)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043 apertureInfoVec = NaN * ones(apertureInfo.totalNumOfShapes+apertureInfo.totalNumOfLeafPairs*2,1);
0044
0045 offset = 0;
0046
0047
0048 for i = 1:size(apertureInfo.beam,2)
0049 for j = 1:apertureInfo.beam(i).numOfShapes
0050 apertureInfoVec(offset+j) = apertureInfo.beam(i).shape(j).weight;
0051 end
0052 offset = offset + apertureInfo.beam(i).numOfShapes;
0053 end
0054
0055
0056
0057 for i = 1:size(apertureInfo.beam,2)
0058 for j = 1:apertureInfo.beam(i).numOfShapes
0059 apertureInfoVec(offset+[1:apertureInfo.beam(i).numOfActiveLeafPairs]) = apertureInfo.beam(i).shape(j).leftLeafPos;
0060 apertureInfoVec(offset+[1:apertureInfo.beam(i).numOfActiveLeafPairs]+apertureInfo.totalNumOfLeafPairs) = apertureInfo.beam(i).shape(j).rightLeafPos;
0061 offset = offset + apertureInfo.beam(i).numOfActiveLeafPairs;
0062 end
0063 end
0064
0065
0066
0067 if nargout > 1
0068
0069 mappingMx = NaN * ones(apertureInfo.totalNumOfShapes+apertureInfo.totalNumOfLeafPairs*2,4);
0070 limMx = NaN * ones(apertureInfo.totalNumOfShapes+apertureInfo.totalNumOfLeafPairs*2,2);
0071 limMx(1:apertureInfo.totalNumOfShapes,:) = ones(apertureInfo.totalNumOfShapes,1)*[0 inf];
0072
0073 counter = 1;
0074 for i = 1:numel(apertureInfo.beam)
0075 for j = 1:apertureInfo.beam(i).numOfShapes
0076 mappingMx(counter,1) = i;
0077 counter = counter + 1;
0078 end
0079 end
0080
0081 shapeOffset = 0;
0082 for i = 1:numel(apertureInfo.beam)
0083 for j = 1:apertureInfo.beam(i).numOfShapes
0084 for k = 1:apertureInfo.beam(i).numOfActiveLeafPairs
0085 mappingMx(counter,1) = i;
0086 mappingMx(counter,2) = j + shapeOffset;
0087 mappingMx(counter,3) = j;
0088 mappingMx(counter,4) = k;
0089
0090 limMx(counter,1) = apertureInfo.beam(i).lim_l(k);
0091 limMx(counter,2) = apertureInfo.beam(i).lim_r(k);
0092 counter = counter + 1;
0093 end
0094 end
0095 shapeOffset = shapeOffset + apertureInfo.beam(i).numOfShapes;
0096 end
0097
0098 mappingMx(counter:end,:) = mappingMx(apertureInfo.totalNumOfShapes+1:counter-1,:);
0099 limMx(counter:end,:) = limMx(apertureInfo.totalNumOfShapes+1:counter-1,:);
0100
0101 end