1 /*------------------------------------------------------------\
7 | Authors : Picault Stephane |
11 \------------------------------------------------------------*/
20 cgvfig_list
*HEAD_CGVFIG
= NULL
;
21 cgvcol_list
*HEAD_CGVCOL
= NULL
;
23 /*------------------------------------------------------------\
25 \------------------------------------------------------------*/
27 /*------------------------------------------------------------\
29 \------------------------------------------------------------*/
32 addcgvnetcon(Net
, Con
)
37 Net
->CON_NET
= addchain(Net
->CON_NET
, Con
);
39 if (IsCgvConIn(Con
)) {
49 /*------------------------------------------------------------\
51 \------------------------------------------------------------*/
61 Figure
= (cgvfig_list
*)mbkalloc(sizeof(cgvfig_list
));
62 Figure
->NEXT
= HEAD_CGVFIG
;
63 Figure
->NAME
= namealloc(Name
);
64 Figure
->CON_IN
= NULL
;
65 Figure
->NUMBER_IN
= 0;
66 Figure
->CON_OUT
= NULL
;
67 Figure
->NUMBER_OUT
= 0;
70 Figure
->SOURCE
= NULL
;
71 Figure
->SOURCE_TYPE
= 0;
75 Figure
->LIBRARY
= NULL
;
76 Figure
->SCALE
= scale
;
84 /*------------------------------------------------------------\
86 \------------------------------------------------------------*/
89 addcgvbox(Figure
, Name
)
95 Box
= (cgvbox_list
*)mbkalloc(sizeof(cgvbox_list
));
96 Box
->NEXT
= Figure
->BOX
;
97 Box
->NAME
= namealloc(Name
);
103 Box
->SOURCE_TYPE
= 0;
111 Box
->misc
.UNDER
=NULL
;
116 /*------------------------------------------------------------\
117 | Cgv Add Box Connector |
118 \------------------------------------------------------------*/
121 addcgvboxcon(Figure
, Box
, Name
, Type
)
127 cgvcon_list
*Connector
;
129 #ifndef __ALL__WARNING__
132 Connector
= (cgvcon_list
*)mbkalloc(sizeof(cgvcon_list
));
133 Connector
->NAME
= namealloc(Name
);
135 Connector
->NET
= NULL
;
136 Connector
->SOURCE
= NULL
;
137 Connector
->SOURCE_TYPE
= 0;
138 Connector
->X_REL
= 0;
139 Connector
->Y_REL
= 0;
140 Connector
->FLAGS
= 0;
141 Connector
->USER
= NULL
;
142 Connector
->SUB_NAME
=NULL
;
144 if (Type
== CGV_CON_IN
) {
145 Connector
->NEXT
= Box
->CON_IN
;
146 Box
->CON_IN
= Connector
;
150 Connector
->NEXT
= Box
->CON_OUT
;
151 Box
->CON_OUT
= Connector
;
155 Connector
->TYPE
= Type
;
156 SetCgvConInternal(Connector
);
157 Connector
->ROOT_TYPE
= CGV_ROOT_CON_BOX
;
158 Connector
->ROOT
= Box
;
163 /*------------------------------------------------------------\
164 | Cgv Add Figure Connector |
165 \------------------------------------------------------------*/
168 addcgvfigcon(Figure
, Name
, Type
)
173 cgvcon_list
*Connector
;
175 Connector
= (cgvcon_list
*)mbkalloc(sizeof(cgvcon_list
));
176 Connector
->NAME
= namealloc(Name
);
178 Connector
->NET
= NULL
;
179 Connector
->SOURCE
= NULL
;
180 Connector
->SOURCE_TYPE
= 0;
181 Connector
->X_REL
= 0;
182 Connector
->Y_REL
= 0;
183 Connector
->FLAGS
= 0;
184 Connector
->USER
= NULL
;
185 Connector
->SUB_NAME
= NULL
;
187 if (Type
== CGV_CON_IN
) {
188 Connector
->NEXT
= Figure
->CON_IN
;
189 Figure
->CON_IN
= Connector
;
193 Connector
->NEXT
= Figure
->CON_OUT
;
194 Figure
->CON_OUT
= Connector
;
195 Figure
->NUMBER_OUT
++;
198 Connector
->TYPE
= Type
;
199 SetCgvConExternal(Connector
);
200 Connector
->ROOT_TYPE
= CGV_ROOT_CON_FIG
;
201 Connector
->ROOT
= Figure
;
206 /*------------------------------------------------------------\
208 \------------------------------------------------------------*/
216 Net
= (cgvnet_list
*)mbkalloc(sizeof(cgvnet_list
));
217 Net
->NEXT
= Figure
->NET
;
221 Net
->SOURCE_TYPE
= 0;
235 /*------------------------------------------------------------\
237 \------------------------------------------------------------*/
240 addcgvwir(Figure
, Net
)
246 #ifndef __ALL__WARNING__
249 Wire
= (cgvwir_list
*)mbkalloc(sizeof(cgvwir_list
));
250 Wire
->NEXT
= Net
->WIRE
;
263 /*------------------------------------------------------------\
265 \------------------------------------------------------------*/
273 Cell
= (cgvcel_list
*)mbkalloc(sizeof(cgvcel_list
));
275 Cell
->NEXT
= Column
->CELL
;
280 if (Column
->CELL
!= NULL
) {
281 Column
->CELL
->PREV
= Cell
;
284 Column
->LAST_CELL
= Cell
;
288 Column
->NUMBER_CELL
++;
293 /*------------------------------------------------------------\
294 | Cgv Add Box to Cell |
295 \------------------------------------------------------------*/
298 addcgvboxtocgvcel(CgvBox
, CgvCel
)
302 CgvCel
->ROOT
= CgvBox
;
303 CgvCel
->TYPE
= CGV_CEL_BOX
;
304 CgvBox
->USER
= CgvCel
;
308 /*------------------------------------------------------------\
309 | Cgv Add Con to Cell |
310 \------------------------------------------------------------*/
313 addcgvcontocgvcel(CgvCon
, CgvCel
)
317 CgvCel
->ROOT
= CgvCon
;
318 CgvCel
->TYPE
= CGV_CEL_CON
;
319 CgvCon
->USER
= CgvCel
;
323 /*------------------------------------------------------------\
325 \------------------------------------------------------------*/
332 Column
= (cgvcol_list
*)mbkalloc(sizeof(cgvcol_list
));
333 Column
->NEXT
= HEAD_CGVCOL
;
335 Column
->LAST_CELL
= NULL
;
336 Column
->NUMBER_CELL
= 0;
337 Column
->MAX_DX_CELL
= 0;
339 HEAD_CGVCOL
= Column
;