1 #define DWG_TYPE DWG_TYPE_MLINESTYLE
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error, isnew;
8 BITCODE_TV name;
9 BITCODE_TV description;
10 BITCODE_BS flag;
11 BITCODE_CMC fill_color;
12 BITCODE_BD start_angle;
13 BITCODE_BD end_angle;
14 BITCODE_RC i, num_lines;
15 Dwg_MLINESTYLE_line *lines;
16
17 Dwg_Version_Type dwg_version = obj->parent->header.version;
18 dwg_obj_mlinestyle *mlinestyle = dwg_object_to_MLINESTYLE (obj);
19
20 CHK_ENTITY_UTF8TEXT_W_OBJ (mlinestyle, MLINESTYLE, name);
21 CHK_ENTITY_UTF8TEXT (mlinestyle, MLINESTYLE,
22 description); // old API called desc
23 CHK_ENTITY_TYPE_W_OBJ (mlinestyle, MLINESTYLE, flag, BS);
24 CHK_ENTITY_MAX (mlinestyle, MLINESTYLE, flag, BS, 2047);
25 CHK_ENTITY_CMC (mlinestyle, MLINESTYLE, fill_color);
26 CHK_ENTITY_TYPE_W_OBJ (mlinestyle, MLINESTYLE, start_angle, BD);
27 CHK_ENTITY_MAX (mlinestyle, MLINESTYLE, start_angle, BD, MAX_ANGLE);
28 CHK_ENTITY_TYPE_W_OBJ (mlinestyle, MLINESTYLE, end_angle, BD);
29 CHK_ENTITY_MAX (mlinestyle, MLINESTYLE, end_angle, BD, MAX_ANGLE);
30 CHK_ENTITY_TYPE_W_OBJ (mlinestyle, MLINESTYLE, num_lines, RCd);
31
32 if (!dwg_dynapi_entity_value (mlinestyle, "MLINESTYLE", "lines", &lines,
33 NULL))
34 fail ("MLINESTYLE.lines");
35 else
36 {
37 for (i = 0; i < num_lines; i++)
38 {
39 CHK_SUBCLASS_TYPE (lines[i], MLINESTYLE_line, offset, BD);
40 CHK_SUBCLASS_CMC (lines[i], MLINESTYLE_line, color);
41 if (dwg_version < R_2018)
42 CHK_SUBCLASS_TYPE (lines[i], MLINESTYLE_line, lt_index, BSd)
43 else
44 CHK_SUBCLASS_H (lines[i], MLINESTYLE_line, lt_ltype);
45 }
46 }
47 }