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