(root)/
libredwg-0.13/
test/
unit-testing/
attdef.c
       1  #define DWG_TYPE DWG_TYPE_ATTDEF
       2  #include "common.c"
       3  
       4  void
       5  api_process (dwg_object *obj)
       6  {
       7    int error = 0;
       8    double elevation, thickness, rotation, height, oblique_angle, width_factor;
       9    BITCODE_BS generation, vert_alignment, horiz_alignment, field_length,
      10        annotative_data_size, annotative_short;
      11    BITCODE_RC dataflags, flags, type, class_version, attdef_class_version,
      12        annotative_data_bytes;
      13    BITCODE_B lock_position_flag;
      14    char *tag, *default_value, *prompt;
      15    dwg_point_3d extrusion, pt3d;
      16    dwg_point_2d ins_pt, alignment_pt, pt2d;
      17    BITCODE_H style, annotative_app;
      18    BITCODE_H mtext_style;
      19    Dwg_Version_Type version = obj->parent->header.version;
      20    int isnew;
      21  
      22    dwg_ent_attdef *attdef = dwg_object_to_ATTDEF (obj);
      23  
      24    CHK_ENTITY_UTF8TEXT_W_OLD (attdef, ATTDEF, default_value);
      25    CHK_ENTITY_UTF8TEXT (attdef, ATTDEF, tag);
      26    CHK_ENTITY_UTF8TEXT (attdef, ATTDEF, prompt);
      27  
      28    CHK_ENTITY_2RD (attdef, ATTDEF, ins_pt);
      29    CHK_ENTITY_2RD (attdef, ATTDEF, alignment_pt);
      30    CHK_ENTITY_3RD_W_OLD (attdef, ATTDEF, extrusion);
      31    CHK_ENTITY_TYPE (attdef, ATTDEF, elevation, BD);
      32    CHK_ENTITY_TYPE (attdef, ATTDEF, dataflags, RC);
      33    CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, height, RD);
      34    CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, thickness, RD);
      35    CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, rotation, RD);
      36    CHK_ENTITY_MAX (attdef, ATTDEF, rotation, RD, MAX_ANGLE);
      37    CHK_ENTITY_TYPE (attdef, ATTDEF, oblique_angle, RD);
      38    CHK_ENTITY_MAX (attdef, ATTDEF, oblique_angle, RD, MAX_ANGLE);
      39    CHK_ENTITY_TYPE (attdef, ATTDEF, width_factor, RD);
      40    CHK_ENTITY_TYPE (attdef, ATTDEF, generation, BS);
      41  
      42    CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, vert_alignment, BS);
      43    CHK_ENTITY_TYPE_W_OLD (attdef, ATTDEF, horiz_alignment, BS);
      44    CHK_ENTITY_TYPE (attdef, ATTDEF, field_length, BS);
      45    CHK_ENTITY_TYPE (attdef, ATTDEF, flags, RC);
      46    CHK_ENTITY_H (attdef, ATTDEF, style);
      47    if (version >= R_2010)
      48      {
      49        CHK_ENTITY_TYPE (attdef, ATTDEF, class_version, RC);
      50        CHK_ENTITY_TYPE (attdef, ATTDEF, attdef_class_version, RC);
      51      }
      52    if (version >= R_2018)
      53      {
      54        CHK_ENTITY_TYPE (attdef, ATTDEF, type, RC);
      55        CHK_ENTITY_H (attdef, ATTDEF, mtext_style);
      56        CHK_ENTITY_TYPE (attdef, ATTDEF, annotative_data_size, BS);
      57        CHK_ENTITY_TYPE (attdef, ATTDEF, annotative_data_bytes, RC);
      58        CHK_ENTITY_H (attdef, ATTDEF, annotative_app);
      59        CHK_ENTITY_TYPE (attdef, ATTDEF, annotative_short, BS);
      60      }
      61    if (version >= R_2007)
      62      {
      63        CHK_ENTITY_TYPE (attdef, ATTDEF, lock_position_flag, B);
      64      }
      65  }