# Synopsis

PDX_MSGT gdx_SolidImproveTrim(long option, MDA_PTR gdx_solid_ptr, int *loop_dirs)

# Purpose

Improve Loop directions for each Face in a Solid

# Description

This function tries to determine if the loop directions are correct. If they are not, the directions can be corrected. Parm curves must exist and the first loop must be the outer loop in all faces to be checked (gdx_SolidGenerateParmCurves & gdx_SolidImproveInOutLoopDir). The Faces are improved by toggling the loop sense to ensure that the driections are correct.

# Input

## option

### GDX_CHECK_ONLY

Check to see if the loops are correct. Do not fix the loops

### GDX_IMPROVE_LOOP_DIRECTION

Fix the Loop directions if they are not correct

### GDX_IMPROVE_SURF_NORMAL

Reverse the surface normal if it is not correct

## gdx_solid_ptr

The valid GDX Face database pointer

# Output

## gdx_solid_ptr

The improved GDX Face database pointer

## loop_dirs

### GDX_LOOP_GOOD

Loops directions were good

### GDX_LOOP_IMPROVED

Fixed the direction of the loops One or more loops has an open parm curve

### GDX_LOOP_WRONG

One or more loops has the wrong direction

### GDX_LOOP_FIRST_NOT_OUTER

First loop not outer. Could not check a face.

### GDX_LOOP_OPEN_PARM

Bad data. Could have cap loops in first, outer expected.

### GDX_LOOP_UNKOWN

Some loop directions could not be determined May be missing parm space curves

# Return

          GDX_NOERR
          Low level error return
          .fi