(root)/
libredwg-0.13/
test/
unit-testing/
ltype.c
       1  #define DWG_TYPE DWG_TYPE_LTYPE
       2  #include "common.c"
       3  
       4  void
       5  api_process (dwg_object *obj)
       6  {
       7    int error, isnew;
       8    BITCODE_RC flag;
       9    BITCODE_T name;
      10    BITCODE_RSd used;
      11    BITCODE_B is_xref_ref;
      12    BITCODE_BS is_xref_resolved;
      13    BITCODE_B is_xref_dep;
      14    BITCODE_H xref;
      15  
      16    BITCODE_TV description;
      17    BITCODE_BD pattern_len;
      18    BITCODE_RC alignment;
      19    BITCODE_RC numdashes;
      20    Dwg_LTYPE_dash *dashes;
      21    BITCODE_RD dashes_r11[12];
      22    BITCODE_B has_strings_area; /* if some shape_flag & 4 (ODA bug) */
      23    BITCODE_TF strings_area;
      24  
      25    Dwg_Version_Type dwg_version = obj->parent->header.version;
      26    dwg_obj_ltype *ltype = dwg_object_to_LTYPE (obj);
      27  
      28    CHK_ENTITY_TYPE (ltype, LTYPE, flag, RC);
      29    CHK_ENTITY_UTF8TEXT (ltype, LTYPE, name);
      30    CHK_ENTITY_TYPE (ltype, LTYPE, used, RSd);
      31    CHK_ENTITY_TYPE (ltype, LTYPE, is_xref_ref, B);
      32    CHK_ENTITY_TYPE (ltype, LTYPE, is_xref_resolved, BS);
      33    CHK_ENTITY_TYPE (ltype, LTYPE, is_xref_dep, B);
      34    CHK_ENTITY_H (ltype, LTYPE, xref);
      35  
      36    CHK_ENTITY_UTF8TEXT (ltype, LTYPE, description);
      37    CHK_ENTITY_TYPE (ltype, LTYPE, pattern_len, BD);
      38    CHK_ENTITY_TYPE (ltype, LTYPE, alignment, RC);
      39    CHK_ENTITY_TYPE (ltype, LTYPE, numdashes, RCd);
      40    if (!dwg_dynapi_entity_value (ltype, "LTYPE", "dashes", &dashes, NULL))
      41      fail ("LTYPE.dashes");
      42    else
      43      {
      44        if (dwg_version <= R_13b1)
      45          {
      46            if (!dwg_dynapi_entity_value (ltype, "LTYPE", "dashes_r11",
      47                                          &dashes_r11, NULL))
      48              fail ("LTYPE.dashes_r11");
      49            numdashes = 12;
      50          }
      51        for (BITCODE_BL i = 0; i < numdashes; i++)
      52          {
      53            if (dwg_version <= R_13b1)
      54              {
      55                ok ("dashes_r11[%u]: %f", i, dashes_r11[i]);
      56              }
      57            else
      58              {
      59                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, length, BD);
      60                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, complex_shapecode, BS);
      61                CHK_SUBCLASS_H (dashes[i], LTYPE_dash, style);
      62                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, x_offset, RD);
      63                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, y_offset, RD);
      64                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, scale, BD);
      65                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, rotation, BD);
      66                CHK_SUBCLASS_TYPE (dashes[i], LTYPE_dash, shape_flag, BS);
      67              }
      68          }
      69      }
      70    if (dwg_version >= R_13b1)
      71      {
      72        CHK_ENTITY_TYPE (ltype, LTYPE, has_strings_area, B);
      73        CHK_ENTITY_TYPE (ltype, LTYPE, strings_area, TF);
      74      }
      75  }