(root)/
libredwg-0.13/
test/
unit-testing/
loftedsurface.c
       1  // TODO DEBUGGING
       2  #define DWG_TYPE DWG_TYPE_LOFTEDSURFACE
       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_BD *loft_entity_transmatrix;
      15    BITCODE_BL i, plane_normal_lofting_type;
      16    BITCODE_BD start_draft_angle;
      17    BITCODE_BD end_draft_angle;
      18    BITCODE_BD start_draft_magnitude;
      19    BITCODE_BD end_draft_magnitude;
      20    BITCODE_B arc_length_parameterization;
      21    BITCODE_B no_twist;
      22    BITCODE_B align_direction;
      23    BITCODE_B simple_surfaces;
      24    BITCODE_B closed_surfaces;
      25    BITCODE_B solid;
      26    BITCODE_B ruled_surface;
      27    BITCODE_B virtual_guide;
      28    BITCODE_BS num_cross_sections;
      29    BITCODE_BS num_guide_curves;
      30    BITCODE_H *cross_sections;
      31    BITCODE_H *guide_curves;
      32    BITCODE_H path_curve;
      33  
      34    Dwg_Version_Type dwg_version = obj->parent->header.version;
      35  #ifdef DEBUG_CLASSES
      36    dwg_ent_loftedsurface *_obj = dwg_object_to_LOFTEDSURFACE (obj);
      37  
      38    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, acis_empty, B);
      39    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, version, BS);
      40    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, acis_data, TF);
      41    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, wireframe_data_present, B);
      42    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, point_present, B);
      43    CHK_ENTITY_3RD (_obj, LOFTEDSURFACE, point);
      44    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, isoline_present, B);
      45    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, isolines, BL);
      46    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, num_wires, BL);
      47    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, num_silhouettes, BL);
      48    if (!dwg_dynapi_entity_value (_obj, "LOFTEDSURFACE", "wires", &wires, NULL))
      49      fail ("LOFTEDSURFACE.wires");
      50    else
      51      {
      52        for (i = 0; i < num_wires; i++)
      53          printf ("LOFTEDSURFACE.wires[%u]: " FORMAT_BLd "\n", i,
      54                  wires[i].selection_marker);
      55      }
      56    if (!dwg_dynapi_entity_value (_obj, "LOFTEDSURFACE", "silhouettes",
      57                                  &silhouettes, NULL))
      58      fail ("LOFTEDSURFACE.silhouettes");
      59    else
      60      {
      61        for (i = 0; i < num_silhouettes; i++)
      62          printf ("LOFTEDSURFACE.silhouettes[%u]: " FORMAT_BL "\n", i,
      63                  silhouettes[i].vp_id);
      64      }
      65    if (dwg_version >= R_2007 && _obj->history_id) // if it did not fail before
      66      {
      67        CHK_ENTITY_H (_obj, LOFTEDSURFACE, history_id);
      68      }
      69  
      70    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, modeler_format_version, BS);
      71    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, u_isolines, BS);
      72    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, v_isolines, BS);
      73  
      74    if (!dwg_dynapi_entity_value (_obj, "LOFTEDSURFACE",
      75                                  "loft_entity_transmatrix",
      76                                  &loft_entity_transmatrix, NULL)
      77        || !loft_entity_transmatrix)
      78      fail ("LOFTEDSURFACE.loft_entity_transmatrix");
      79    else
      80      for (i = 0; i < 16; i++)
      81        {
      82          ok ("LOFTEDSURFACE.loft_entity_transmatrix[%d]: %f", i,
      83              loft_entity_transmatrix[i]);
      84        }
      85    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, plane_normal_lofting_type, BL);
      86    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, start_draft_angle, BD);
      87    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, end_draft_angle, BD);
      88    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, start_draft_magnitude, BD);
      89    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, end_draft_magnitude, BD);
      90    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, arc_length_parameterization, B);
      91    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, no_twist, B);
      92    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, align_direction, B);
      93    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, simple_surfaces, B);
      94    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, closed_surfaces, B);
      95    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, solid, B);
      96    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, ruled_surface, B);
      97    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, virtual_guide, B);
      98    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, num_cross_sections, BS);
      99    CHK_ENTITY_TYPE (_obj, LOFTEDSURFACE, num_guide_curves, BS);
     100    CHK_ENTITY_H (_obj, LOFTEDSURFACE, path_curve);
     101    if (!dwg_dynapi_entity_value (_obj, "LOFTEDSURFACE", "cross_sections",
     102                                  &cross_sections, NULL))
     103      fail ("LOFTEDSURFACE.cross_sections");
     104    for (i = 0; i < num_cross_sections; i++)
     105      {
     106        ok ("LOFTEDSURFACE.cross_sections[%d]: " FORMAT_REF, i,
     107            ARGS_REF (cross_sections[i]));
     108      }
     109    if (!dwg_dynapi_entity_value (_obj, "LOFTEDSURFACE", "guide_curves",
     110                                  &guide_curves, NULL))
     111      fail ("LOFTEDSURFACE.guide_curves");
     112    for (i = 0; i < num_guide_curves; i++)
     113      {
     114        ok ("LOFTEDSURFACE.guide_curves[%d]: " FORMAT_REF, i,
     115            ARGS_REF (guide_curves[i]));
     116      }
     117  #endif
     118  }