1 #define DWG_TYPE DWG_TYPE_TABLEGEOMETRY
2 #include "common.c"
3
4 void
5 api_process (dwg_object *obj)
6 {
7 int error;
8 BITCODE_BL numrows;
9 BITCODE_BL numcols;
10 BITCODE_BL num_cells; /* = numrows * numcols */
11 Dwg_TABLEGEOMETRY_Cell *cells;
12 Dwg_CellContentGeometry *geometry;
13
14 Dwg_Version_Type dwg_version = obj->parent->header.version;
15 dwg_obj_tablegeometry *_obj = dwg_object_to_TABLEGEOMETRY (obj);
16
17 CHK_ENTITY_TYPE (_obj, TABLEGEOMETRY, numrows, BL);
18 CHK_ENTITY_TYPE (_obj, TABLEGEOMETRY, numcols, BL);
19 CHK_ENTITY_TYPE (_obj, TABLEGEOMETRY, num_cells, BL);
20 if (!dwg_dynapi_entity_value (_obj, "TABLEGEOMETRY", "cells", &cells, NULL))
21 fail ("TABLEGEOMETRY.cells");
22 else
23 for (BITCODE_BL i = 0; i < num_cells; i++)
24 {
25 CHK_SUBCLASS_TYPE (cells[i], TABLEGEOMETRY_Cell, geom_data_flag, BL);
26 CHK_SUBCLASS_TYPE (cells[i], TABLEGEOMETRY_Cell, width_w_gap, BD);
27 CHK_SUBCLASS_TYPE (cells[i], TABLEGEOMETRY_Cell, height_w_gap, BD);
28 CHK_SUBCLASS_H (cells[i], TABLEGEOMETRY_Cell, tablegeometry);
29 CHK_SUBCLASS_TYPE (cells[i], TABLEGEOMETRY_Cell, num_geometry, BL);
30 if (!dwg_dynapi_subclass_value (&cells[i], "TABLEGEOMETRY_Cell",
31 "geometry", &geometry, NULL))
32 fail ("TABLEGEOMETRY.cells.geometry");
33 else
34 for (BITCODE_BL j = 0; j < cells[i].num_geometry; j++)
35 {
36 CHK_SUBCLASS_3RD (geometry[j], CellContentGeometry,
37 dist_top_left);
38 CHK_SUBCLASS_3RD (geometry[j], CellContentGeometry, dist_center);
39 CHK_SUBCLASS_TYPE (geometry[j], CellContentGeometry,
40 content_width, BD);
41 CHK_SUBCLASS_TYPE (geometry[j], CellContentGeometry,
42 content_height, BD);
43 CHK_SUBCLASS_TYPE (geometry[j], CellContentGeometry, width, BD);
44 CHK_SUBCLASS_TYPE (geometry[j], CellContentGeometry, height, BD);
45 CHK_SUBCLASS_TYPE (geometry[j], CellContentGeometry, unknown,
46 BL);
47 }
48 }
49 }