/******************************************************************************
             Copyright (c) 1999 Unigraphics Solutions, Inc.
                       Unpublished - All Rights Reserved

*******************************************************************************/
/* The following example creates an isocline curve feature using one
face selected by the user. The output is a family of curves at angles 0,
30, 60, and 90 degrees, relative to the Y axis.
*/
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include <uf_modl.h>
#include <uf_curve.h>
#include <uf_object_types.h>
void ufusr (char *param ,int *retcod, int param_len)
{
   int     rc, response;
   tag_t   view, iso_feat, faces[1] = {NULL_TAG};
   double  dir[3] = { 0.0, 1.0, 0.0 };
   char    *start = "0.0", *end = "90.0", *step = "30.0
";
   double  cursor[3];
   UF_UI_selection_options_t opts;
   UF_UI_mask_t mask =
                {UF_solid_type, 0, UF_UI_SEL_FEATURE_ANY_FACE};

   UF_initialize();

   /* Ask user to select a face
    */
   opts.other_options = 0;
   opts.reserved = NULL;
   opts.num_mask_triples = 1;
   opts.mask_triples = &mask;
   opts.scope = UF_UI_SEL_SCOPE_WORK_PART;

   UF_UI_select_single( "Select Isocline Face",
                        &opts,
                        &response,
                        &faces[0],
                        cursor,
                        &view );
   if ( faces[0] != NULL_TAG )
   {
      /* Create isocline feature on selected face
       */
      rc = UF_CURVE_create_isocline( 1,
                                    faces,
                                    dir,
                                    start,
                                    end,
                                    step,
                                    &iso_feat );
   }
   UF_terminate();
}


