Interfacing function
eng


CMAT3D

File content


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