1 // TODO coverage
2 #define DWG_TYPE DWG_TYPE_BLOCKUSERPARAMETER
3 #include "common.c"
4
5 void
6 api_process (dwg_object *obj)
7 {
8 int error, isnew;
9 BITCODE_BL i;
10 BLOCK1PTPARAMETER_fields;
11 BITCODE_BS flag; /*!< DXF 90 */
12 BITCODE_H assocvariable; /*!< DXF 305 */
13 BITCODE_T expr; /*!< DXF 301 */
14 Dwg_EvalVariant value;
15 BITCODE_BS type; /*!< DXF 170 */
16
17 Dwg_Version_Type dwg_version = obj->parent->header.version;
18 // #ifdef DEBUG_CLASSES
19 dwg_obj_blockuserparameter *_obj = dwg_object_to_BLOCKUSERPARAMETER (obj);
20
21 CHK_EVALEXPR (BLOCKUSERPARAMETER);
22 // AcDbBlockElement
23 CHK_ENTITY_UTF8TEXT (_obj, BLOCKUSERPARAMETER, name);
24 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, be_major, BL);
25 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, be_minor, BL);
26 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, eed1071, BL);
27 // AcDbBlockParameter
28 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, show_properties, B);
29 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, chain_actions, B);
30 // AcDbBlock1PtParameter
31 CHK_ENTITY_3RD (_obj, BLOCKUSERPARAMETER, def_pt);
32 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, num_propinfos, BL);
33 CHK_ENTITY_MAX (_obj, BLOCKUSERPARAMETER, num_propinfos, BL, 2);
34 BLOCKPARAMETER_PropInfo (prop1) BLOCKPARAMETER_PropInfo (prop2)
35 // AcDbBlockUserParameter
36 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, flag, BS);
37 CHK_ENTITY_H (_obj, BLOCKUSERPARAMETER, assocvariable);
38 CHK_ENTITY_UTF8TEXT (_obj, BLOCKUSERPARAMETER, expr);
39
40 CHK_SUBCLASS_TYPE (_obj->value, EvalVariant, code, BS);
41 switch (dwg_resbuf_value_type (_obj->value.code))
42 {
43 case DWG_VT_REAL:
44 CHK_SUBCLASS_TYPE (_obj->value, EvalVariant, u.bd, BD);
45 break;
46 case DWG_VT_INT32:
47 CHK_SUBCLASS_TYPE (_obj->value, EvalVariant, u.bl, BL);
48 break;
49 case DWG_VT_INT16:
50 CHK_SUBCLASS_TYPE (_obj->value, EvalVariant, u.bs, BS);
51 break;
52 case DWG_VT_STRING:
53 CHK_SUBCLASS_UTF8TEXT (_obj->value, EvalVariant, u.text);
54 break;
55 case DWG_VT_HANDLE:
56 CHK_SUBCLASS_H (_obj->value, EvalVariant, u.handle);
57 break;
58 case DWG_VT_BINARY:
59 case DWG_VT_OBJECTID:
60 case DWG_VT_POINT3D:
61 case DWG_VT_INVALID:
62 case DWG_VT_INT64:
63 case DWG_VT_INT8:
64 case DWG_VT_BOOL:
65 default:
66 fail ("Unknown ASSOCVARIABLE.value.code %u", _obj->value.code);
67 }
68
69 CHK_ENTITY_TYPE (_obj, BLOCKUSERPARAMETER, type, BS);
70 // #endif
71 }