Synopsis

PDX_MSGT gdx_CBSRemoveSeamCrossing(long option, MDA_PTR gdx_cbs_ptr, double devtol, long maxits, int fitdeg, int *status, MDA_PTR **gdx_new_cbs_ptrs, int *no_of_new_cbs)

Purpose

Remove Seam Crossing problem in the given CBS.

Description

Given a CBS, removes seam crossing problem either by rotating the surface or by closing parm CECs. If the GDX_CLOSE_SEAM_POLE option is specified rotation will not be attempted, only parm CEC closure will be performed. More than one CBS may result. If the surface of the input CBS is not closed, nothing will be done.

It is required that the model curves of each CEC should be continuous, and the parm curves of each CEC should be continuous except those ending points lying on the seam or pole of the surface. All parm curves should agree with model curves.

Function checks if seam crossing can be avoided by rotating the surface. If so, then surface is rotated and all parm curves in the existing CBS are deleted. If surf rotation can't remove the seam crossings, then the CECs are closed in parm space by adding boundary curves. Basically, all CECs that touch the surface bounds are combined to make a single outer bound(s). It is possiblem that more than one CBS will result. Parm curves are generated to perform the parm space CEC closure. After removing the seam crossing model space curves may still touch the seam(s).

Input

option

GDX_CLOSE_SEAM_POLE

Uses only Loop Closure to remove seam crossing

gdx_cbs_ptr

CBS pointer

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

NoSeam CBS created with rovolved surface

GDX_CLOSED_PARMS

Noseam CBS created by closing parm CECs

GDX_NO_SEAM_XING

Given CBS with no seam crossing problem

gdx_new_cbs_ptrs

List of new CBS pointers (Exist only with CBS Closure operation)

no_of_new_cbs

Number of new CBSs

Return

      PDX_NOERR
      .fi