Synopsis

PDX_MSGT gdx_FaceRemoveSeamCrossing(long option, MDA_PTR gdx_face_ptr, double devtol, long maxits, int fitdeg, int *status, MDA_PTR **gdx_new_face_ptrs, int *num_new_faces)

Purpose

Remove Seam Crossing problem in the given GDX Face.

Description

Given a Face, removes seam crossing problem either by rotating the surface or by closing parm Loops. If the GDX_CLOSE_SEAM_POLE option is specified rotation will not be attempted, only parm Loop closure will be performed. More than one Face may result. If the surface of the input Face is not closed, nothing will be done. 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. 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 Face are deleted. If surf rotation can't remove the seam crossings, then the Loops are closed in parm space by adding boundary curves. Basically, all Loops that touch the surface bounds are combined to make a single outer bound(s). It is possiblem that more than one Face will result. Parm curves are generated to perform the parm space Loop closure. After removing the seam crossing model space curves may still touch the seam(s).

Input

option

GDX_CLOSE_SEAM_POLE

Forcibly close the parm space loops without using rotation.

gdx_face_ptr

Input GDX FACE

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 Face created with rovolved surface

GDX_CLOSED_PARMS

Noseam Face created by closing parm loops

GDX_NO_SEAM_XING

Given Face has 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_new_face_ptrs

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

num_new_faces

Number of new Faces

Return

      PDX_NOERR
      .fi