1 #define DWG_TYPE DWG_TYPE_MINSERT
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error;
8 dwg_point_3d ins_pt, extrusion, scale;
9 double rotation;
10 BITCODE_BB scale_flag;
11 BITCODE_B has_attribs;
12 double col_spacing, row_spacing;
13 BITCODE_BL num_owned;
14 BITCODE_BS num_rows, num_cols;
15 BITCODE_H block_header, first_attrib, last_attrib, seqend, *attribs;
16
17 Dwg_Version_Type version = obj->parent->header.version;
18 dwg_ent_minsert *minsert = dwg_object_to_MINSERT (obj);
19
20 CHK_ENTITY_3RD_W_OLD (minsert, MINSERT, ins_pt);
21 CHK_ENTITY_3RD_W_OLD (minsert, MINSERT, scale);
22 CHK_ENTITY_TYPE (minsert, MINSERT, scale_flag, BB);
23 CHK_ENTITY_TYPE_W_OLD (minsert, MINSERT, rotation, BD);
24 CHK_ENTITY_MAX (minsert, MINSERT, rotation, BD, MAX_ANGLE);
25 CHK_ENTITY_3RD_W_OLD (minsert, MINSERT, extrusion);
26 CHK_ENTITY_TYPE (minsert, MINSERT, has_attribs, B);
27 CHK_ENTITY_TYPE_W_OLD (minsert, MINSERT, num_owned, BL);
28 CHK_ENTITY_TYPE_W_OLD (minsert, MINSERT, num_cols, BS);
29 CHK_ENTITY_TYPE_W_OLD (minsert, MINSERT, num_rows, BS);
30 CHK_ENTITY_TYPE_W_OLD (minsert, MINSERT, col_spacing, BD);
31 CHK_ENTITY_TYPE_W_OLD (minsert, MINSERT, row_spacing, BD);
32
33 CHK_ENTITY_H (minsert, MINSERT, block_header);
34 if (minsert->has_attribs)
35 {
36 if (version <= R_2000)
37 {
38 CHK_ENTITY_H (minsert, MINSERT, first_attrib);
39 CHK_ENTITY_H (minsert, MINSERT, last_attrib);
40 }
41 if (version >= R_2004)
42 {
43 CHK_ENTITY_HV (minsert, MINSERT, attribs, num_owned);
44 }
45 CHK_ENTITY_H (minsert, MINSERT, seqend);
46 }
47 }