Synopsis
PDX_MSGT gdx_CBSRotateSurfFromSeam(long option, MDA_PTR gdx_cbs_ptr, int *status, PDX_BOOL *seam_touch, int *num_axis_touches)
Purpose
Rotate a surface for a CBS so that the seam crossing could be avoided
Description
Check if the seam crossing problem can be solved by rotating the surface; yes, the surface would be rotated if there is no other parent for this surface or a new surface would be created by rotating the original surface.
The model space curves must exist, otherwise the surface is considered as un-rotatable. In order to find the possible rotation angle, 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 of the surface.
If the surface is rotated, all parm-curves will be deleted.
Input
option
Options (not used)
gdx_cbs_ptr
The valid GDX CBS database pointer
Output
status
GDX_SURF_REV_ROTATED
The surface has been rotated;
GDX_SURF_REV_UNCLOSED
The surface is an unclosed revolving surface;
GDX_SURF_REV_NO_SEAM_XING
The surface does not have seam crossing problem;
GDX_SURF_REV_UNROTATABLE
The seam crossing problem could not be solved by rotating the surface;
GDX_SURF_NOT_REV
The surface is not a revolving surface.
seam_touch
Flag indicating whether or not any loop touches the seam when GDX_SURF_REV_ROTATED or GDX_SURF_REV_NO_SEAM_XING returned.
num_axis_touches
Number of loops touching the rotation axis, invalid if < 0
Return
GDX_NOERR
GDX_MODEL_LOOP_NOT_CONT
GDX_PARM_LOOP_NOT_CONT
Low level error return
.fi