a2a2100cbcd81f9bb04ce882dd043ca740658466
[scilab.git] / scilab / modules / scicos_blocks / macros / NonLinear / ABS_VALUE.sci
1 //  Scicos
2 //
3 //  Copyright (C) INRIA - METALAU Project <scicos@inria.fr>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 //
19 // See the file ../license.txt
20 //
21
22 function [x,y,typ]=ABS_VALUE(job,arg1,arg2)
23     x=[];y=[];typ=[]
24     select job
25     case "plot" then
26         standard_draw(arg1)
27     case "getinputs" then
28         [x,y,typ]=standard_inputs(arg1)
29     case "getoutputs" then
30         [x,y,typ]=standard_outputs(arg1)
31     case "getorigin" then
32         [x,y]=standard_origin(arg1)
33     case "set" then
34         x=arg1;
35         graphics=arg1.graphics;exprs=graphics.exprs
36         model=arg1.model;
37         while %t do
38             [ok,zcr,exprs]=..
39             scicos_getvalue("Set block parameters",..
40             ["use zero_crossing (1: yes) (0:no)"],..
41             list("vec",1),exprs)
42             if ~ok then break,end
43             graphics.exprs=exprs
44             if ok then
45                 if zcr<>0 then
46                     model.nmode=-1;model.nzcross=-1;
47                 else
48                     model.nmode=0;model.nzcross=0;
49                 end
50                 x.graphics=graphics;x.model=model
51                 break
52             end
53         end
54     case "define" then
55         nu=-1
56         model=scicos_model()
57         model.sim=list("absolute_value",4)
58         model.in=nu
59         model.out=nu
60         model.nzcross=nu
61         model.nmode=nu
62         model.blocktype="c"
63         model.dep_ut=[%t %f]
64
65         exprs=[string([1])]
66         gr_i=["txt=[''ABS''];";
67         "xstringb(orig(1),orig(2),txt,sz(1),sz(2),''fill'')"]
68
69         x=standard_define([2 2],model,exprs,gr_i)
70     end
71 endfunction