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