(root)/
libredwg-0.13/
test/
unit-testing/
visualstyle.c
       1  #define DWG_TYPE DWG_TYPE_VISUALSTYLE
       2  #include "common.c"
       3  
       4  void
       5  api_process (dwg_object *obj)
       6  {
       7    int error, isnew;
       8    BITCODE_T description;
       9    BITCODE_BL style_type;
      10    BITCODE_BS ext_lighting_model;
      11    BITCODE_B internal_only;
      12    BITCODE_BL face_lighting_model;
      13    BITCODE_BL face_lighting_quality;
      14    BITCODE_BL face_color_mode;
      15    BITCODE_BD face_opacity;
      16    BITCODE_BD face_specular;
      17    BITCODE_BL face_modifier;
      18    BITCODE_CMC face_mono_color;
      19    BITCODE_BS edge_model;
      20    BITCODE_BL edge_style;
      21    BITCODE_CMC edge_intersection_color;
      22    BITCODE_CMC edge_obscured_color;
      23    BITCODE_BL edge_obscured_ltype;
      24    BITCODE_BL edge_intersection_ltype;
      25    BITCODE_BD edge_crease_angle;
      26    BITCODE_BL edge_modifier;
      27    BITCODE_CMC edge_color;
      28    BITCODE_BD edge_opacity;
      29    BITCODE_BL edge_width;
      30    BITCODE_BL edge_overhang;
      31    BITCODE_BL edge_jitter;
      32    BITCODE_CMC edge_silhouette_color;
      33    BITCODE_BL edge_silhouette_width;
      34    BITCODE_BL edge_halo_gap;
      35    BITCODE_BL edge_isolines;
      36    BITCODE_B edge_do_hide_precision;
      37    BITCODE_BL edge_style_apply;
      38    BITCODE_BL display_settings;
      39    BITCODE_BLd display_brightness_bl; /*!< DXF 44 <=r2007 */
      40    BITCODE_BD display_brightness;     /*!< DXF 44  r2010+ */
      41    BITCODE_BL display_shadow_type;
      42    BITCODE_BD bd2007_45;
      43  
      44    BITCODE_BS num_props; /*!< r2013+ version3 58x */
      45    BITCODE_B b_prop1c;
      46    BITCODE_B b_prop1d;
      47    BITCODE_B b_prop1e;
      48    BITCODE_B b_prop1f;
      49    BITCODE_B b_prop20;
      50    BITCODE_B b_prop21;
      51    BITCODE_B b_prop22;
      52    BITCODE_B b_prop23;
      53    BITCODE_B b_prop24;
      54    BITCODE_BL bl_prop25;
      55    BITCODE_BD bd_prop26;
      56    BITCODE_BD bd_prop27;
      57    BITCODE_BL bl_prop28;
      58    BITCODE_CMC c_prop29;
      59    BITCODE_BL bl_prop2a;
      60    BITCODE_BL bl_prop2b;
      61    BITCODE_CMC c_prop2c;
      62    BITCODE_B b_prop2d;
      63    BITCODE_BL bl_prop2e;
      64    BITCODE_BL bl_prop2f;
      65    BITCODE_BL bl_prop30;
      66    BITCODE_B b_prop31;
      67    BITCODE_BL bl_prop32;
      68    BITCODE_CMC c_prop33;
      69    BITCODE_BD bd_prop34;
      70    BITCODE_BL edge_wiggle;
      71    BITCODE_T strokes;
      72    BITCODE_B b_prop37;
      73    BITCODE_BD bd_prop38;
      74    BITCODE_BD bd_prop39;
      75  
      76    Dwg_Version_Type dwg_version = obj->parent->header.version;
      77    dwg_obj_visualstyle *vsty = dwg_object_to_VISUALSTYLE (obj);
      78  
      79    CHK_ENTITY_UTF8TEXT (vsty, VISUALSTYLE, description);
      80    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, style_type, BL);
      81    CHK_ENTITY_MAX (vsty, VISUALSTYLE, style_type, BL, 32);
      82    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, ext_lighting_model, BS);
      83    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, face_lighting_model, BL);
      84    CHK_ENTITY_MAX (vsty, VISUALSTYLE, face_lighting_model, BL, 3);
      85    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, face_lighting_quality, BL);
      86    CHK_ENTITY_MAX (vsty, VISUALSTYLE, face_lighting_quality, BL, 2);
      87    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, face_color_mode, BL);
      88    CHK_ENTITY_MAX (vsty, VISUALSTYLE, face_color_mode, BL, 6);
      89    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, face_opacity, BD);
      90    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, face_specular, BD);
      91    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, face_modifier, BL);
      92    CHK_ENTITY_MAX (vsty, VISUALSTYLE, face_modifier, BL, 2);
      93    // CHK_ENTITY_CMC (vsty, VISUALSTYLE, color);
      94    CHK_ENTITY_CMC (vsty, VISUALSTYLE, face_mono_color);
      95    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_model, BL);
      96    CHK_ENTITY_MAX (vsty, VISUALSTYLE, edge_model, BL, 2);
      97    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_style, BL);
      98    CHK_ENTITY_CMC (vsty, VISUALSTYLE, edge_intersection_color);
      99    CHK_ENTITY_CMC (vsty, VISUALSTYLE, edge_obscured_color);
     100    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_obscured_ltype, BL);
     101    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_crease_angle, BD);
     102    CHK_ENTITY_MAX (vsty, VISUALSTYLE, edge_crease_angle, BD, 360.0);
     103    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_modifier, BL);
     104    CHK_ENTITY_CMC (vsty, VISUALSTYLE, edge_color);
     105    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_opacity, BD);
     106    PRE (R_2010)
     107    {
     108      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_width, BS, BL);
     109      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_overhang, BS, BL);
     110      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_silhouette_width, BS, BL);
     111      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_halo_gap, RC, BL);
     112      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_isolines, BS, BL);
     113      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_style_apply, BS, BL);
     114      CHK_ENTITY_TYPE_CAST (vsty, VISUALSTYLE, edge_intersection_ltype, BS, BL);
     115    }
     116    LATER_VERSIONS
     117    {
     118      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_width, BL);
     119      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_overhang, BL);
     120      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_silhouette_width, BL);
     121      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_halo_gap, BL);
     122      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_isolines, BL);
     123      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_style_apply, BL);
     124      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_intersection_ltype, BL);
     125    }
     126    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_jitter, BL);
     127    CHK_ENTITY_CMC (vsty, VISUALSTYLE, edge_silhouette_color);
     128    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_do_hide_precision, B);
     129    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, display_settings, BL);
     130    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, display_brightness_bl, BLd);
     131    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, display_brightness, BD);
     132    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, display_shadow_type, BL);
     133    CHK_ENTITY_TYPE (vsty, VISUALSTYLE, internal_only, B);
     134    VERSION (R_2007)
     135    {
     136      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bd2007_45, BD);
     137    }
     138    SINCE (R_2013)
     139    {
     140      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, num_props, BS);
     141      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop1c, B);
     142      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop1d, B);
     143      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop1e, B);
     144      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop1f, B);
     145      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop20, B);
     146      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop21, B);
     147      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop22, B);
     148      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop23, B);
     149      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop24, B);
     150      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop25, BL);
     151      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bd_prop26, BD);
     152      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bd_prop27, BD);
     153      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop28, BL);
     154      CHK_ENTITY_CMC (vsty, VISUALSTYLE, c_prop29);
     155      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop2a, BL);
     156      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop2b, BL);
     157      CHK_ENTITY_CMC (vsty, VISUALSTYLE, c_prop2c);
     158      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop2d, B);
     159      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop2e, BL);
     160      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop2f, BL);
     161      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop30, BL);
     162      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop31, B);
     163      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bl_prop32, BL);
     164      CHK_ENTITY_CMC (vsty, VISUALSTYLE, c_prop33);
     165      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bd_prop34, BD);
     166      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, edge_wiggle, BL);
     167      CHK_ENTITY_UTF8TEXT (vsty, VISUALSTYLE, strokes);
     168      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, b_prop37, B);
     169      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bd_prop38, BD);
     170      CHK_ENTITY_TYPE (vsty, VISUALSTYLE, bd_prop39, BD);
     171    }
     172  }