# Synopsis

PDX_MSGT gcr_NurbSurf2(long option, MDA_PTR orig_db_ptr, int u_degree, int v_degree, int surface_type, MDA_COUNT num_of_u_ctrl_pts, MDA_COUNT num_of_v_ctrl_pts, MTH_3DPNT (**ctrl_pts), double *weights[], double u_knots[], double v_knots[], double u_bounds[2], double v_bounds[2], int gdx_model, MDA_PTR *gdx_NS_ptr)

# Purpose

Create a GDX NURB Surface.

# Description

Given a set of U and V 3D XYZ control points, the knots, the weights and the U and V degree of the NURB surface, creates a GDX NURB surface by calling gcr_NurbSurf.

Refer to gcr_NurbSurf for detailed description.

# 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 NURB surface (Must be > 0)

## v_degree

The V degree of the NURB surface (Must be > 0)

## surface_type

### GDX_NURB_GENERAL

The general form of the NURB surface

### GDX_NURB_PLANE

The plane form of the NURB surface

### GDX_NURB_CYLINDER

The cylinder form of the NURB surface

### GDX_NURB_CONE

The cone form of the NURB surface

### GDX_NURB_SPHERE

The sphere form of the NURB surface

### GDX_NURB_TORUS

The torus form of the NURB surface

### GDX_NURB_SREV

The surface of revolution form of the NURB surface

### GDX_NURB_TABCYL

The tabulated cylinder form of the NURB surface

### GDX_NURB_RULED

The ruled form of the NURB surface

### GDX_NURB_QUAD

The quadratic form of the NURB surface

### GDX_NURB_OFFSET_SURF

The offset form of the NURB surface

### GDX_NURB_CURV_SURF

The curve form of the NURB surface

### GDX_NURB_POINT_SURF

The point form of the NURB surface

## num_of_u_ctrl_pts

The number of U control points for each V of the NURB surface (Must be > 1)

## num_of_v_ctrl_pts

The number of V control points for the NURB surface (Must be > 1)

## ctrl_pts

The 3D X, Y, Z control point coordinates

## weights

The weights for the NURB surface, or NULL

## u_knots

The U knots for the NURB surface, or NULL

## v_knots

The V knots for the NURB surface, or NULL

## u_bounds

The U active parametric domain of the curve, or NULL. If value is NULL, gdx u_bounds[0] = u_knots[u_degree] and u_bounds[1] = u_knots[num_of_u_knots - u_order];

## v_bounds

The U active parametric domain of the curve, or NULL. If value is NULL, gdx v_bounds[0] = v_knots[v_degree] and v_bounds[1] = v_knots[num_of_v_knots - v_order];

## gdx_model

The GDX model for entity creation

# Output

## gdx_NS_ptr

Entity database pointer of the GDX NURB Surface

# Tolerances

          GDX KNOT_TOL
          GDX PARM_SPACE_PNT_TOL
          .fi

# Return

          GCR_NOERR
          GCR_INVALID_MODEL
          GCR_NURB_U_DEGREE
          GCR_NURB_V_DEGREE
          GCR_NURB_U_CTRL_PNTS
          GCR_NURB_V_CTRL_PNTS
          Low level error return
          .fi