(root)/
libredwg-0.13/
test/
unit-testing/
sweptsurface.c
       1  // TODO DEBUGGING
       2  #define DWG_TYPE DWG_TYPE_SWEPTSURFACE
       3  #include "common.c"
       4  
       5  void
       6  api_process (dwg_object *obj)
       7  {
       8    int error, isnew;
       9    _3DSOLID_FIELDS;
      10  
      11    BITCODE_BS modeler_format_version;
      12    BITCODE_BS u_isolines;
      13    BITCODE_BS v_isolines;
      14    BITCODE_BL i, class_version;
      15  
      16    BITCODE_BL sweep_entity_id;
      17    BITCODE_BL sweepdata_size;
      18    BITCODE_TF sweepdata;
      19    BITCODE_BL path_entity_id;
      20    BITCODE_BL pathdata_size;
      21    BITCODE_TF pathdata;
      22    BITCODE_BD *sweep_entity_transmatrix;
      23    BITCODE_BD *path_entity_transmatrix;
      24  
      25    BITCODE_BD draft_angle;
      26    BITCODE_BD draft_start_distance;
      27    BITCODE_BD draft_end_distance;
      28    BITCODE_BD twist_angle;
      29    BITCODE_BD *sweep_entity_transmatrix1;
      30    BITCODE_BD *path_entity_transmatrix1;
      31    BITCODE_BD scale_factor;
      32    BITCODE_BD align_angle;
      33    BITCODE_B is_solid;
      34    BITCODE_BS sweep_alignment_flags;
      35    BITCODE_BS path_flags;
      36    BITCODE_B align_start;
      37    BITCODE_B bank;
      38    BITCODE_B base_point_set;
      39    BITCODE_B sweep_entity_transform_computed;
      40    BITCODE_B path_entity_transform_computed;
      41    BITCODE_3BD reference_vector_for_controlling_twist;
      42  
      43    Dwg_Version_Type dwg_version = obj->parent->header.version;
      44  #ifdef DEBUG_CLASSES
      45    dwg_ent_sweptsurface *_obj = dwg_object_to_SWEPTSURFACE (obj);
      46  
      47    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, acis_empty, B);
      48    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, version, BS);
      49    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, acis_data, TF);
      50    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, wireframe_data_present, B);
      51    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, point_present, B);
      52    CHK_ENTITY_3RD (_obj, SWEPTSURFACE, point);
      53    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, isoline_present, B);
      54    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, isolines, BL);
      55    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, num_wires, BL);
      56    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, num_silhouettes, BL);
      57    if (!dwg_dynapi_entity_value (_obj, "SWEPTSURFACE", "wires", &wires, NULL))
      58      fail ("SWEPTSURFACE.wires");
      59    else
      60      {
      61        for (i = 0; i < num_wires; i++)
      62          printf ("SWEPTSURFACE.wires[%u]: " FORMAT_BLd "\n", i,
      63                  wires[i].selection_marker);
      64      }
      65    if (!dwg_dynapi_entity_value (_obj, "SWEPTSURFACE", "silhouettes",
      66                                  &silhouettes, NULL))
      67      fail ("SWEPTSURFACE.silhouettes");
      68    else
      69      {
      70        for (i = 0; i < num_silhouettes; i++)
      71          printf ("SWEPTSURFACE.silhouettes[%u]: " FORMAT_BL "\n", i,
      72                  silhouettes[i].vp_id);
      73      }
      74    if (dwg_version >= R_2007 && _obj->history_id) // if it did not fail before
      75      {
      76        CHK_ENTITY_H (_obj, SWEPTSURFACE, history_id);
      77      }
      78  
      79    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, modeler_format_version, BS);
      80    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, u_isolines, BS);
      81    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, v_isolines, BS);
      82    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, class_version, BL);
      83  
      84    if (!dwg_dynapi_entity_value (_obj, "SWEPTSURFACE",
      85                                  "sweep_entity_transmatrix",
      86                                  &sweep_entity_transmatrix, NULL)
      87        || !sweep_entity_transmatrix)
      88      fail ("SWEPTSURFACE.sweep_entity_transmatrix");
      89    else
      90      for (i = 0; i < 16; i++)
      91        {
      92          ok ("SWEPTSURFACE.sweep_entity_transmatrix[%d]: %f", i,
      93              sweep_entity_transmatrix[i]);
      94        }
      95    if (!dwg_dynapi_entity_value (_obj, "SWEPTSURFACE",
      96                                  "path_entity_transmatrix",
      97                                  &path_entity_transmatrix, NULL)
      98        || !path_entity_transmatrix)
      99      fail ("SWEPTSURFACE.path_entity_transmatrix");
     100    else
     101      for (i = 0; i < 16; i++)
     102        {
     103          ok ("SWEPTSURFACE.path_entity_transmatrix[%d]: %f", i,
     104              path_entity_transmatrix[i]);
     105        }
     106    if (!dwg_dynapi_entity_value (_obj, "SWEPTSURFACE",
     107                                  "sweep_entity_transmatrix1",
     108                                  &sweep_entity_transmatrix1, NULL)
     109        || !sweep_entity_transmatrix1)
     110      fail ("SWEPTSURFACE.sweep_entity_transmatrix1");
     111    else
     112      for (i = 0; i < 16; i++)
     113        {
     114          ok ("SWEPTSURFACE.sweep_entity_transmatrix1[%d]: %f", i,
     115              sweep_entity_transmatrix1[i]);
     116        }
     117    if (!dwg_dynapi_entity_value (_obj, "SWEPTSURFACE",
     118                                  "path_entity_transmatrix1",
     119                                  &path_entity_transmatrix1, NULL)
     120        || !path_entity_transmatrix1)
     121      fail ("SWEPTSURFACE.path_entity_transmatrix1");
     122    else
     123      for (i = 0; i < 16; i++)
     124        {
     125          ok ("SWEPTSURFACE.path_entity_transmatrix1[%d]: %f", i,
     126              path_entity_transmatrix1[i]);
     127        }
     128    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, sweep_entity_id, BL);
     129    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, sweepdata_size, BL);
     130    // CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, sweepdata, TF);
     131    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, path_entity_id, BL);
     132    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, pathdata_size, BL);
     133    // CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, pathdata, TF);
     134    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, draft_angle, BD);
     135    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, draft_start_distance, BD);
     136    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, draft_end_distance, BD);
     137    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, twist_angle, BD);
     138    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, scale_factor, BD);
     139    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, align_angle, BD);
     140    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, is_solid, B);
     141    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, sweep_alignment_flags, BS);
     142    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, path_flags, BS);
     143    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, align_start, B);
     144    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, bank, B);
     145    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, base_point_set, B);
     146    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, sweep_entity_transform_computed, B);
     147    CHK_ENTITY_TYPE (_obj, SWEPTSURFACE, path_entity_transform_computed, B);
     148    CHK_ENTITY_3RD (_obj, SWEPTSURFACE, reference_vector_for_controlling_twist);
     149  #endif
     150  }