1 #define DWG_TYPE DWG_TYPE_ATTDEF
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error = 0;
8 double elevation, thickness, rotation, height, oblique_angle, width_factor;
9 BITCODE_BS generation, vert_alignment, horiz_alignment, field_length,
10 annotative_data_size, annotative_short;
11 BITCODE_RC dataflags, flags, type, class_version, attdef_class_version,
12 annotative_data_bytes;
13 BITCODE_B lock_position_flag;
14 char *tag, *default_value, *prompt;
15 dwg_point_3d extrusion, pt3d;
16 dwg_point_2d ins_pt, alignment_pt, pt2d;
17 BITCODE_H style, annotative_app;
18 BITCODE_H mtext_style;
19 Dwg_Version_Type version = obj->parent->header.version;
20 int isnew;
21
22 dwg_ent_attdef *attdef = dwg_object_to_ATTDEF (obj);
23
24 CHK_ENTITY_UTF8TEXT_W_OLD (attdef, ATTDEF, default_value);
25 CHK_ENTITY_UTF8TEXT (attdef, ATTDEF, tag);
26 CHK_ENTITY_UTF8TEXT (attdef, ATTDEF, prompt);
27
28 CHK_ENTITY_2RD (attdef, ATTDEF, ins_pt);
29 CHK_ENTITY_2RD (attdef, ATTDEF, alignment_pt);
30 CHK_ENTITY_3RD_W_OLD (attdef, ATTDEF, extrusion);
31 CHK_ENTITY_TYPE (attdef, ATTDEF, elevation, BD);
32 CHK_ENTITY_TYPE (attdef, ATTDEF, dataflags, RC);
33 CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, height, RD);
34 CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, thickness, RD);
35 CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, rotation, RD);
36 CHK_ENTITY_MAX (attdef, ATTDEF, rotation, RD, MAX_ANGLE);
37 CHK_ENTITY_TYPE (attdef, ATTDEF, oblique_angle, RD);
38 CHK_ENTITY_MAX (attdef, ATTDEF, oblique_angle, RD, MAX_ANGLE);
39 CHK_ENTITY_TYPE (attdef, ATTDEF, width_factor, RD);
40 CHK_ENTITY_TYPE (attdef, ATTDEF, generation, BS);
41
42 CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, vert_alignment, BS);
43 CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, horiz_alignment, BS);
44 CHK_ENTITY_TYPE (attdef, ATTDEF, field_length, BS);
45 CHK_ENTITY_TYPE (attdef, ATTDEF, flags, RC);
46 CHK_ENTITY_H (attdef, ATTDEF, style);
47 if (version >= R_2010)
48 {
49 CHK_ENTITY_TYPE (attdef, ATTDEF, class_version, RC);
50 CHK_ENTITY_TYPE (attdef, ATTDEF, attdef_class_version, RC);
51 }
52 if (version >= R_2018)
53 {
54 CHK_ENTITY_TYPE (attdef, ATTDEF, type, RC);
55 CHK_ENTITY_H (attdef, ATTDEF, mtext_style);
56 CHK_ENTITY_TYPE (attdef, ATTDEF, annotative_data_size, BS);
57 CHK_ENTITY_TYPE (attdef, ATTDEF, annotative_data_bytes, RC);
58 CHK_ENTITY_H (attdef, ATTDEF, annotative_app);
59 CHK_ENTITY_TYPE (attdef, ATTDEF, annotative_short, BS);
60 }
61 if (version >= R_2007)
62 {
63 CHK_ENTITY_TYPE (attdef, ATTDEF, lock_position_flag, B);
64 }
65 }