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 }