Synopsis

PDX_MSGT gdx_SolidRemoveSeamCrossing(long option, MDA_PTR gdx_solid_ptr, double devtol, long maxits, int fitdeg, int *status)

Purpose

Removes Seam Crossings in a given GDX Solid.

Description

Given a Solid, Removes seam crossings either by rotating the surface by closing parm loops. By setting the option, could skip the surface rotation step. It is required that the model curves of each loop should be continuous, and the parm curves of each loop should be continuous except those ending points lying on the seam or pole of the surface. All parm curves should agree with model curves. Program loops through each face and checks if seam crossing can be avoided by just rotating the surface first. If surf rotation can't solve seam crossing problem, then closes all parm loops and creates new faces. If there are new faces then it creates a new shell and replaces the old shell in all parent entities. Generates all missing model curves and vertices to provide GOOD GDX data.

Input

option

GDX_CLOSE_SEAM_POLE

Forcibly close the parm space loops without using rotation.

GDX_KEEP_DEGEN_LOOPS

Keep all degenerate loops.

gdx_solid_ptr

Solid with possible seam crossings

devtol

Sampled points on the model space curve, M(t), should not deviate from the surface or from the image under S(u,v) of P(s) more than this value. 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.

Output

status

GDX_ROTATED_SURFACE

Removed seam crossings by rovolving surfaces

GDX_CLOSED_PARMS

Removed seam crossings by closing parm loops

GDX_NO_SEAM_XING

Given Solid with no seam crossing problem

GDX_ERROR_DETECTING_SEAM

An error occurred while detecting the seam. Unknown whether there is a seam crossing or not

GDX_REGENERATED_LOOP_FROM_SURF_BOUND

All loop(s) of face were degenerate and removed, generated new loop from natural boundary of surface, if this occurs for single shell/face in solid GDX_DEGEN_FACE error is returned

gdx_solid_ptr

solid without seam crossings

Return

      PDX_NOERR
      .fi