1 #define DWG_TYPE DWG_TYPE_SPATIAL_FILTER
2 #include "common.c"
3
4 void
api_process(dwg_object * obj)5 api_process (dwg_object *obj)
6 {
7 int error;
8 BITCODE_BS i, num_clip_verts;
9 BITCODE_2RD* clip_verts;
10 BITCODE_BE extrusion;
11 BITCODE_3BD origin;
12 BITCODE_BS display_boundary_on;
13 BITCODE_BS front_clip_on;
14 BITCODE_BD front_clip_z;
15 BITCODE_BS back_clip_on;
16 BITCODE_BD back_clip_z;
17 BITCODE_BD* inverse_transform;
18 BITCODE_BD* transform;
19
20 dwg_obj_spatial_filter *_obj = dwg_object_to_SPATIAL_FILTER (obj);
21
22 CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, num_clip_verts, BS);
23 if (!dwg_dynapi_entity_value (_obj, "SPATIAL_FILTER", "clip_verts", &clip_verts, NULL))
24 fail ("SPATIAL_FILTER.clip_verts");
25 for (i = 0; i < num_clip_verts; i++)
26 {
27 ok ("SPATIAL_FILTER.clip_verts[%d]: (%f, %f)", i, clip_verts[i].x, clip_verts[i].y);
28 }
29 CHK_ENTITY_3RD (_obj, SPATIAL_FILTER, extrusion);
30 CHK_ENTITY_3RD (_obj, SPATIAL_FILTER, origin);
31 CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, display_boundary_on, BS);
32 CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, front_clip_on, BS);
33 if (front_clip_on)
34 {
35 CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, front_clip_z, BD);
36 }
37 CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, back_clip_on, BS);
38 if (back_clip_on)
39 {
40 CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, back_clip_z, BD);
41 }
42 if (!dwg_dynapi_entity_value (_obj, "SPATIAL_FILTER",
43 "inverse_transform",
44 &inverse_transform, NULL))
45 fail ("SPATIAL_FILTER.inverse_transform");
46 else
47 for (i = 0; i < 12; i += 4)
48 {
49 ok ("SPATIAL_FILTER.inverse_transform[%d]: (%f, %f, %f, %f)", i,
50 inverse_transform[i], inverse_transform[i + 1],
51 inverse_transform[i + 2], inverse_transform[i + 3]);
52 }
53 if (!dwg_dynapi_entity_value (_obj, "SPATIAL_FILTER", "transform",
54 &transform, NULL))
55 fail ("SPATIAL_FILTER.transform");
56 else
57 for (i = 0; i < 12; i += 4)
58 {
59 ok ("SPATIAL_FILTER.transform[%d]: (%f, %f, %f, %f)", i, transform[i],
60 transform[i + 1], transform[i + 2], transform[i + 3]);
61 }
62 }
63