# Synopsis

PDX_MSGT gdx_FaceSplitClosedSurf(long option, MDA_PTR gdx_face_ptr, int num_req_splits, double devtol, long maxits, int fitdeg, int *num_split_faces, MDA_PTR **gdx_split_face_ptrs)

# Purpose

Split the surface referenced by the face.

# Description

Split the surface if it is closed or has poles (see options). If the surface is an analytical surface (cone, cylinder, sphere, or torus) the resulting faces will contain revolved surfaces. When the option, GDX_SPLIT_BETWEEN_POLES is set, the underlying surface will be split if it has two U or two V poles. If the surface has closure, and the GDX_SPLIT_BETWEEN_POLES is specified, than that surface will not be split in the direction of the closure. For surfaces such as spheres, gdx_FaceSplitClosedSurf must be called twice to split the surface for both closure and poles. The arguments devtol, maxits, fitdeg are required for the generation of missing parm curves.

If the face is in a solid or shell, the shell will be updated with the correct faces. The face pointers are returned so that the calling function knows which faces are new. If the input face is independent, it will get deleted.

# Input

## option

### GDX_SPLIT_BETWEEN_POLES

If a surface has 2 U or 2 V poles, split the surface between the poles. When this option is set, surfaces will not be split for closure

### GDX_SPLIT_KEEP_ANALYTICAL

If specified, analytical surfaces will be returned in each face, if the input surface is analytical. The resulting face will be closed, but the trimming curves on the surface will be split and multiple faces will be returned.

## gdx_face_ptr

The database pointer for the GDX face entity

## num_req_splits

Number of requested splits = 0, Return split parms for active region, if it does not not touch closure. If active region is closed, split face once. >= 1, Split closed surface num_req_split times.

## devtol

Devation tolerance used during parm generation.

## maxits

Maximum iterations to use while generating parm curves

## fitdeg

Degree of curves to use to generate parm curves

# Output

## num_split_faces

Number of faces returned in gdx_split_face_ptrs

## gdx_split_face_ptrs

Array of GDX faces that were created.

# Tolerances

          MODEL_SPACE_PNT_TOL
          PARM_SPACE_PNT_TOL
          ANGLE_TOL
          ZERO_TOL
          .fi

# Return

          GDX_NOERR
          GDX_INVALIDMODEL
          Low level error return
          .fi