1 /*------------------------------------------------------------\
2 |                                                             |
3 | Tool    :                     RDS                           |
4 |                                                             |
5 | File    :                   rdsadd.c                        |
6 |                                                             |
7 | Authors :                Jacomme Ludovic                    |
8 |                                                             |
9 | Date    :                   27.06.95                        |
10 |                                                             |
11 \------------------------------------------------------------*/
12 /*------------------------------------------------------------\
13 |                                                             |
14 |                         Include Files                       |
15 |                                                             |
16 \------------------------------------------------------------*/
17 
18 # include <stdio.h>
19 # include <string.h>
20 
21 # include <mut.h>
22 # include "rds.h"
23 
24 # include "rdsadd.h"
25 # include "rdserror.h"
26 
27 /*------------------------------------------------------------\
28 |                                                             |
29 |                           Constants                         |
30 |                                                             |
31 \------------------------------------------------------------*/
32 /*------------------------------------------------------------\
33 |                                                             |
34 |                            Types                            |
35 |                                                             |
36 \------------------------------------------------------------*/
37 /*------------------------------------------------------------\
38 |                                                             |
39 |                          Variables                          |
40 |                                                             |
41 \------------------------------------------------------------*/
42 /*------------------------------------------------------------\
43 |                                                             |
44 |                          Functions                          |
45 |                                                             |
46 \------------------------------------------------------------*/
47 /*------------------------------------------------------------\
48 |                                                             |
49 |                      Rds Add Functions                      |
50 |                                                             |
51 \------------------------------------------------------------*/
52 /*------------------------------------------------------------\
53 |                                                             |
54 |                        Rds Add Figure                       |
55 |                                                             |
56 \------------------------------------------------------------*/
57 
addrdsfig(Name,Size)58 rdsfig_list *addrdsfig( Name, Size )
59 
60    char           *Name;
61    unsigned short  Size;
62 {
63   rdsfig_list *Figure;
64 
65   Figure = allocrdsfig();
66 
67   Figure->NAME  = namealloc( Name );
68   Figure->SIZE  = Size;
69   Figure->MODE  = 'A';
70   Figure->NEXT  = HEAD_RDSFIG;
71 
72   HEAD_RDSFIG   = Figure;
73 
74   return( Figure );
75 }
76 
77 /*------------------------------------------------------------\
78 |                                                             |
79 |                        Rds Add Instance                     |
80 |                                                             |
81 \------------------------------------------------------------*/
82 
addrdsins(Figure,Model,Name,Sym,X,Y)83 rdsins_list *addrdsins( Figure, Model, Name, Sym, X, Y )
84 
85    rdsfig_list *Figure;
86    char        *Model;
87    char        *Name;
88    char         Sym;
89    long         X;
90    long         Y;
91 {
92   rdsins_list *Instance;
93 
94   Instance = allocrdsins();
95 
96   Instance->FIGNAME = namealloc( Model );
97   Instance->INSNAME = namealloc( Name  );
98   Instance->X       = X;
99   Instance->Y       = Y;
100   Instance->TRANSF  = Sym;
101   Instance->SIZE    = Figure->SIZE;
102   Instance->NEXT    = Figure->INSTANCE;
103 
104   Figure->INSTANCE  = Instance;
105 
106   return( Instance );
107 }
108 
109 /*------------------------------------------------------------\
110 |                                                             |
111 |                  Rds Add Rectangle in Instance              |
112 |                                                             |
113 \------------------------------------------------------------*/
114 
addrdsinsrec(Instance,Name,Layer,X,Y,Dx,Dy)115 rdsrec_list *addrdsinsrec( Instance, Name, Layer, X, Y, Dx, Dy )
116 
117    rdsins_list *Instance;
118    char        *Name;
119    char         Layer;
120    long         X;
121    long         Y;
122    long         Dx;
123    long         Dy;
124 {
125   rdsrec_list *Rectangle;
126 
127   Rectangle = allocrdsrec( Instance->SIZE );
128 
129   Rectangle->NAME  = namealloc( Name );
130   Rectangle->X     = X;
131   Rectangle->Y     = Y;
132   Rectangle->DX    = Dx;
133   Rectangle->DY    = Dy;
134   Rectangle->FLAGS = (unsigned char)(Layer);
135   Rectangle->NEXT  = Instance->LAYERTAB[ (unsigned int)Layer ];
136 
137   Instance->LAYERTAB[ (unsigned int)Layer ] = Rectangle;
138 
139   ClearRdsFigRec( Rectangle );
140 
141   return( Rectangle );
142 }
143 
144 /*------------------------------------------------------------\
145 |                                                             |
146 |                  Rds Add Rectangle in Figure                |
147 |                                                             |
148 \------------------------------------------------------------*/
149 
addrdsfigrec(Figure,Name,Layer,X,Y,Dx,Dy)150 rdsrec_list *addrdsfigrec( Figure, Name, Layer, X, Y, Dx, Dy )
151 
152    rdsfig_list *Figure;
153    char        *Name;
154    char         Layer;
155    long         X;
156    long         Y;
157    long         Dx;
158    long         Dy;
159 {
160   rdsrec_list *Rectangle;
161 
162   Rectangle = allocrdsrec( Figure->SIZE );
163 
164   Rectangle->NAME  = namealloc( Name );
165   Rectangle->X     = X;
166   Rectangle->Y     = Y;
167   Rectangle->DX    = Dx;
168   Rectangle->DY    = Dy;
169   Rectangle->FLAGS = (unsigned char)(Layer);
170   Rectangle->NEXT  = Figure->LAYERTAB[ (unsigned int)Layer ];
171 
172   Figure->LAYERTAB[ (unsigned int)Layer ] = Rectangle;
173 
174   SetRdsFigRec( Rectangle );
175 
176   return( Rectangle );
177 }
178 
179