/****************************************************************************** Copyright (c) 1999 Unigraphics Solutions, Inc. Unpublished - All Rights Reserved *******************************************************************************/ /* You must open a blank part before you execute this example code.*/ #include #include #include #define NUMBER_POINTS 5 #define UF_CALL(X) (report( __FILE__, __LINE__, #X, (X))) static int report( char *file, int line, char *call, int irc) { if (irc) { char messg[133]; printf("%s, line %d: %s\n", file, line, call); (UF_get_fail_message(irc, messg)) ? printf(" returned a %d\n", irc) : printf(" returned error %d: %s\n", irc, messg); } return(irc); } static void do_ugopen_api(void) { /* B-spline parameters */ int degree = 3; int periodicity = 0; int num_points = NUMBER_POINTS; /* Point/slope curve attribute array */ UF_CURVE_pt_slope_crvatr_t point_data[NUMBER_POINTS]; /* Arrays of user's defining point data */ double parameters[NUMBER_POINTS] = {0.00, 0.17, 0.32, 0.45, 1.29}; double points[3*NUMBER_POINTS] = {1.1000, 0.5320, 2.0000, 1.5240, 0.6789, 2.3000, 2.0000, 0.9000, 3.5956, 2.3456, 1.3456, 3.7890, 3.1000, 2.4567, 3.3214}; int slopeTypes[NUMBER_POINTS] = {UF_CURVE_SLOPE_DIR, UF_CURVE_SLOPE_AUTO, UF_CURVE_SLOPE_NONE, UF_CURVE_SLOPE_DIR, UF_CURVE_SLOPE_VEC}; double slopeVecs[3*NUMBER_POINTS] = {1.2300, 5.0506, 4.0360, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.5000, 1.0000, 0.5000, 1.0000, -2.0000, 1.0000}; int crvatrTypes[NUMBER_POINTS] = {UF_CURVE_CRVATR_NONE, UF_CURVE_CRVATR_AUTO_DIR, UF_CURVE_CRVATR_NONE, UF_CURVE_CRVATR_VEC, UF_CURVE_CRVATR_VEC}; double crvatrVecs[3*NUMBER_POINTS] = {0.0000, 0.0000, 0.0000, 1.0000, 2.5780, 5.6700, 0.0000, 0.0000, 0.0000, 1.0000, -1.0000, 1.0000, -1.0000, -1.0000, -1.0000}; int i, save_def_data = 1; tag_t spline_tag; for (i= 0; i