(root)/
libredwg-0.13/
test/
unit-testing/
spatial_filter.c
       1  #define DWG_TYPE DWG_TYPE_SPATIAL_FILTER
       2  #include "common.c"
       3  
       4  void
       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",
      24                                  &clip_verts, NULL))
      25      fail ("SPATIAL_FILTER.clip_verts");
      26    for (i = 0; i < num_clip_verts; i++)
      27      {
      28        ok ("SPATIAL_FILTER.clip_verts[%d]: (%f, %f)", i, clip_verts[i].x,
      29            clip_verts[i].y);
      30      }
      31    CHK_ENTITY_3RD (_obj, SPATIAL_FILTER, extrusion);
      32    CHK_ENTITY_3RD (_obj, SPATIAL_FILTER, origin);
      33    CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, display_boundary_on, BS);
      34    CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, front_clip_on, BS);
      35    if (front_clip_on)
      36      {
      37        CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, front_clip_z, BD);
      38      }
      39    CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, back_clip_on, BS);
      40    if (back_clip_on)
      41      {
      42        CHK_ENTITY_TYPE (_obj, SPATIAL_FILTER, back_clip_z, BD);
      43      }
      44    if (!dwg_dynapi_entity_value (_obj, "SPATIAL_FILTER", "inverse_transform",
      45                                  &inverse_transform, NULL))
      46      fail ("SPATIAL_FILTER.inverse_transform");
      47    else
      48      for (i = 0; i < 12; i += 4)
      49        {
      50          ok ("SPATIAL_FILTER.inverse_transform[%d]: (%f, %f, %f, %f)", i,
      51              inverse_transform[i], inverse_transform[i + 1],
      52              inverse_transform[i + 2], inverse_transform[i + 3]);
      53        }
      54    if (!dwg_dynapi_entity_value (_obj, "SPATIAL_FILTER", "transform",
      55                                  &transform, NULL))
      56      fail ("SPATIAL_FILTER.transform");
      57    else
      58      for (i = 0; i < 12; i += 4)
      59        {
      60          ok ("SPATIAL_FILTER.transform[%d]: (%f, %f, %f, %f)", i, transform[i],
      61              transform[i + 1], transform[i + 2], transform[i + 3]);
      62        }
      63  }