(root)/
libredwg-0.13/
test/
unit-testing/
proxy_entity.c
       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  }