1 #define DWG_TYPE DWG_TYPE_LAYOUT
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error, isnew;
8 Dwg_Object_PLOTSETTINGS plotsettings;
9 BITCODE_TV layout_name;
10 BITCODE_BS tab_order;
11 BITCODE_BS layout_flags;
12 BITCODE_3DPOINT INSBASE;
13 BITCODE_2DPOINT LIMMIN;
14 BITCODE_2DPOINT LIMMAX;
15 BITCODE_3DPOINT UCSORG;
16 BITCODE_3DPOINT UCSXDIR;
17 BITCODE_3DPOINT UCSYDIR;
18 BITCODE_BD ucs_elevation;
19 BITCODE_BS UCSORTHOVIEW;
20 BITCODE_3DPOINT EXTMIN;
21 BITCODE_3DPOINT EXTMAX;
22 BITCODE_H block_header;
23 BITCODE_H active_viewport;
24 BITCODE_H base_ucs;
25 BITCODE_H named_ucs;
26 BITCODE_BL num_viewports;
27 BITCODE_H *viewports;
28
29 Dwg_Version_Type dwg_version = obj->parent->header.version;
30 dwg_obj_layout *layout = dwg_object_to_LAYOUT (obj);
31 memset (&plotsettings, 0, sizeof (Dwg_Object_PLOTSETTINGS));
32
33 CHK_SUBCLASS_UTF8TEXT (layout->plotsettings, PLOTSETTINGS, printer_cfg_file);
34 CHK_SUBCLASS_UTF8TEXT (layout->plotsettings, PLOTSETTINGS, paper_size);
35 CHK_SUBCLASS_UTF8TEXT (layout->plotsettings, PLOTSETTINGS,
36 canonical_media_name);
37 CHK_SUBCLASS_UTF8TEXT (layout->plotsettings, PLOTSETTINGS, stylesheet);
38 CHK_SUBCLASS_UTF8TEXT (layout->plotsettings, PLOTSETTINGS, plotview_name);
39 CHK_SUBCLASS_H (layout->plotsettings, PLOTSETTINGS, plotview);
40 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, plot_flags, BSx);
41 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, left_margin, BD);
42 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, bottom_margin, BD);
43 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, right_margin, BD);
44 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, top_margin, BD);
45 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, paper_width, BD);
46 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, paper_height, BD);
47 CHK_SUBCLASS_2RD (layout->plotsettings, PLOTSETTINGS, plot_origin);
48 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, plot_paper_unit, BS);
49 CHK_SUBCLASS_MAX (layout->plotsettings, PLOTSETTINGS, plot_paper_unit, BS,
50 2);
51 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, plot_rotation_mode,
52 BS);
53 CHK_SUBCLASS_MAX (layout->plotsettings, PLOTSETTINGS, plot_rotation_mode, BS,
54 3);
55 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, plot_type, BS);
56 CHK_SUBCLASS_MAX (layout->plotsettings, PLOTSETTINGS, plot_type, BS, 5);
57 CHK_SUBCLASS_2RD (layout->plotsettings, PLOTSETTINGS, plot_window_ll);
58 CHK_SUBCLASS_2RD (layout->plotsettings, PLOTSETTINGS, plot_window_ur);
59 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, paper_units, BD);
60 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, drawing_units, BD);
61 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, std_scale_type, BS);
62 CHK_SUBCLASS_MAX (layout->plotsettings, PLOTSETTINGS, std_scale_type, BS,
63 32);
64 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, std_scale_factor, BD);
65 CHK_SUBCLASS_2RD (layout->plotsettings, PLOTSETTINGS, paper_image_origin);
66 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, shadeplot_type, BS);
67 CHK_SUBCLASS_MAX (layout->plotsettings, PLOTSETTINGS, shadeplot_type, BS, 5);
68 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, shadeplot_reslevel,
69 BS);
70 CHK_SUBCLASS_MAX (layout->plotsettings, PLOTSETTINGS, shadeplot_reslevel, BS,
71 5);
72 CHK_SUBCLASS_TYPE (layout->plotsettings, PLOTSETTINGS, shadeplot_customdpi,
73 BS);
74 CHK_SUBCLASS_H (layout->plotsettings, PLOTSETTINGS, shadeplot);
75
76 CHK_ENTITY_UTF8TEXT (layout, LAYOUT, layout_name);
77 CHK_ENTITY_TYPE (layout, LAYOUT, tab_order, BS);
78 CHK_ENTITY_TYPE (layout, LAYOUT, layout_flags, BSx);
79 CHK_ENTITY_3RD (layout, LAYOUT, INSBASE);
80 CHK_ENTITY_2RD (layout, LAYOUT, LIMMIN);
81 CHK_ENTITY_2RD (layout, LAYOUT, LIMMAX);
82 CHK_ENTITY_3RD (layout, LAYOUT, UCSORG);
83 CHK_ENTITY_3RD (layout, LAYOUT, UCSXDIR);
84 CHK_ENTITY_3RD (layout, LAYOUT, UCSYDIR);
85 CHK_ENTITY_TYPE (layout, LAYOUT, ucs_elevation, BD);
86 CHK_ENTITY_TYPE (layout, LAYOUT, UCSORTHOVIEW, BS);
87 CHK_ENTITY_MAX (layout, LAYOUT, UCSORTHOVIEW, BS, 6);
88 CHK_ENTITY_3RD (layout, LAYOUT, EXTMIN);
89 CHK_ENTITY_3RD (layout, LAYOUT, EXTMAX);
90
91 CHK_ENTITY_H (layout, LAYOUT, block_header);
92 CHK_ENTITY_H (layout, LAYOUT, active_viewport);
93 CHK_ENTITY_H (layout, LAYOUT, base_ucs);
94 CHK_ENTITY_H (layout, LAYOUT, named_ucs);
95 CHK_ENTITY_TYPE (layout, LAYOUT, num_viewports, BL);
96 CHK_ENTITY_HV (layout, LAYOUT, viewports, num_viewports);
97 }