# Synopsis

PDX_MSGT gdx_CompareCurveOnSurf(long option, MDA_PTR gdx_curve_ptr, MDA_PTR gdx_surf_ptr, double toler_geom, double toler_parm, long num_pnts, long max_iters, GDX_CURVE_ON_SURF *gdx_compare)

# Purpose

Compare a curve against a surface for conformity and Iso status.

# Description

Compares a curve with a surface for geometric conformity at sample points on the curve within a tolerance toler_geom. Also determines if the curve is an Iso-Curve on the surface. At every sample point, the curve is evaluated and projected on to the surface. The distance between the original evaluated point and projected point should be less than the toler_geom for all the sample points to indicate geometric conformity. The projected parameters on the surface should remain within parm_toler in either U or V directions to indicate Iso-Curve status of the curve. If the curve matches an Iso curve on the surface, the iso value itself along with two terminating (other) parameters on the iso curve and a sense flag will be returned in gdx_compare structure. If the surface and the curve are closed, and curve matches an Iso curve on the surface, the surface parametric bounds in that direction will be returned. Matching behavior of Curves around the surface poles is not defined.

.nf GDX_CURVE_ON_SURF members .fi .RS 3 .TP 17 match_flg Flag indicating the conformity status. .nf = PDX_TRUE if geometric conformity exists. = PDX_FALSE if geometric conformity does not exists. .fi .TP max_gdev Maximum geometric deviation between the two entities for sampled points. .TP max_pdev Maximum parametric deviation for the closer iso curve to the original curve. This value is valid only if conformity flag match_flg, is PDX_TRUE. .TP iso_u Flag indicating whether or not the curve matches an Iso-U curve on the surface. This flag is valid only if geometric conformity flag match_flg, is PDX_TRUE. .nf = PDX_FALSE : Curve does not match an iso U direction. = PDX_TRUE : Curve matches an iso U direction. .fi .TP iso_v Flag indicating whether or not the curve matches an Iso-V curve on the surface. This flag is valid only if geometric conformity flag match_flg, is PDX_TRUE. .nf = PDX_FALSE : Curve does not match an iso V direction. = PDX_TRUE : Curve matches an iso V direction. .fi .TP iso_parm Value of the iso, if the curve matches an Iso-Curve. .TP sense Sense of the curve with respect to surface, if the curve matches an Iso-Curve. This flag is valid only if the curve matches an Iso curve on the surface. .nf = PDX_FALSE : Curve opposes the iso direction. = PDX_TRUE : Curve agrees with the iso direction. .fi .TP parm1 Other parameter starting value on the Iso-Curve. .TP parm2 Other parameter ending value on the Iso-Curve. .LP .RE

# Input

## option

### GDX_RANDOM_PNTS

Compare the curve interior at random points.

## gdx_curve_ptr

Curve entity database pointer

## gdx_surf_ptr

Surface entity database pointer

## toler_geom

Tolerance within which curve is assumed to conform with the surface.

## toler_parm

Tolerance within which curve is assumed to be a surface Iso-Curve.

## num_pnts

Number of sample points on the curve.

## max_iters

Maximum number of iterations when point projection is done numerically.

# Output

## gdx_compare

Comparison results structure.

# Return

          Low level error return
          .fi