% -------------------------------------------------------------------------
% function HfssAssignPE(fid, HName, HObjectList, [infGND = false])
% 
% Popis funkce :
% -------------
% Funkce nastavuje okrajovou podminku PEC na vybranem objektu.
%
% Parametery :
% ------------
% fid     - soubor identifikujici HFSS script.
% HName    - jmeno Pec okrajive podminky.
% HObjList - Pojmenovani v seznamu okrajivych podminek
% HinfGND  - jestli-ze se jedna o zemnici plochu (infinite ground plane)
%           pak true jinak je prednastaveno false.
% 
% Priklad pouziti funkce :
% ---------
% fid = fopen('antenna.m', 'wt');
% ... 
% hHssAssignPE(fid, 'GNDplane', 'AntennaGND', true);
%
% -------------------------------------------------------------------------

function HfssAssignPE(fid, HName, HObjectList, HinfGND)
global Module Design

% Hlidani poctu argumentu.
if (nargin < 3)
	error('Insufficient # of arguments !');
elseif (nargin < 4)
	HinfGND = [];
end

% Prednastaveny argument.
if isempty(HinfGND)
    HTF = 'false';
    HinfGND = false;
end

% jde o zemnici desku?
if (HinfGND)
	HTF = 'true';
    HinfGND = true;
else
	HTF = 'false';
    HinfGND = false;
end

% Vlozeni do souboru temp.
fprintf(fid, 'Module = Design.GetModule(''BoundarySetup'');\n');
fprintf(fid, ['Module.AssignPerfectE({''NAME:',HName,''',...\n']);
fprintf(fid, ['''InfGroundPlane:='',',HTF,',...\n']);
fprintf(fid, ['''Objects:='',{''',HObjectList,'''}});\n\n']);

% Prime vykonani v programu HFSS.
Module = Design.GetModule('BoundarySetup');
Module.AssignPerfectE({['NAME:',HName],...
'InfGroundPlane:=',HinfGND,...
'Objects:=',{HObjectList}});

end