# Synopsis

PDX_MSGT gdx_ShellOrientFaces(long option, MDA_PTR gdx_shell_ptr, int *face_orients)

# Purpose

Orient all the adjacent GDX Faces in the GDX Solid in same direction.

# Description

This function tries to determine if all the adjacent faces, in a solid, are oriented in the same direction. If they are not, the adjacent faces are reversed. Parm curves must exist, first loop must be outer loop in all the faces, and all the loop directions must agree with the normal of the face (gdx_SolidGenerateParmCurves & gdx_SolidImproveInOutLoopDir & gdx_SolidImproveLoopDirs). The Faces are improved by toggling the loop and surf sense to ensure the proper orientation. This function makes the assumption that first Face in each Shell is oriented in the proper direction. It will then orient all the adjacent Faces based on the first one Face.

# Input

## option

### GDX_CHECK_ONLY

Check to see if the faces are all oriented in the the same direction. Do not fix the orientation of the faces.

### GDX_IMPROVE

Fix the Orientation of all the faces so they agree.

## gdx_shell_ptr

The valid GDX Solid database pointer

# Output

## gdx_shell_ptr

The improved GDX Solid database pointer

## face_orients

### GDX_OK

The data is good

### GDX_IMPROVED

The orientation of the faces has been improved

### GDX_NOT_GOOD

The faces were not oriented in the same direction. Returned only when the GDX_CHECK_ONLY is used.

### GDX_IMPROVE_FAILED

The faces could not be oriented.

# Tolerances

          .fi

# Return

          GDX_NOERR
          Low level error return
          .fi