1 // TODO coverage
2 #define DWG_TYPE DWG_TYPE_POINTCLOUDEX
3 #include "common.c"
4
5 void
6 api_process (dwg_object *obj)
7 {
8 int error, isnew;
9 BITCODE_BL i;
10 BITCODE_BS class_version;
11 BITCODE_3BD extents_min;
12 BITCODE_3BD extents_max;
13 BITCODE_3BD ucs_origin;
14 BITCODE_3BD ucs_x_dir;
15 BITCODE_3BD ucs_y_dir;
16 BITCODE_3BD ucs_z_dir;
17 BITCODE_B is_locked;
18 BITCODE_H pointclouddefex;
19 BITCODE_H reactor;
20 BITCODE_T name;
21 BITCODE_B show_intensity;
22
23 BITCODE_BS stylization_type;
24 BITCODE_T intensity_colorscheme;
25 BITCODE_T cur_colorscheme;
26 BITCODE_T classification_colorscheme;
27 BITCODE_BD elevation_min;
28 BITCODE_BD elevation_max;
29 BITCODE_BL intensity_min;
30 BITCODE_BL intensity_max;
31 BITCODE_BS intensity_out_of_range_behavior;
32 BITCODE_BS elevation_out_of_range_behavior;
33 BITCODE_B elevation_apply_to_fixed_range;
34 BITCODE_B intensity_as_gradient;
35 BITCODE_B elevation_as_gradient;
36 BITCODE_B show_cropping;
37 BITCODE_BL unknown_bl0;
38 BITCODE_BL unknown_bl1;
39 BITCODE_BL num_croppings;
40 Dwg_POINTCLOUDEX_Croppings *croppings;
41 BITCODE_3BD *vertices;
42
43 Dwg_Version_Type dwg_version = obj->parent->header.version;
44 // #ifdef DEBUG_CLASSES
45 dwg_ent_pointcloudex *_obj = dwg_object_to_POINTCLOUDEX (obj);
46
47 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, class_version, BS);
48 CHK_ENTITY_MAX (_obj, POINTCLOUDEX, class_version, BS, 2);
49 CHK_ENTITY_3RD (_obj, POINTCLOUDEX, extents_min);
50 CHK_ENTITY_3RD (_obj, POINTCLOUDEX, extents_max);
51 CHK_ENTITY_3RD (_obj, POINTCLOUDEX, ucs_origin);
52 CHK_ENTITY_3RD (_obj, POINTCLOUDEX, ucs_x_dir);
53 CHK_ENTITY_3RD (_obj, POINTCLOUDEX, ucs_y_dir);
54 CHK_ENTITY_3RD (_obj, POINTCLOUDEX, ucs_z_dir);
55 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, is_locked, B);
56 CHK_ENTITY_H (_obj, POINTCLOUDEX, pointclouddefex);
57 CHK_ENTITY_H (_obj, POINTCLOUDEX, reactor);
58 CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDEX, name);
59 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, show_intensity, B);
60
61 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, stylization_type, BS);
62 CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDEX, intensity_colorscheme);
63 CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDEX, cur_colorscheme);
64 CHK_ENTITY_UTF8TEXT (_obj, POINTCLOUDEX, classification_colorscheme);
65 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, elevation_min, BD);
66 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, elevation_max, BD);
67 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, intensity_min, BL);
68 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, intensity_max, BL);
69 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, intensity_out_of_range_behavior, BS);
70 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, elevation_out_of_range_behavior, BS);
71 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, elevation_apply_to_fixed_range, B);
72 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, intensity_as_gradient, B);
73 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, elevation_as_gradient, B);
74 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, show_cropping, B);
75 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, unknown_bl0, BL);
76 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, unknown_bl1, BL);
77 CHK_ENTITY_TYPE (_obj, POINTCLOUDEX, num_croppings, BL);
78 if (!dwg_dynapi_entity_value (_obj, "POINTCLOUDEX", "croppings", &croppings,
79 NULL))
80 fail ("POINTCLOUDEX.croppings");
81 else
82 for (i = 0; i < num_croppings; i++)
83 {
84 CHK_SUBCLASS_TYPE (croppings[i], POINTCLOUDEX_Croppings, type, BS);
85 CHK_SUBCLASS_TYPE (croppings[i], POINTCLOUDEX_Croppings, is_inside, B);
86 CHK_SUBCLASS_TYPE (croppings[i], POINTCLOUDEX_Croppings, is_inverted,
87 B);
88 CHK_SUBCLASS_3RD (croppings[i], POINTCLOUDEX_Croppings, crop_plane);
89 CHK_SUBCLASS_3RD (croppings[i], POINTCLOUDEX_Croppings, crop_x_dir);
90 CHK_SUBCLASS_3RD (croppings[i], POINTCLOUDEX_Croppings, crop_y_dir);
91 CHK_SUBCLASS_TYPE (croppings[i], POINTCLOUDEX_Croppings, num_pts, BL);
92 CHK_SUBCLASS_3DPOINTS (croppings[i], POINTCLOUDEX_Croppings, pts,
93 croppings[i].num_pts);
94 }
95 // #endif
96 }