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