# Synopsis

PDX_MSGT gdx_ConvertNurbToNurbSurf(long option, MDA_PTR gdx_ns_ptr, int model, double tolerance, int u_degree, int v_degree, int max_iters, MDA_PTR *gdx_new_ns_ptr)

# Purpose

Convert a GDX NURB Surface to another GDX NURB Surface

# Description

Converts a GDX NURB Surface entity to another GDX NURB Surface entity. The conversion converts the NURBS surface to a lower or higher degree.

By default, when the surface is converted, the new surface is non-rational and all surfaces are converted. The GDX_KEEP_RAT option can be specified to keep surfaces rational when the degree is increased. The GDX_RATIONAL_ONLY option can be specified, so that only rational NURBS are converted. Finally, the GDX_DEGREE_1 option can be specified to keep surfaces that are degree 1 in both u and v, or just convert the degree that is not equal to 1.

The tolerance and max_iters values apply to the NURBS surface that is approximated as the new GDX NURB Surface. The tolerance is the measure of how far the lower degree and/or non-rational surface can vary from the original surface. The max_iters is the maximium number of iterations that a span in the original NURBS surface is subdivided for approximating the new NURBS surface. Typically only several iterations are required for convergence to the tolerance, but a discontinuous original NURBS surface may never converge to the required tolerance. The tolerance also applies for closure test.

If a conversion error occurs any data created during the conversion is deleted and no GDX NURB Surface is created.

The GDX NURB Surface entity must be valid GDX definitions.

The conversion is an approximate conversion to tolerance.

# Input

## option

### GDX_COMMIT

Commit the GDX NURB Curve to the database

### GDX_KEEPRAT

Keep rational when elevating the degree

### GDX_RATIONAL_ONLY

Convert only rational NURBS

### GDX_KEEP_DEGREE_1

Keep degree 1 curves degree 1

## gdx_ns_ptr

The valid GDX NURB Surface entity database pointer

## model

The model to create the GDX NURB Surface in

## tolerance

The conversion approximation tolerance.

## u_degree

The converted NURBS surface U degree

## v_degree

The converted NURBS surface V degree

## max_iters

The maximium iterations for convergence test

# Output

## gdx_new_ns_ptr

The GDX NURB Surface entity database pointer or structure pointer

# Tolerances

          MODEL_SPACE_PNT_TOL
          PNT_PROJ_TOL
          ANGLE_TOL
          ZERO_TOL
          CONVERGE_TOL
          KNOT_TOL
          PNT_PROJ_TOL
          PARALLEL_LINES_TOL
          COLLINEAR_TOL
          COPLANAR_TOL
          .fi

# Return

          GDX_NOERR
          GDX_INVALIDMODEL
          GDX_ENTITY_NOT_NURBS
          Low level error return
          .fi