function [S_cones, T_cones, S_Y, T_Y] = SetFundamentals2(whichCones, S)
% function [S_cones, T_cones, S_Y, T_Y] = SetFundamentals2(whichCones, S)
% "2"となっているのは、同じ名前の自前の関数との混同を避けるため

if nargin < 1 || isempty(whichCones)
    whichCones = 'StockmanSharpe';
end
if nargin < 2 || isempty(S)
    S = [380 1 401];	% 自分のデータ用
end

% 各fundamentalsはピーク1.0のまま。
% 分光視感効率に合わせたスケーリングなどは、計算する際に行う
switch (whichCones)
	case 'SmithPokorny',
		load OurT_cones_sp	% 自前で用意したデータ
		load T_xyzJuddVos
		T_cones = SplineCmf(OurS_cones_sp, OurT_cones_sp, S);
		S_cones = S;
		T_Y = 683*T_xyzJuddVos(2,:);
		T_Y = SplineCmf(S_xyzJuddVos,T_Y,S);
		S_Y = S;
	case 'StockmanSharpe'
		load OurT_cones_ss2
		load T_CIE_Y2
%		load T_ss2000_Y2	% PTB3のDKLDemo.mではこちらになっているが、上が新しい
		T_cones = SplineCmf(OurS_cones_ss2, OurT_cones_ss2, S);
		S_cones = S;
		T_Y = 683*T_CIE_Y2;
		T_Y = SplineCmf(S_CIE_Y2,T_Y,S);
		S_Y = S;
	otherwise
		error('Valid param is ''SmithPokorny'' or ''StockmanSharpe''');
end
