# Synopsis

PDX_MSGT gdx_SolidSplitClosedSurfs(long option, int num_req_splits, double devtol, long maxits, int fitdeg, MDA_PTR gdx_solid_ptr, PDX_BOOL *splits)

# Purpose

Split the closed surfaces of a Solid.

# Description

Split the surfaces of each face if it is a closed closed surface or it has poles (see options). Analytical surfaces (cone, cylinder, sphere, or torus) the result in faces which 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_SolidSplitClosedSurf 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.

# 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.

## num_req_splits

Number of requested splits, required for GDX_CLOSURE. = 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

The deviation of the model space image of P(s) from the projection of M(t) should not be greater than devtol. This tolerance should be larger than MODEL_SPACE_PNT_TOL, at least by 1 to 2 orders of magnitude.

## maxits

Maximum number of iterations. Iteration will be stopped if this number is exceeded.

## fitdeg

Degree used for fitting. See option GDX_FITDEGMAX above.

## gdx_solid_ptr

The database pointer for the GDX solid entity

# Output

## gdx_solid_ptr

An updated GDX solid with no closed surfaces and parm curves.

## splits

Boolean indicating if surfaces were split

# Tolerances

          MODEL_SPACE_PNT_TOL
          PARM_SPACE_PNT_TOL
          ANGLE_TOL
          ZERO_TOL
          .fi

# Return

          GDX_NOERR
          GDX_INVALIDMODEL
          Low level error return
          .fi