1 #define DWG_TYPE DWG_TYPE_VPORT
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_BD VIEWSIZE; // really the view height
17 BITCODE_BD view_width; // in DWG r13+, needed to calc. aspect_ratio
18 BITCODE_BD aspect_ratio; // DXF 41 = view_width / VIEWSIZE
19 BITCODE_2RD VIEWCTR;
20 BITCODE_3BD view_target;
21 BITCODE_3BD VIEWDIR;
22 BITCODE_BD view_twist;
23 BITCODE_BD lens_length;
24 BITCODE_BD front_clip_z;
25 BITCODE_BD back_clip_z;
26 BITCODE_4BITS VIEWMODE;
27 BITCODE_RC render_mode;
28 BITCODE_B use_default_lights;
29 BITCODE_RC default_lightning_type;
30 BITCODE_BD brightness;
31 BITCODE_BD contrast;
32 BITCODE_CMC ambient_color;
33 BITCODE_H background;
34 BITCODE_H visualstyle;
35 BITCODE_H sun;
36
37 BITCODE_2RD lower_left;
38 BITCODE_2RD upper_right;
39 BITCODE_B UCSFOLLOW;
40 BITCODE_BS circle_zoom; /* circle sides: nr of tesselations */
41 BITCODE_B FASTZOOM;
42 BITCODE_RC UCSICON;
43 BITCODE_B GRIDMODE;
44 BITCODE_2RD GRIDUNIT;
45 BITCODE_B SNAPMODE;
46 BITCODE_B SNAPSTYLE;
47 BITCODE_BS SNAPISOPAIR;
48 BITCODE_BD SNAPANG;
49 BITCODE_2RD SNAPBASE;
50 BITCODE_2RD SNAPUNIT;
51 BITCODE_B ucs_at_origin;
52 BITCODE_B UCSVP;
53 BITCODE_3BD ucsorg;
54 BITCODE_3BD ucsxdir;
55 BITCODE_3BD ucsydir;
56 BITCODE_BD ucs_elevation;
57 BITCODE_BS UCSORTHOVIEW;
58 BITCODE_BS grid_flags;
59 BITCODE_BS grid_major;
60 BITCODE_H named_ucs;
61 BITCODE_H base_ucs;
62
63 Dwg_Version_Type dwg_version = obj->parent->header.version;
64 dwg_obj_vport *_obj = dwg_object_to_VPORT (obj);
65
66 CHK_ENTITY_TYPE (_obj, VPORT, flag, RC);
67 CHK_ENTITY_UTF8TEXT (_obj, VPORT, name);
68 CHK_ENTITY_TYPE (_obj, VPORT, used, RSd);
69 CHK_ENTITY_TYPE (_obj, VPORT, is_xref_ref, B);
70 CHK_ENTITY_TYPE (_obj, VPORT, is_xref_resolved, BS);
71 CHK_ENTITY_TYPE (_obj, VPORT, is_xref_dep, B);
72 CHK_ENTITY_H (_obj, VPORT, xref);
73
74 CHK_ENTITY_TYPE (_obj, VPORT, VIEWSIZE, BD); // really the view height
75 CHK_ENTITY_TYPE (_obj, VPORT, view_width,
76 BD); // in DWG r13+, needed to calc. aspect_ratio
77 CHK_ENTITY_TYPE (_obj, VPORT, aspect_ratio,
78 BD); // DXF 41 = view_width / VIEWSIZE
79 CHK_ENTITY_2RD (_obj, VPORT, VIEWCTR);
80 CHK_ENTITY_3RD (_obj, VPORT, view_target);
81 CHK_ENTITY_3RD (_obj, VPORT, VIEWDIR);
82 CHK_ENTITY_TYPE (_obj, VPORT, view_twist, BD);
83 CHK_ENTITY_TYPE (_obj, VPORT, lens_length, BD);
84 CHK_ENTITY_TYPE (_obj, VPORT, front_clip_z, BD);
85 CHK_ENTITY_TYPE (_obj, VPORT, back_clip_z, BD);
86 CHK_ENTITY_TYPE (_obj, VPORT, VIEWMODE, 4BITS);
87 CHK_ENTITY_TYPE (_obj, VPORT, render_mode, RC);
88 CHK_ENTITY_TYPE (_obj, VPORT, use_default_lights, B);
89 CHK_ENTITY_TYPE (_obj, VPORT, default_lightning_type, RC);
90 CHK_ENTITY_TYPE (_obj, VPORT, brightness, BD);
91 CHK_ENTITY_TYPE (_obj, VPORT, contrast, BD);
92 CHK_ENTITY_CMC (_obj, VPORT, ambient_color);
93 CHK_ENTITY_H (_obj, VPORT, background);
94 CHK_ENTITY_H (_obj, VPORT, visualstyle);
95 CHK_ENTITY_H (_obj, VPORT, sun);
96
97 CHK_ENTITY_2RD (_obj, VPORT, lower_left);
98 CHK_ENTITY_2RD (_obj, VPORT, upper_right);
99 CHK_ENTITY_TYPE (_obj, VPORT, UCSFOLLOW, B);
100 CHK_ENTITY_TYPE (_obj, VPORT, circle_zoom,
101 BS); /* circle sides: nr of tesselations */
102 CHK_ENTITY_TYPE (_obj, VPORT, FASTZOOM, B);
103 CHK_ENTITY_TYPE (_obj, VPORT, UCSICON, RC);
104 CHK_ENTITY_TYPE (_obj, VPORT, GRIDMODE, B);
105 CHK_ENTITY_2RD (_obj, VPORT, GRIDUNIT);
106 CHK_ENTITY_TYPE (_obj, VPORT, SNAPMODE, B);
107 CHK_ENTITY_TYPE (_obj, VPORT, SNAPSTYLE, B);
108 CHK_ENTITY_TYPE (_obj, VPORT, SNAPISOPAIR, BS);
109 CHK_ENTITY_TYPE (_obj, VPORT, SNAPANG, BD);
110 CHK_ENTITY_2RD (_obj, VPORT, SNAPBASE);
111 CHK_ENTITY_2RD (_obj, VPORT, SNAPUNIT);
112 CHK_ENTITY_TYPE (_obj, VPORT, ucs_at_origin, B);
113 CHK_ENTITY_TYPE (_obj, VPORT, UCSVP, B);
114 CHK_ENTITY_3RD (_obj, VPORT, ucsorg);
115 CHK_ENTITY_3RD (_obj, VPORT, ucsxdir);
116 CHK_ENTITY_3RD (_obj, VPORT, ucsydir);
117 CHK_ENTITY_TYPE (_obj, VPORT, ucs_elevation, BD);
118 CHK_ENTITY_TYPE (_obj, VPORT, UCSORTHOVIEW, BS);
119 CHK_ENTITY_TYPE (_obj, VPORT, grid_flags, BS);
120 CHK_ENTITY_TYPE (_obj, VPORT, grid_major, BS);
121 CHK_ENTITY_H (_obj, VPORT, named_ucs);
122 CHK_ENTITY_H (_obj, VPORT, base_ucs);
123 }