1 // looks stable
2 #define DWG_TYPE DWG_TYPE_BLOCKVISIBILITYPARAMETER
3 #include "common.c"
4
5 void
6 api_process (dwg_object *obj)
7 {
8 int error, isnew;
9 BLOCK1PTPARAMETER_fields;
10 BITCODE_B is_initialized;
11 BITCODE_B unknown_bool; // DXF 91, history_compression, history_required or
12 // is_visible?
13 BITCODE_T blockvisi_name;
14 BITCODE_T blockvisi_desc;
15 BITCODE_BL i, num_blocks;
16 BITCODE_H *blocks;
17 BITCODE_BL num_states;
18 Dwg_BLOCKVISIBILITYPARAMETER_state *states;
19 BITCODE_H *params;
20 // BITCODE_T cur_state_name;
21 // BITCODE_BL cur_state;
22
23 Dwg_Version_Type dwg_version = obj->parent->header.version;
24 dwg_obj_blockvisibilityparameter *_obj
25 = dwg_object_to_BLOCKVISIBILITYPARAMETER (obj);
26
27 CHK_EVALEXPR (BLOCKVISIBILITYPARAMETER);
28 // AcDbBlockElement
29 CHK_ENTITY_UTF8TEXT (_obj, BLOCKVISIBILITYPARAMETER, name);
30 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, be_major, BL);
31 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, be_minor, BL);
32 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, eed1071, BL);
33 // AcDbBlockParameter
34 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, show_properties, B);
35 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, chain_actions, B);
36 // AcDbBlock1PtParameter
37 CHK_ENTITY_3RD (_obj, BLOCKVISIBILITYPARAMETER, def_pt);
38 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, num_propinfos, BL);
39 CHK_ENTITY_MAX (_obj, BLOCKVISIBILITYPARAMETER, num_propinfos, BL, 2);
40 BLOCKPARAMETER_PropInfo (prop1) BLOCKPARAMETER_PropInfo (prop2)
41 // AcDbBlockVisibilityParameter
42 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, is_initialized, B);
43 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, unknown_bool, B);
44 CHK_ENTITY_UTF8TEXT (_obj, BLOCKVISIBILITYPARAMETER, blockvisi_name);
45 CHK_ENTITY_UTF8TEXT (_obj, BLOCKVISIBILITYPARAMETER, blockvisi_desc);
46 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, num_blocks, BL);
47 CHK_ENTITY_HV (_obj, BLOCKVISIBILITYPARAMETER, blocks, num_blocks);
48 CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, num_states, BL);
49 if (!dwg_dynapi_entity_value (_obj, "BLOCKVISIBILITYPARAMETER", "states",
50 &states, NULL))
51 fail ("BLOCKVISIBILITYPARAMETER.states");
52 else
53 for (i = 0; i < num_states; i++)
54 {
55 CHK_SUBCLASS_UTF8TEXT (states[i], BLOCKVISIBILITYPARAMETER_state,
56 name);
57 CHK_SUBCLASS_TYPE (states[i], BLOCKVISIBILITYPARAMETER_state,
58 num_blocks, BL);
59 CHK_SUBCLASS_HV (states[i], BLOCKVISIBILITYPARAMETER_state, blocks,
60 states[i].num_blocks);
61 CHK_SUBCLASS_TYPE (states[i], BLOCKVISIBILITYPARAMETER_state,
62 num_params, BL);
63 CHK_SUBCLASS_HV (states[i], BLOCKVISIBILITYPARAMETER_state, params,
64 states[i].num_params);
65 }
66 // CHK_ENTITY_TYPE (_obj, BLOCKVISIBILITYPARAMETER, cur_state, B);
67 // CHK_ENTITY_UTF8TEXT (_obj, BLOCKVISIBILITYPARAMETER, cur_state_name);
68 }