1 #define DWG_TYPE DWG_TYPE_BLOCK_HEADER
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error, isnew;
8 BITCODE_RC flag;
9 BITCODE_T name;
10 BITCODE_RSd used;
11 BITCODE_B is_xref_ref;
12 BITCODE_BS is_xref_resolved;
13 BITCODE_B is_xref_dep;
14 BITCODE_H xref;
15
16 BITCODE_BL __iterator;
17 BITCODE_RS flag2; /* preR13 */
18 BITCODE_B anonymous; /* flag 70 bit 1 */
19 BITCODE_B hasattrs; /* flag 70 bit 2 */
20 BITCODE_B blkisxref; /* flag 70 bit 3 */
21 BITCODE_B xrefoverlaid; /* flag 70 bit 4 */
22 BITCODE_B loaded_bit; /* flag 70 bit 6 */
23 BITCODE_BL num_owned;
24 BITCODE_3DPOINT base_pt;
25 BITCODE_TV xref_pname;
26 BITCODE_RL i, num_inserts;
27 BITCODE_TV description;
28 BITCODE_BL preview_size; /* no DXF. BLL? */
29 BITCODE_TF preview; /* DXF 310. Called PreviewIcon */
30 BITCODE_BS insert_units;
31 BITCODE_B explodable;
32 BITCODE_RC block_scaling;
33 BITCODE_H block_entity;
34 BITCODE_H first_entity;
35 BITCODE_H last_entity;
36 BITCODE_H *entities;
37 BITCODE_H endblk_entity;
38 BITCODE_H *inserts;
39 BITCODE_H layout;
40
41 // Dwg_Version_Type dwg_version = obj->parent->header.version;
42 dwg_obj_block_header *block_header = dwg_object_to_BLOCK_HEADER (obj);
43
44 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, flag, RC);
45 CHK_ENTITY_UTF8TEXT_W_OBJ (block_header, BLOCK_HEADER, name);
46 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, used, RSd);
47 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, is_xref_ref, B);
48 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, is_xref_resolved, BS);
49 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, is_xref_dep, B);
50 CHK_ENTITY_H (block_header, BLOCK_HEADER, xref);
51
52 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, flag2, RS); /* preR13 */
53 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, anonymous,
54 B); /* flag 70 bit 1 */
55 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, hasattrs,
56 B); /* flag 70 bit 2 */
57 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, blkisxref,
58 B); /* flag 70 bit 3 */
59 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, xrefoverlaid,
60 B); /* flag 70 bit 4 */
61 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, loaded_bit,
62 B); /* flag 70 bit 6 */
63 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, num_owned, BL);
64 CHK_ENTITY_3RD (block_header, BLOCK_HEADER, base_pt);
65 CHK_ENTITY_UTF8TEXT (block_header, BLOCK_HEADER, xref_pname);
66 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, num_inserts, RL);
67 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, description, TV);
68 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, preview_size, BL);
69 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, preview, TF);
70 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, insert_units, BS);
71 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, explodable, B);
72 CHK_ENTITY_TYPE (block_header, BLOCK_HEADER, block_scaling, RC);
73 CHK_ENTITY_UTF8TEXT (block_header, BLOCK_HEADER, description);
74 CHK_ENTITY_H (block_header, BLOCK_HEADER, block_entity);
75 CHK_ENTITY_H (block_header, BLOCK_HEADER, first_entity);
76 CHK_ENTITY_H (block_header, BLOCK_HEADER, last_entity);
77 if (!dwg_dynapi_entity_value (block_header, "BLOCK_HEADER", "entities",
78 &entities, NULL))
79 fail ("BLOCK_HEADER.entities");
80 for (i = 0; i < num_owned; i++)
81 {
82 ok ("BLOCK_HEADER.entities[%d]: " FORMAT_REF, i, ARGS_REF (entities[i]));
83 }
84 CHK_ENTITY_H (block_header, BLOCK_HEADER, endblk_entity);
85 if (!dwg_dynapi_entity_value (block_header, "BLOCK_HEADER", "inserts",
86 &inserts, NULL))
87 fail ("BLOCK_HEADER.inserts");
88 for (i = 0; i < num_inserts; i++)
89 {
90 ok ("BLOCK_HEADER.inserts[%d]: " FORMAT_REF, i, ARGS_REF (inserts[i]));
91 }
92 CHK_ENTITY_H (block_header, BLOCK_HEADER, layout);
93 }