# Synopsis

PDX_MSGT gcr_SplineSurf(long option, MDA_PTR orig_db_ptr, int u_degree, int v_degree, MDA_COUNT num_of_u_segs, MDA_COUNT num_of_v_segs, struct t_gdx_spline_surf_poly_surf **poly_surf, double *u_break_pnts, double *v_break_pnts, int gdx_model, MDA_PTR *gdx_SS_ptr)

# Purpose

Create a GDX Spline Surface.

# Description

Given a set of 3D XYZ UV ABCD... coefficients for each segment, the number of U and V segments, the U and V break points, and the U and V degree of Spline surface, creates a GDX Spline surface.

The U and V degree (u_degree and v_degree) and the number of U and V spline segments (num_of_u_segs and num_of_v_segs) must be > 0

If the u_break_pnts and/or v_break_pnts U and/or V knot values array is NULL, then the Spline surface is assumed to be a uniform surface and the GDX Spline surface uniform break point values are generated.

If the break point value array is specified, the break point sequence must be in increasing order.

The GDX Spline surface is parameterized from the first break point to the last break point.

\fBRules\fR .IP • 3 The u_degree must be > 0 .IP • 3 The v_degree must be > 0 .IP • 3 The num_of_u_segs must be > 0 .IP • 3 The num_of_v_segs must be > 0 .IP • 3 u_order = u_degree + 1 .IP • 3 v_order = v_degree + 1 .LP

# Input

## option

### GCR_NOVALIDATE

No validation will occur on the input data.

## orig_db_ptr

The original entities orig_db_ptr as obtained from the mda_GetOrigDbptr call, or MDA_NULL_PTR

## u_degree

The U degree of the Spline surface

## v_degree

The V degree of the Spline surface

## num_of_u_segs

The number of U spline patches for the Spline surface

## num_of_v_segs

The number of V spline patches for the Spline surface

## poly_surf

MDA memory array containing the 3D XYZ UV ABCD... U, V order coefficient values as num_of_u_segs U columns of num_of_v_segs V patch V,U order coefficients. poly_surf[num_of_u_segs][num_of_v_segs].patches [v_degree + 1][u_degree + 1][3] Always consumed by this function even on error.

## u_break_pnts

MDA memory containing the num_u_of_segs + 1 U spline surface patch break point values, or NULL Always consumed by this function even on error.

## v_break_pnts

MDA memory containing the num_v_of_segs + 1 V spline surface patch break point values, or NULL Always consumed by this function even on error.

## gdx_model

The GDX model for entity creation

# Output

## gdx_SS_ptr

Entity database pointer of the GDX Spline Surface

# Tolerances

          .fi

# Return

          GCR_NOERR
          GCR_INVALID_MODEL
          GCR_SPLINE_SURF_U_DEGREE
          GCR_SPLINE_SURF_V_DEGREE
          GCR_SPLINE_SURF_NUM_U_SEGS
          GCR_SPLINE_SURF_NUM_V_SEGS
          Low level error return
          .fi