Synopsis

PDX_MSGT gdx_ConvertSurfCmpEdgCrvToParm(long option, MDA_PTR gdx_db_ptr, MDA_PTR gdx_new_surf_ptr, int model, double tolerance, int u_degree, int v_degree, int max_iters, void *gdx_parm_cec, double *max_dev)

Purpose

Convert a GDX surface composite edge curve entity to an all GDX Parametric Spline curve and surface composite edge curve entity.

Description

Given a GDX composite edge curve entity that references parametric or non-parametric spline curve and surface entities, converts the non-parametric entities to parametric spline entities. If the composite edge curve references GDX parametric spline curve and surface entities, the GDX parametric spline entities are duplicated in the new model and referenced by the new GDX composite edge curve.

Parameter space curves are recomputed: .RS 4 o If the base surface was a non-parametric spline surface that was converted to a parametric spline surfaces, .RE .RS 4 o The bounded surface type indicates references to model space curves only. .RE

Model space curves are recomputed: .RS 4 o If the model space curves are not GDX parametric spline curves .RE .RS 4 o If a new parameter space curve was computed and the preference flag is parameter space, .RE

The tolerance and max_iters values apply to the parametric curves or surface that are approximated. The tolerance MODEL_SPACE_PNT_TOL should be at least 2 orders of magnitude smaller than the tolerance value for reasonable results.

The GDX composite edge curve entity and all its subordinate entities must be valid GDX definitions.

The conversion is exact where the curve and surface entities convert exactly to the parametric definition, otherwise the conversion is an approximation to tolerance. The projection of new parameter space curves and/or creation of new model space curves from parameter space curves is an approximation to tolerance.

Input

option

GDX_COMMIT

Commit the GDX composite edge curve to the database

GDX_NEWPARMCRV

Recompute the parameter space trimming curve by projecting the parametric spline model space curve to the parametric spline surface in the cases where the base surface is already a parametric spline surface

GDX_NEWMODELCRV

Recompute the parametric spline model space trimming curve from the computed parametric spline parameter space curve when the parameter space curve is recomputed. The preference flag will be set to parameter space prefered.

GDX_OPENCLOSED

Open a closed surface if the projection of the model space curves generates multiple parameter space curves accross seam closure.

GDX_USEUDEG

Force the curve to be the Degree of the Surface in the U direction.

GDX_USEDEG1

Force the U or V degree of the converted surface to be degree 1 if the original surface is non-rational and degree 1 in U and/or V

gdx_db_ptr

The composite edge curve entity database pointer pointer

gdx_new_surf_ptr

The database pointer of the new GDX non-rational with U degree equal u_degree @ V degree equal v_degree NURBS surface entity that should be used for the converted composite edge curve surface or MDA_NULL_PTR. NOTE: This surface must be converted to a GDX parametric spline surface and all the edge curves updated by the calling function.

model

The model to create the new GDX composite edge curve entity in

tolerance

The conversion approximation tolerance. Note: The MODEL_SPACE_PNT_TOL should be at least 2 orders of magnitude less than this tolerance for correct results.

u_degree

The converted parametric spline curve degree and/or the converted parametric spline surface U degree

v_degree

The converted parametric spline surface V degree

max_iters

The maximum iterations for convergence test

Output

gdx_parm_cec

The new GDX parametric spline composite edge curve entity database pointer or structure pointer

max_dev

The maximum deviation of the model space curve to the surface

Tolerances

      MODEL_SPACE_PNT_TOL
      PARM_SPACE_PNT_TOL
      ANGLE_TOL
      ZERO_TOL
      CONVERGE_TOL
      KNOT_TOL
      PNT_PROJ_TOL
      PARALLEL_LINES_TOL
      COLLINEAR_TOL
      COPLANAR_TOL
      .fi

Return

      GDX_NOERR
      Low level error return
      .fi