1 #define DWG_TYPE DWG_TYPE_LTYPE
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_TV description;
17 BITCODE_BD pattern_len;
18 BITCODE_RC alignment;
19 BITCODE_RC numdashes;
20 Dwg_LTYPE_dash *dashes;
21 BITCODE_RD dashes_r11[12];
22 BITCODE_B has_strings_area; /* if some shape_flag & 4 (ODA bug) */
23 BITCODE_TF strings_area;
24
25 Dwg_Version_Type dwg_version = obj->parent->header.version;
26 dwg_obj_ltype *ltype = dwg_object_to_LTYPE (obj);
27
28 CHK_ENTITY_TYPE (ltype, LTYPE, flag, RC);
29 CHK_ENTITY_UTF8TEXT (ltype, LTYPE, name);
30 CHK_ENTITY_TYPE (ltype, LTYPE, used, RSd);
31 CHK_ENTITY_TYPE (ltype, LTYPE, is_xref_ref, B);
32 CHK_ENTITY_TYPE (ltype, LTYPE, is_xref_resolved, BS);
33 CHK_ENTITY_TYPE (ltype, LTYPE, is_xref_dep, B);
34 CHK_ENTITY_H (ltype, LTYPE, xref);
35
36 CHK_ENTITY_UTF8TEXT (ltype, LTYPE, description);
37 CHK_ENTITY_TYPE (ltype, LTYPE, pattern_len, BD);
38 CHK_ENTITY_TYPE (ltype, LTYPE, alignment, RC);
39 CHK_ENTITY_TYPE (ltype, LTYPE, numdashes, RCd);
40 if (!dwg_dynapi_entity_value (ltype, "LTYPE", "dashes", &dashes, NULL))
41 fail ("LTYPE.dashes");
42 else
43 {
44 if (dwg_version <= R_13b1)
45 {
46 if (!dwg_dynapi_entity_value (ltype, "LTYPE", "dashes_r11",
47 &dashes_r11, NULL))
48 fail ("LTYPE.dashes_r11");
49 numdashes = 12;
50 }
51 for (BITCODE_BL i = 0; i < numdashes; i++)
52 {
53 if (dwg_version <= R_13b1)
54 {
55 ok ("dashes_r11[%u]: %f", i, dashes_r11[i]);
56 }
57 else
58 {
59 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, length, BD);
60 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, complex_shapecode, BS);
61 CHK_SUBCLASS_H (dashes[i], LTYPE_dash, style);
62 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, x_offset, RD);
63 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, y_offset, RD);
64 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, scale, BD);
65 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, rotation, BD);
66 CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, shape_flag, BS);
67 }
68 }
69 }
70 if (dwg_version >= R_13b1)
71 {
72 CHK_ENTITY_TYPE (ltype, LTYPE, has_strings_area, B);
73 CHK_ENTITY_TYPE (ltype, LTYPE, strings_area, TF);
74 }
75 }