1 // TODO DEBUGGING
2 #define DWG_TYPE DWG_TYPE_PROXY_OBJECT
3 #include "common.c"
4
5 void
6 api_process (dwg_object *obj)
7 {
8 int error;
9 BITCODE_BL class_id;
10 BITCODE_BL version;
11 BITCODE_BL maint_version;
12 BITCODE_B from_dxf;
13 BITCODE_BL data_numbits;
14 BITCODE_BL data_size;
15 BITCODE_RC *data;
16 BITCODE_BL i, num_objids;
17 BITCODE_H *objids;
18
19 dwg_obj_proxy *_obj = dwg_object_to_PROXY_OBJECT (obj);
20 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, class_id, BL);
21 if (class_id != 499)
22 fail ("PROXY_OBJECT.class_id %d not 499", (int)class_id);
23 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, version, BL);
24 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, maint_version, BL);
25 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, from_dxf, B);
26 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, data_numbits, BL);
27 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, data_size, BL);
28 if (data_size * 8 < data_numbits || data_size > obj->size)
29 fail ("Invalid PROXY_ENTITY.data_size %u * 8 < %u data_numbits",
30 (unsigned)data_size, (unsigned)data_numbits);
31 // BITCODE_RC *data;
32 CHK_ENTITY_TYPE (_obj, PROXY_OBJECT, num_objids, BL);
33 if (!dwg_dynapi_entity_value (_obj, "PROXY_OBJECT", "objids", &objids, NULL))
34 fail ("PROXY_OBJECT.objids");
35 for (i = 0; i < num_objids; i++)
36 {
37 if (!objids[i]) // can be NULL
38 {
39 if (!_obj->objids[i])
40 ok ("PROXY_OBJECT.objids[%d]: NULL", i);
41 else
42 fail ("PROXY_OBJECT.objids[%d]: NULL", i);
43 }
44 else
45 {
46 if (_obj->objids[i] == objids[i])
47 ok ("PROXY_OBJECT.objids[%d]: " FORMAT_REF, i,
48 ARGS_REF (objids[i]));
49 else
50 fail ("PROXY_OBJECT.objids[%d]: " FORMAT_REF, i,
51 ARGS_REF (objids[i]));
52 }
53 }
54 }