Fonction d'interfaçage
fr
CMAT3D
function [x,y,typ]=CMAT3D(job,arg1,arg2)
// Copyright INRIA
x=[];y=[];typ=[]
select job
case 'plot' then
standard_draw(arg1)
case 'getinputs' then
[x,y,typ]=standard_inputs(arg1)
case 'getoutputs' then
x=[];y=[];typ=[];
case 'getorigin' then
[x,y]=standard_origin(arg1)
case 'set' then
x=arg1;
graphics=arg1.graphics;
exprs=graphics.exprs
model=arg1.model;
while %t do
[ok,vec_x,vec_y,colormap,cmin,cmax,exprs]=getvalue(..
'Set Scope parameters',..
['Bounds Vector X (-1 for standard)';
'Bounds Vector Y (-1 for standard)';
'ColorMap';
'Zmin';
'Zmax'],..
list('vec',-1,'vec',-1,'vec',-1,'vec',1,'vec',1),exprs)
if ~ok then break,end //user cancel modification
mess=[]
if size(vec_x,'*')<>size(vec_y,'*') then
mess=[mess;'Vector X and Vector Y must have the same size';' ']
ok=%f
end
if cmax<=cmin then
mess=[mess;'Error with minimum and maximum value';' ']
ok=%f
end
if ~ok then
message(['Some specified values are inconsistent:';' ';mess])
end
if ok then
size_x = size(vec_x,'*');
size_c=size(colormap(:),1);
ipar=[cmin;cmax;size_c;size_x];
rpar=[colormap(:);vec_x(:);vec_y(:)];
model.ipar=ipar;
model.rpar=rpar;
graphics.exprs=exprs;
x.graphics=graphics;
x.model=model;
break;
end
end
case 'define' then
cmin = 0;
cmax = 100;
colormap = jetcolormap(25);
size_c = 25;
x=-1;
y=-1;
size_x = 1;
size_y = 1;
model=scicos_model()
model.sim=list('cmat3d',4)
model.in=-1
model.in2=-2
model.intyp=1
model.evtin=1
model.ipar=[cmin;cmax;size_c;size_x;size_y]
model.rpar=[colormap(:);x;y]
model.blocktype='c'
model.dep_ut=[%t %f]
exprs=[strcat(string(x),' ');
strcat(string(y),' ');
string('jetcolormap(25)');
string(cmin);
string(cmax)];
gr_i='xstringb(orig(1),orig(2),''Mat. 3D'',sz(1),sz(2),''fill'')'
x=standard_define([2 2],model,exprs,gr_i)
end
endfunction