Scroll to navigation

BUILDRDSWINDOW(3) RDS PHYSICAL FUNCTIONS BUILDRDSWINDOW(3)

NAME

buildrdswindow - builds windowing of a figure

ORIGIN

This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Université Pierre et Marie CURIE, in Paris, France.

Web : http://asim.lip6.fr/recherche/alliance/
E-mail : alliance-users@asim.lip6.fr

SYNOPSYS

#include "rwinnn.h"
 rdswindow ∗buildrdswindow( Figure )
    rdsfig_list ∗Figure;

PARAMETER

Figure
The figure where has to be built the windowing.

DESCRIPTION

The buildrdswindow function permits to build windowing on the figure named ´Figure´.

RETURN VALUE

The pointer to the windowing structure "rdswindow".

ERRORS

"Rds202: rdsalloc error, can't continue !"
it's impossible to allocate the memory size desired

EXAMPLE

        #include "mphnnn.h"
        #include "mutnnn.h"
        #include "rdsnnn.h"
        #include "rfmnnn.h"
        #include "rwinnn.h"
        #include "rtlnnn.h"
        main()
          {
            phfig_list     ∗MbkFigure;
            rdsfig_list    ∗RdsFigure;
            rdswindow      ∗Window;
            long            X,Y,Offset;
            rdswin_list    ∗Win;
            rdswinrec_list ∗WinRec;
            rdsrec_list    ∗ScanRec;
            char            Layer;
            char            Index;
            mbkenv();
            rdsenv();
            loadrdsparam();
            MbkFigure = getphfig("na2_y",'A');
            RdsFigure = figmbkrds(MbkFigure,0,0); 
            Window    =  buildrdswindow ( RdsFigure );
            /∗ gets each window of the table ∗/
            for ( X = 0 ; X < Window->DX ; X ++ )
             for ( Y = 0 ; Y < Window->DY ; Y ++ ) 
              {
                printf("WINDOW (%ld,%ld)\n",X,Y);              
                Offset = Y ∗ Window->DX + X;
                Win = Window->WINTAB + Offset;
                /∗ gets all rectangles of a window ∗/
                for ( Layer = 0 ; Layer < RWI_MAX_LAYER ; Layer ++ )               
                 {
                   printf("LAYER = %s\n",RDS_LAYER_NAME[Layer]);
                   for ( WinRec  = Win->LAYERTAB[ Layer ];
                         WinRec != (rdswinrec_list ∗)NULL;
                         WinRec  = WinRec->NEXT )
                    {
                      for (
                            Index = 0;
                            Index < RWI_MAX_REC;
                            Index++
                          )
                       {
                        ScanRec = WinRec->RECTAB[ Index ];
                        /∗ prints dimensions of each rectangle ∗/
                        if ( ScanRec != NULL )
                        printf("X=%ld, Y=%ld, DX=%ld, DY=%ld\n",
                               ScanRec->X,ScanRec->Y,ScanRec->DX,
                               ScanRec->DY);
                        else break;
                       }
                    }
                 }
              }
            . . .
          }

SEE ALSO

librwi, allocrdswindow, destroyrdswindow, viewrdswindow

BUG REPORT

This tool is under development at the ASIM department of the LIP6 laboratory.
We need your feedback to improve documentation and tools.

October 1, 1997 ASIM/LIP6