1 // TODO ??
2 #define DWG_TYPE DWG_TYPE_PROXY_ENTITY
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_ent_proxy *_obj = dwg_object_to_PROXY_ENTITY (obj);
20 CHK_ENTITY_TYPE (_obj, PROXY_ENTITY, class_id, BL);
21 if (class_id != 498)
22 fail ("PROXY_ENTITY.class_id %d not 498", (int)class_id);
23 CHK_ENTITY_TYPE (_obj, PROXY_ENTITY, version, BL);
24 CHK_ENTITY_TYPE (_obj, PROXY_ENTITY, maint_version, BL);
25 CHK_ENTITY_TYPE (_obj, PROXY_ENTITY, from_dxf, B);
26 CHK_ENTITY_TYPE (_obj, PROXY_ENTITY, data_numbits, BL);
27 CHK_ENTITY_TYPE (_obj, PROXY_ENTITY, 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_ENTITY, num_objids, BL);
33 if (!dwg_dynapi_entity_value (_obj, "PROXY_ENTITY", "objids", &objids, NULL))
34 fail ("PROXY_ENTITY.objids");
35 for (i = 0; i < num_objids; i++)
36 {
37 if (_obj->objids[i] == objids[i])
38 ok ("PROXY_ENTITY.objids[%d]: " FORMAT_REF, i, ARGS_REF (objids[i]));
39 else
40 fail ("PROXY_ENTITY.objids[%d]: " FORMAT_REF, i, ARGS_REF (objids[i]));
41 }
42 }