~ubuntu-branches/ubuntu/hoary/scilab/hoary

« back to all changes in this revision

Viewing changes to man/fr/scicos/CMSCOPE.htm

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2005-01-09 22:58:21 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050109225821-473xr8vhgugxxx5j
Tags: 3.0-12
changed configure.in to build scilab's own malloc.o, closes: #255869

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 
2
 
 
3
<!--Converted with LaTeX2HTML 2002-2-1 (1.70)
 
4
original version by:  Nikos Drakos, CBLU, University of Leeds
 
5
* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
 
6
* with significant contributions from:
 
7
  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
 
8
<HTML>
 
9
<HEAD>
 
10
<TITLE>Multi display scope </TITLE>
 
11
<META NAME="description" CONTENT="Multi display scope ">
 
12
<META NAME="keywords" CONTENT="main">
 
13
<META NAME="resource-type" CONTENT="document">
 
14
<META NAME="distribution" CONTENT="global">
 
15
 
 
16
<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
 
17
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
 
18
 
 
19
<LINK REL="STYLESHEET" HREF="main.css">
 
20
 
 
21
</HEAD>
 
22
 
 
23
<BODY bgcolor="#FFFFFF">
 
24
 
 
25
<!--Table of Child-Links-->
 
26
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
 
27
 
 
28
<UL>
 
29
<LI><A NAME="tex2html3168"
 
30
  HREF="CMSCOPE.htm#SECTION00522100000000000000">Library</A>
 
31
<LI><A NAME="tex2html3169"
 
32
  HREF="CMSCOPE.htm#SECTION00522200000000000000">Description</A>
 
33
<LI><A NAME="tex2html3170"
 
34
  HREF="CMSCOPE.htm#SECTION00522300000000000000">Dialog Box</A>
 
35
<LI><A NAME="tex2html3171"
 
36
  HREF="CMSCOPE.htm#SECTION00522400000000000000">Default properties</A>
 
37
<LI><A NAME="tex2html3172"
 
38
  HREF="CMSCOPE.htm#SECTION00522500000000000000">Interfacing function</A>
 
39
<LI><A NAME="tex2html3173"
 
40
  HREF="CMSCOPE.htm#SECTION00522600000000000000">Computational function (type 4)</A>
 
41
</UL>
 
42
<!--End of Table of Child-Links-->
 
43
<HR>
 
44
 
 
45
<H2><A NAME="SECTION00522000000000000000"></A><A NAME="CMSCOPE"></A>
 
46
<BR>
 
47
Multi display scope 
 
48
</H2>
 
49
<DIV ALIGN="CENTER">
 
50
<!-- MATH
 
51
 $\epsfig{file=CMSCOPE.eps,width=90.00pt}$
 
52
 -->
 
53
<IMG
 
54
 WIDTH="143" HEIGHT="161" ALIGN="BOTTOM" BORDER="0"
 
55
 SRC="img35.gif"
 
56
 ALT="\epsfig{file=CMSCOPE.eps,width=90.00pt}">
 
57
</DIV>
 
58
<H3><font color="blue"><A NAME="SECTION00522100000000000000">
 
59
Library</A>
 
60
</font></H3>
 
61
Sinks
 
62
 
 
63
<H3><font color="blue"><A NAME="SECTION00522200000000000000">
 
64
Description</A>
 
65
</font></H3>
 
66
When you start a simulation, Scicos open Scope windows.  The Scope
 
67
block displays its input with respect to simulation time. The Scope
 
68
block can have multiple axes (one per port); all axes have a common
 
69
time range with independent y-axes. The Scope allows you to adjust the
 
70
amount of time and the range of input values displayed. 
 
71
 
 
72
<H3><font color="blue"><A NAME="SECTION00522300000000000000">
 
73
Dialog Box</A>
 
74
</font></H3>
 
75
<DIV ALIGN="CENTER">
 
76
<TABLE CELLPADDING=3 BORDER="1">
 
77
<TR><TD ALIGN="CENTER">Set Scope parameters</TD>
 
78
<TD></TD>
 
79
</TR>
 
80
<TR><TD ALIGN="CENTER">Input ports sizes</TD>
 
81
<TD ALIGN="CENTER">1 1</TD>
 
82
</TR>
 
83
<TR><TD ALIGN="CENTER">Drawing colors (<IMG
 
84
 WIDTH="18" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
85
 SRC="img2.gif"
 
86
 ALT="$ &gt;$">0) or mark (<IMG
 
87
 WIDTH="18" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
88
 SRC="img1.gif"
 
89
 ALT="$ &lt;$">0)</TD>
 
90
<TD ALIGN="CENTER">1 3 5 7 9 11 13 15</TD>
 
91
</TR>
 
92
<TR><TD ALIGN="CENTER">Output window number</TD>
 
93
<TD ALIGN="CENTER">1</TD>
 
94
</TR>
 
95
<TR><TD ALIGN="CENTER">Output window position</TD>
 
96
<TD ALIGN="CENTER">[]</TD>
 
97
</TR>
 
98
<TR><TD ALIGN="CENTER">Output window sizes</TD>
 
99
<TD ALIGN="CENTER">[]</TD>
 
100
</TR>
 
101
<TR><TD ALIGN="CENTER">Ymin vector</TD>
 
102
<TD ALIGN="CENTER">-1 -5</TD>
 
103
</TR>
 
104
<TR><TD ALIGN="CENTER">Ymax vector</TD>
 
105
<TD ALIGN="CENTER">1 5</TD>
 
106
</TR>
 
107
<TR><TD ALIGN="CENTER">Refresh period</TD>
 
108
<TD ALIGN="CENTER">30</TD>
 
109
</TR>
 
110
<TR><TD ALIGN="CENTER">Buffer size</TD>
 
111
<TD ALIGN="CENTER">2</TD>
 
112
</TR>
 
113
<TR><TD ALIGN="CENTER">Accept herited events 0/1</TD>
 
114
<TD ALIGN="CENTER">0</TD>
 
115
</TR>
 
116
<TR><TD ALIGN="CENTER">Name of Scope (label&amp;Id)</TD>
 
117
<TD ALIGN="CENTER">&nbsp;</TD>
 
118
</TR>
 
119
</TABLE>
 
120
</DIV>
 
121
 
 
122
<UL>
 
123
<LI>Input ports sizes: It allows multiple  input ports. 
 
124
</LI>
 
125
<LI>Drawing colors : a vector of integers. The i-th element is the color
 
126
  number (<IMG
 
127
 WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
128
 SRC="img36.gif"
 
129
 ALT="$ &gt;0$">) or dash type (<IMG
 
130
 WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
 
131
 SRC="img37.gif"
 
132
 ALT="$ &lt;0$">) used to draw the evolution of the i-th
 
133
  input port signal. See  <B>plot2d</B>  for color (dash type) definitions. 
 
134
</LI>
 
135
<LI>Output window number: The number of graphic window used for 
 
136
  the display. It is often good to use high values to avoid conflict 
 
137
  with palettes and Super Block windows. If default value is used <B>  (1)</B>, Scicos define the output window number.  
 
138
</LI>
 
139
<LI>Output window position: a 2 vector specifying the coordinates
 
140
  of the upper left corner of the graphic window. Answer [] for 
 
141
  default window position.    
 
142
</LI>
 
143
<LI>Output window sizes:a 2 vector specifying the coordinates of
 
144
  the upper left corner of the graphic window. Answer [] for default 
 
145
  window position.   
 
146
</LI>
 
147
<LI>Ymin vector: Minimum  values of the input; used to set up the Y-axis
 
148
  of the plot in the graphics window. 
 
149
</LI>
 
150
<LI>Ymax vector: Maximum values of the input; used to set up the Y-axis
 
151
  of the plot in the graphics window.  
 
152
</LI>
 
153
<LI>Refresh period:  Maximum value on the X-axis (time). The plot
 
154
  is redrawn when time reaches a multiple of this value.
 
155
</LI>
 
156
<LI>Buffer size: To improve efficiency it is possible to buffer the
 
157
  input data. The drawing is only done after each  <B>Buffer size</B>
 
158
  call to the block.   
 
159
</LI>
 
160
<LI>Accept herited events 0/1:if 0  <B>CSCOPE_f</B>  draws a new point
 
161
  only when an event occurs on its event input port. if 1  <B>CSCOPE_f</B>
 
162
  draws a new point when an event occurs on its event input port and
 
163
  when it's regular input changes due to an event on an other upstrem
 
164
  block (herited events).   
 
165
</LI>
 
166
<LI>Name of Scope : Name/label of the block.
 
167
</LI>
 
168
</UL>
 
169
 
 
170
<H3><font color="blue"><A NAME="SECTION00522400000000000000">
 
171
Default properties</A>
 
172
</font></H3>
 
173
 
 
174
<UL>
 
175
<LI>always active: no
 
176
</LI>
 
177
<LI>direct-feedthrough: yes
 
178
</LI>
 
179
<LI>zero-crossing: no
 
180
</LI>
 
181
<LI>mode: no
 
182
</LI>
 
183
<LI>number/sizes of inputs: 2 / 1  1
 
184
</LI>
 
185
<LI>number/sizes of outputs: 0 / 
 
186
</LI>
 
187
<LI>number/sizes of activation inputs: 1 / 1
 
188
</LI>
 
189
<LI>number/sizes of activation outputs: 0 / 
 
190
</LI>
 
191
<LI>continuous-time state: no
 
192
</LI>
 
193
<LI>discrete-time state: yes
 
194
</LI>
 
195
<LI>name of computational function: <EM>cmscope</EM>
 
196
</LI>
 
197
</UL>
 
198
<H3><font color="blue"><A NAME="SECTION00522500000000000000">
 
199
Interfacing function</A>
 
200
</font></H3>
 
201
<TT>scilab/macros/scicos_blocks/sinks/CMSCOPE.sci</TT>
 
202
 
 
203
<H3><font color="blue"><A NAME="SECTION00522600000000000000">
 
204
Computational function (type 4)</A>
 
205
</font></H3>
 
206
<BR>
 
207
<PRE>#include "scicos_block.h"
 
208
#include &lt;math.h&gt;
 
209
#include "../machine.h"
 
210
 
 
211
#if WIN32
 
212
#define NULL    0
 
213
#endif
 
214
 
 
215
static int c__1 = 1;
 
216
static int c__0 = 0;
 
217
static int c_n1 = -1;
 
218
static int c__3 = 3;
 
219
static double c_b103 = 0.;
 
220
 
 
221
void cmscope(scicos_block *block,int flag)
 
222
{
 
223
  double t;
 
224
  double *z__;
 
225
  double *rpar;
 
226
  int *ipar, nipar,nu;
 
227
  
 
228
 
 
229
 
 
230
  static int cur = 0;
 
231
  static int verb = 0;
 
232
  
 
233
  int i__1, i__2, i__3,nwid,kk,i,j,sum;
 
234
  
 
235
  int kfun;  
 
236
  
 
237
  static double rect[4];
 
238
  static int kwid;
 
239
  extern int C2F(getlabel)();
 
240
  extern int C2F(dset)();
 
241
  static int i__, k, n, v;
 
242
  static double frect[4], tsave;
 
243
  static int n1, n2;
 
244
  extern int C2F(plot2d)(), C2F(setscale2d)();
 
245
  static int na;
 
246
  extern int C2F(dr)();
 
247
  static double dt, dv;
 
248
  static int it, nxname;
 
249
  extern int C2F(sciwin)(), C2F(dr1)(), C2F(scicosclip)();
 
250
  static char buf[40];
 
251
  static int wid, iwd;
 
252
  static double per;
 
253
  static int nax[4], ilt, iwp;
 
254
 
 
255
  /*     Scicos block simulator */
 
256
  /*     ipar(1) = win_num */
 
257
  /*     ipar(2) = number of subwindows (input ports) */
 
258
  /*     ipar(3) = buffer size */
 
259
  /*     ipar(4:5) : window position */
 
260
  /*     ipar(6:7) : window dimension */
 
261
  /*     ipar(8:7+ipar(2)) = input port sizes */
 
262
  /*     ipar(8+ipar(2):7+ipar(2)+nu) = line type for ith curve */
 
263
  /*     rpar(1)=dt */
 
264
  /*     rpar(2)=periode */
 
265
  /*     rpar(3)=ymin_1 */
 
266
  /*     rpar(4)=ymax_1 */
 
267
  /*     ... */
 
268
  /*     rpar(2*k+1)=ymin_k */
 
269
  /*     rpar(2*k+2)=ymax_k */
 
270
 
 
271
  nu=block-&gt;insz[0];
 
272
  rpar=block-&gt;rpar;
 
273
  ipar=block-&gt;ipar;
 
274
  nipar=block-&gt;nipar;
 
275
  t=get_scicos_time();
 
276
 
 
277
  --ipar;
 
278
  --rpar;
 
279
 
 
280
  wid = ipar[1];
 
281
  if(wid==-1){
 
282
    wid=20000+get_block_number();
 
283
  }
 
284
  nwid = ipar[2];
 
285
  n = ipar[3];
 
286
  per = rpar[2];
 
287
  dt = rpar[1];
 
288
 
 
289
  if (flag == 2) {
 
290
    z__=*block-&gt;work; 
 
291
    --z__;
 
292
    k = (int) z__[1];
 
293
    if (k &gt; 0) {
 
294
      n1 = (int) (z__[k + 1] / per);
 
295
      if (z__[k + 1] &lt; 0.) {
 
296
        --n1;
 
297
      }
 
298
    } else {
 
299
      n1 = 0;
 
300
    }
 
301
 
 
302
    tsave = t;
 
303
    if (dt &gt; 0.) {
 
304
      t = z__[k + 1] + dt;
 
305
    }
 
306
 
 
307
    n2 = (int) (t / per);
 
308
    if (t &lt; 0.) {
 
309
      --n2;
 
310
    }
 
311
 
 
312
    /*     add new point to the buffer */
 
313
    ++k;
 
314
    z__[k + 1] = t;
 
315
    kk=0;
 
316
    for (i=0;i&lt;block-&gt;nin;++i){
 
317
      for (j = 0; j &lt;block-&gt;insz[i] ; ++j) {
 
318
        z__[n + 1 + kk * n + k] =block-&gt;inptr[i][j] ;
 
319
        ++kk;
 
320
      }
 
321
    }
 
322
    z__[1] = (double) k;
 
323
    if (n1 == n2 &amp;&amp; k &lt; n) {
 
324
      t = tsave;
 
325
      return ;
 
326
    }
 
327
 
 
328
    /*     plot 1:K points of the buffer */
 
329
    C2F(dr1)("xget\000", "window\000", &amp;verb, &amp;cur, &amp;na, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
330
             &amp;dv, &amp;dv);
 
331
    if (cur != wid) {
 
332
      C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
333
               &amp;dv, &amp;dv);
 
334
    }
 
335
    C2F(dr1)("xset\000", "use color\000", &amp;c__1, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;
 
336
             v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
337
    C2F(dr1)("xset\000", "dashes\000", &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;v, 
 
338
             &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
339
    C2F(dr1)("xsetdr\000", "Rec\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
340
             dv);
 
341
    ilt = ipar[2] + 8;
 
342
    it = 0;
 
343
    /*     loop on input ports */
 
344
    if (k &gt; 0) {
 
345
      i__1 = nwid;
 
346
      for (kwid = 1; kwid &lt;= i__1; ++kwid) {
 
347
        rect[0] = per * n1;
 
348
        rect[1] = rpar[(kwid &lt;&lt; 1) + 1];
 
349
        rect[2] = per * (n1 + 1);
 
350
        rect[3] = rpar[(kwid &lt;&lt; 1) + 2];
 
351
        frect[0] = 0.;
 
352
        frect[1] = (kwid - 1) * (1. / nwid);
 
353
        frect[2] = 1.;
 
354
        frect[3] = 1. / nwid;
 
355
        C2F(setscale2d)(frect, rect, "nn\000");
 
356
        C2F(scicosclip)(&amp;c__1);
 
357
        /*     loop on input port elements */
 
358
        i__2 = ipar[kwid + 7];
 
359
        for (i__ = 1; i__ &lt;= i__2; ++i__) {
 
360
          C2F(dr1)("xpolys\000", "v\000", &amp;v, &amp;v, &amp;ipar[ilt + it], &amp;
 
361
                   c__1, &amp;k, &amp;v, &amp;z__[2], &amp;z__[n + 2 + it * n], &amp;dv, 
 
362
                   &amp;dv);
 
363
          ++it;
 
364
        }
 
365
        C2F(scicosclip)(&amp;c__0);
 
366
      }
 
367
    }
 
368
    /*     shift buffer left */
 
369
    z__[2] = z__[k + 1];
 
370
    sum=0;
 
371
    for (i=0;i&lt;block-&gt;nin;++i){
 
372
      sum=sum+block-&gt;insz[i];
 
373
    }    i__1 = sum;
 
374
    for (i__ = 1; i__ &lt;= i__1; ++i__) {
 
375
      z__[n + 1 + (i__ - 1) * n + 1] = z__[n + 1 + (i__ - 1) * n + k];
 
376
    }
 
377
    z__[1] = 1.;
 
378
    if (n1 != n2) {
 
379
      /*     clear window */
 
380
      nax[0] = 2;
 
381
      nax[1] = 10;
 
382
      nax[2] = 2;
 
383
      nax[3] = 10;
 
384
      C2F(dr1)("xclear\000", "v\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv,
 
385
               &amp;dv);
 
386
      C2F(dr1)("xset\000", "use color\000", &amp;c__1, &amp;c__0, &amp;c__0, &amp;c__0, &amp;
 
387
               c__0, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
388
      C2F(dr)("xstart\000", "v\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;
 
389
              dv, &amp;dv);
 
390
      C2F(dr1)("xset\000", "dashes\000", &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, 
 
391
               &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
392
      i__1 = nwid;
 
393
      for (kwid = 1; kwid &lt;= i__1; ++kwid) {
 
394
        rect[0] = per * (n1 + 1);
 
395
        rect[1] = rpar[(kwid &lt;&lt; 1) + 1];
 
396
        rect[2] = per * (n1 + 2);
 
397
        rect[3] = rpar[(kwid &lt;&lt; 1) + 2];
 
398
        frect[0] = 0.;
 
399
        frect[1] = (kwid - 1) * (1. / nwid);
 
400
        frect[2] = 1.;
 
401
        frect[3] = 1. / nwid;
 
402
        C2F(setscale2d)(frect, rect, "nn\000");
 
403
        C2F(plot2d)(rect, &amp;rect[1], &amp;c__1, &amp;c__1, &amp;c_n1, "011", "xlines", rect, 
 
404
                    nax);
 
405
      }
 
406
    }
 
407
    t = tsave;
 
408
 
 
409
  } else if (flag == 4) {
 
410
    sum=0;
 
411
    for (i=0;i&lt;block-&gt;nin;++i){
 
412
      sum=sum+block-&gt;insz[i];
 
413
    }
 
414
    if ((*block-&gt;work=
 
415
         scicos_malloc(sizeof(double)*(1+ipar[3]*(1+sum))))== NULL ) {
 
416
      set_block_error(-16);
 
417
      return;
 
418
    }
 
419
    z__=*block-&gt;work; 
 
420
    --z__;
 
421
    z__[1]=-1.0;
 
422
    nax[0] = 2;
 
423
    nax[1] = 10;
 
424
    nax[2] = 2;
 
425
    nax[3] = 10;
 
426
    n1 = (int) (t / per);
 
427
    if (t &lt;= 0.) {
 
428
      --n1;
 
429
    }
 
430
    C2F(sciwin)();
 
431
    C2F(dr1)("xget\000", "window\000", &amp;verb, &amp;cur, &amp;na, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
432
             &amp;dv, &amp;dv);
 
433
    if (cur != wid) {
 
434
      C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
435
               &amp;dv, &amp;dv);
 
436
    }
 
437
    iwp = 4;
 
438
    if (ipar[iwp] &gt;= 0) {
 
439
      C2F(dr1)("xset\000", "wpos\000", &amp;ipar[iwp], &amp;ipar[iwp + 1], &amp;v, &amp;v, &amp;
 
440
               v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
441
    }
 
442
    iwd = 6;
 
443
    if (ipar[iwd] &gt;= 0) {
 
444
      C2F(dr1)("xset\000", "wdim\000", &amp;ipar[iwd], &amp;ipar[iwd + 1], &amp;v, &amp;v, &amp;
 
445
               v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
446
    }
 
447
    C2F(dr1)("xsetdr\000", "Rec\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
448
             dv);
 
449
    C2F(dr1)("xset\000", "use color\000", &amp;c__1, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;
 
450
             v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
451
    C2F(dr1)("xset\000", "alufunction\000", &amp;c__3, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0,
 
452
             &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
453
    C2F(dr1)("xclear\000", "v\000", &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
454
             dv);
 
455
    C2F(dr)("xstart\000", "v\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;
 
456
            dv);
 
457
    C2F(dr1)("xset\000", "dashes\000", &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;v, 
 
458
             &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
459
    nxname = 40;
 
460
    kfun=get_block_number();
 
461
    C2F(getlabel)(&amp;kfun, buf, &amp;nxname);
 
462
    if (nxname &gt; 39) {
 
463
      nxname = 39;
 
464
    }
 
465
    i__1 = nxname;
 
466
    *(buf+i__1)=*"\000";
 
467
    if ((nxname == 1 &amp;&amp; *(unsigned char *)buf == ' ') || nxname == 0) {
 
468
    } else {
 
469
      C2F(dr)("xname\000", buf, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
470
    }
 
471
    i__1 = nwid;
 
472
    for (kwid = 1; kwid &lt;= i__1; ++kwid) {
 
473
      rect[0] = per * (n1 + 1);
 
474
      rect[1] = rpar[(kwid &lt;&lt; 1) + 1];
 
475
      rect[2] = per * (n1 + 2);
 
476
      rect[3] = rpar[(kwid &lt;&lt; 1) + 2];
 
477
      frect[0] = 0.;
 
478
      frect[1] = (kwid - 1) * (1. / nwid);
 
479
      frect[2] = 1.;
 
480
      frect[3] = 1. / nwid;
 
481
      C2F(setscale2d)(frect, rect, "nn\000");
 
482
      C2F(plot2d)(rect, &amp;rect[1], &amp;c__1, &amp;c__1, &amp;c_n1, "011", buf, rect, nax);
 
483
    }
 
484
    
 
485
    z__[1] = 0.;
 
486
    z__[2] = t;
 
487
    i__1 = sum * n;
 
488
    C2F(dset)(&amp;i__1, &amp;c_b103, &amp;z__[3], &amp;c__1);
 
489
  } else if (flag == 5) {
 
490
    z__=*block-&gt;work; 
 
491
    --z__;
 
492
    k = (int) z__[1];
 
493
    if (k &lt;= 1) {
 
494
      scicos_free(*block-&gt;work);
 
495
      return ;
 
496
    }
 
497
    C2F(dr1)("xget\000", "window\000", &amp;verb, &amp;cur, &amp;na, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
498
             &amp;dv, &amp;dv);
 
499
    if (cur != wid) {
 
500
      C2F(dr1)("xset\000", "window\000", &amp;wid, &amp;v, &amp;v, &amp;v, &amp;v, &amp;v, &amp;dv, &amp;dv,
 
501
               &amp;dv, &amp;dv);
 
502
    }
 
503
    C2F(dr1)("xset\000", "use color\000", &amp;c__1, &amp;c__0, &amp;c__0, &amp;c__0, &amp;c__0, &amp;
 
504
             v, &amp;dv, &amp;dv, &amp;dv, &amp;dv);
 
505
    
 
506
    ilt = ipar[2] + 8;
 
507
    it = 0;
 
508
    n1 = (int) (t / per);
 
509
    if (t &lt;= 0.) {
 
510
      --n1;
 
511
    }
 
512
    /*     loop on input ports */
 
513
    i__1 = nwid;
 
514
    for (kwid = 1; kwid &lt;= i__1; ++kwid) {
 
515
      rect[0] = per * (n1 + 1);
 
516
      rect[1] = rpar[(kwid &lt;&lt; 1) + 1];
 
517
      rect[2] = per * (n1 + 2);
 
518
      rect[3] = rpar[(kwid &lt;&lt; 1) + 2];
 
519
      frect[0] = 0.;
 
520
      frect[1] = (kwid - 1) * (1. / nwid);
 
521
      frect[2] = 1.;
 
522
      frect[3] = 1. / nwid;
 
523
      F2C(setscale2d)(frect, rect, "nn\000");
 
524
      F2C(scicosclip)(&amp;c__1);
 
525
      /*     loop on input port elements */
 
526
      i__2 = ipar[kwid + 7];
 
527
      for (i__ = 1; i__ &lt;= i__2; ++i__) {
 
528
        i__3 = k - 1;
 
529
        C2F(dr1)("xpolys\000", "v\000", &amp;v, &amp;v, &amp;ipar[ilt + it], &amp;c__1, &amp;
 
530
                 i__3, &amp;v, &amp;z__[2], &amp;z__[n + 2 + it * n], &amp;dv, &amp;dv);
 
531
        ++it;
 
532
      }
 
533
      C2F(scicosclip)(&amp;c__0);
 
534
    }
 
535
  scicos_free(*block-&gt;work);
 
536
  }
 
537
 
538
</PRE>
 
539
<HR>
 
540
<ADDRESS>
 
541
Ramine Nikoukhah
 
542
2004-06-22
 
543
</ADDRESS>
 
544
</BODY>
 
545
</HTML>