function m = SubjectRoiMapping(argv)
%SUBJECTROIMAPPING Subject to ROI to Coordinate Mapping Class Constructor
%   m = SUBJECTROIMAPPING() creates a predefined ROI Coordinate Mapping.
%   normally called without any arguments

if nargin == 0
    m.subject{1}='HIGL5';
    m.subject{2}='AXLI5';
    m.subject{3}='SHWA5';
    m.subject{4}='DAPR5';
    m.subject{5}='5IGKA';
    m.subject{6}='5RAEL';
    m.subject{7}='5JEZI';
    m.subject{8}='5PK002';
    m.subjectNameMap = java.util.HashMap;
    for subj = 1:size(m.subject,2)
        m.subjectNameMap.put(m.subject{subj},subj);
    end    
    
    
    
    m.roi_name{1}='SPL l';
    m.roi_name{2}='SPL r';
    m.roi_name{3}='dPM l';
    m.roi_name{4}='dPM r';
    m.roi_name{5}='DLPFC l';
    m.roi_name{6}='DLPFC r';
    m.roi_name{7}='SMA l';
    m.roi_name{8}='antIPS l';

    m.roiNameMap = java.util.HashMap;
    for roi = 1:size(m.roi_name,2)
        m.roiNameMap.put(m.roi_name{roi},roi);
    end

    
    % Koordinaten aller Probanden A von den ROIS B: rois{A}(B,[x y z in mm]) 
    m.coordinate{1}(1,:)=[-15 -66 60];
    m.coordinate{1}(2,:)=[18 -63 63];
    m.coordinate{1}(3,:)=[-24 -6 57];
    m.coordinate{1}(4,:)=[27 -9 54];
    m.coordinate{1}(5,:)=[-42 30 39];
    m.coordinate{1}(6,:)=[36 45 21];
    m.coordinate{1}(7,:)=[-3 6 60];
    m.coordinate{1}(8,:)=[-33 -39 42];

    m.coordinate{2}(1,:)=[-15 -66 66];
    m.coordinate{2}(2,:)=[15 -69 63];
    m.coordinate{2}(3,:)=[-30 -9 63];
    m.coordinate{2}(4,:)=[33 -6 60];
    m.coordinate{2}(5,:)=[-30 39 42];
    m.coordinate{2}(6,:)=[36 36 42];
    m.coordinate{2}(7,:)=[-3 0 63];
    m.coordinate{2}(8,:)=[-39 -42 60];

    m.coordinate{3}(1,:)=[-18 -63 57];
    m.coordinate{3}(2,:)=[15 -69 60];
    m.coordinate{3}(3,:)=[-24 -12 51];
    m.coordinate{3}(4,:)=[27 -12 51];
    m.coordinate{3}(5,:)=[-27 36 42];
    m.coordinate{3}(6,:)=[30 42 42];
    m.coordinate{3}(7,:)=[-3 -6 63];
    m.coordinate{3}(8,:)=[-36 -51 60];

    m.coordinate{4}(1,:)=[-30 -54 63];
    m.coordinate{4}(2,:)=[18 -60 54];
    m.coordinate{4}(3,:)=[-33 -6 57];
    m.coordinate{4}(4,:)=[27 -6 57];
    m.coordinate{4}(5,:)=[-27 33 27];
    m.coordinate{4}(6,:)=[nan nan nan];
    m.coordinate{4}(7,:)=[-6 3 60];
    m.coordinate{4}(8,:)=[-33 -51 54];

    m.coordinate{5}(1,:)=[-21 -63 66];
    m.coordinate{5}(2,:)=[24 -54 66];
    m.coordinate{5}(3,:)=[-30 -6 51];
    m.coordinate{5}(4,:)=[21 0 57];
    m.coordinate{5}(5,:)=[-33 36 27];
    m.coordinate{5}(6,:)=[33 45 30];
    m.coordinate{5}(7,:)=[-6 -3 54];
    m.coordinate{5}(8,:)=[-39 -42 54];

    m.coordinate{6}(1,:)=[-15 -69 54];
    m.coordinate{6}(2,:)=[21 -63 57];
    m.coordinate{6}(3,:)=[-24 -9 66];
    m.coordinate{6}(4,:)=[33 -6 66];
    m.coordinate{6}(5,:)=[-33 30 39];
    m.coordinate{6}(6,:)=[33 45 30];
    m.coordinate{6}(7,:)=[-3 0 54];
    m.coordinate{6}(8,:)=[-39 -42 39];

    m.coordinate{7}(1,:)=[-12 -66 63];
    m.coordinate{7}(2,:)=[15 -66 63];
    m.coordinate{7}(3,:)=[-21 -9 54];
    m.coordinate{7}(4,:)=[30 -9 57];
    m.coordinate{7}(5,:)=[-39 33 33];
    m.coordinate{7}(6,:)=[39 30 33];
    m.coordinate{7}(7,:)=[-6 0 54];
    m.coordinate{7}(8,:)=[-39 -45 54];

    m.coordinate{8}(1,:)=[-15 -72 51];
    m.coordinate{8}(2,:)=[15 -75 51];
    m.coordinate{8}(3,:)=[-27 -12 66];
    m.coordinate{8}(4,:)=[33 -18 69];
    m.coordinate{8}(5,:)=[-48 21 33];
    m.coordinate{8}(6,:)=[42 33 36];
    m.coordinate{8}(7,:)=[-3 -6 57];
    m.coordinate{8}(8,:)=[-39 -48 45];
    m = class(m,'SubjectRoiMapping');
    
elseif isa(argv,'SubjectRoiMapping') % copy
   m = argv;

else
error('SubjectRoiMapping:Constructor:NoSuchConstructor','There is no constructor matching your argv');
end