# Synopsis

PDX_MSGT gdx_SolidProcessAll(long option, long nurb_conv_option, int prep_option, double target_coin_tol, double target_gap_tol, int degree, MDA_PTR gdx_solid_ptr, int *status)

# Purpose

Prepare and Convert a GDX Solid for processing by other GDX functions.

# Description

This function encapsulates higher level GDX functionality to prepare and/or convert a GDX Solid for processing by other GDX functions. By default, it will prepare the GDX data into a form that other GDX functions call best handle. It will convert all spline data to NURBS, isolate shared surfaces, convert trim curves to base curves, generate any missing model curves, generate missing vertices, improve model loop continuity, relimit infinite surfaces, rotate seams away from active regions of a face and improve NURBS surface parameterizations.

The PREP_XXX options are recommended practices or data conversion to make legal data for the given output. These options will set the approriate internal order of operations to get the desired output. These options are enumerated types that should be passed in with the prep_option field. GDX_PREP_IGES_144 - Prepare Faces to be legal IGES 144s GDX_PREP_POLYSHELL - Prepare data to be tessalated in GDX GDX_PREP_VDAF - Prepare data to be taken to VDAF GDX_PREP_ACIS - Prepare data to be taken to ACIS GDX_PREP_PS - Prepare data to be taken to PS Listed below are options that can be specified to convert/prepare the data to specific needs. .TP GDX_TO_NURBS - Convert all Surfs and Curves to NURBS .TP GDX_TO_SPLINE - Convert NURB Surfs and Curves back to Splines. If all gemoetry needs to be splines, GDX_TO_NURBS needs to be set. .TP GDX_SHELL_SENSE_MAKE_TRUE - Force the shell sense to be TRUE .TP GDX_FACE_TRIM - Trim faces of solid so they are oriented in proper direction .TP GDX_FACE_SENSE_MAKE_TRUE - Force the face sense to be TRUE .TP GDX_SURF_SENSE_MAKE_TRUE - Force the surf sense to be TRUE .TP GDX_SURF_SPLIT_CLOSED - Split closed Surfs .TP GDX_SURF_MAKE_G1 - Make Surfs G1 continuous .TP GDX_SURF_TO_ANALYTIC - Convert Surfs to analytic Surfs .TP GDX_LOOP_SENSE_MAKE_TRUE - Force the loop sense to be TRUE .TP GDX_LOOP_CLOSE_PARM - Close Parm loops .TP GDX_EDGE_REGEN_VERTEX -Delete and Regenerate all the verticies in the solid before exiting the function .TP GDX_EC_DELETE_MODEL - Incoming model curves are deleted and created new .TP GDX_EC_DELETE_PARM - Incoming parm curves are deleted .TP GDX_EC_NEED_PARM - Outgoing Solid will have parm curves. If this option is not set, all parm curves will be deleted when we exit this function. .TP GDX_EC_MODEL_SPLIT_CLOSED - Split closed Model curves .TP GDX_EC_MODEL_CC_SPLIT_CLOSED - Split closed composite Model curves .TP GDX_EC_SENSE_MAKE_TRUE - Force the EC sense to be TRUE .TP GDX_CURVE_TO_ANALYTIC - Convert Curves to anayltic Curves .TP GDX_CURVE_MAKE_C1 - Make Curves C1 continous .TP GDX_CURVE_MAKE_G1 - Make Curves G1 continous .BS 0 Listed below are options that can be specified to nurbs operation in nurb_conv_option argument to convert nurbs data to specific characterristic nurbs. This options will not be applied to any non-nurbs geometries except splines. Splines are converted to nurbs, therefore this option will have effect on splines as well. If GDX_TO_SPLINE option is specified in option argument, this function automatically sets GDX_NURBS_MAKE_BEZIER option.

.BE .TP GDX_NURBS_CLAMP - Non clampped nurb curves/surface will be clamped. This option can not be used with GDX_NURBS_MAKE_UNIFORM .TP GDX_NURBS_REPARAM - Nurb curves/surface will be reparametized between 0.0 and 1.0. This option can not be used with GDX_NURBS_MAKE_UNIFORM .TP GDX_NURBS_MAKE_UNIFORM - Nurb curves/surface will be approximated to uniform knots nurb curves/surface. This option can not be used with GDX_NURBS_CLAMP, GDX_NURBS_REPARAM or GDX_NURBS_MAKE_BEZIER. .TP GDX_NURBS_NONRATIONAL - Rational nurb curves/surface will be approximated to non-rational nurb surface. This option can not be used with GDX_KEEPRRAT .TP GDX_NURBS_MAKE_BEZIER - Non-bezier nurb curves/surface will be approximated to bezier nurb. This option overides GDX_NURBS_CLAMP and GDX_NURBS_NONRATIONAL options. .TP GDX_NURBS_FORCE_DEGREE - Nurb curves/surface will be converted/ approximated to the specified degree. This option can not be used with GDX_NURBS_REDUCE_DEGREE or GDX_NURBS_ELEVATE_DEGREE. .TP GDX_NURBS_REDUCE_DEGREE - Nurb curves/surface exceed the specified degree will be approximated to the degree specified. This option can not be used with GDX_NURBS_FORCE_DEGREE or GDX_NURBS_ELEVATE_DEGREE. .TP GDX_NURBS_ELEVATE_DEGREE - Nurb curves/surface degree less than the specified degree will be converted to the degree specified. This option can not be used with GDX_NURBS_FORCE_DEGREE or GDX_NURBS_REDUCE_DEGREE. .TP GDX_KEEP_DEGREE_1 - When converting nurbs, degree 1 will be kept. .TP GDX_KEEPRAT - Keep rational when elevating the degree This option can not be used with GDX_NURBS_NONRATIONAL

.TP GDX_KEEP_OFFSET - Keep Offset surfaces when converting to NURBS .TP GDX_KEEP_PLANE - Keep Plane surfaces when converting to NURBS .TP GDX_KEEP_CYLINDER - Keep Cylinder surfaces when converting to NURBS .TP GDX_KEEP_CONE - Keep Cone surfaces when converting to NURBS .TP GDX_KEEP_EXT_SURF - Keep Extruded surfaces when converting to NURBS .TP GDX_KEEP_SPHERE - Keep Sphere surfaces when converting to NURBS .TP GDX_KEEP_TORUS - Keep Torus surfaces when converting to NURBS .TP GDX_KEEP_REV_SURF - Keep Revolved surfaces when converting to NURBS .TP GDX_KEEP_RULED_SURF - Keep Ruled surfaces when converting to NURBS

# Input

## options

See above

## nurb_conv_option

See above

## prep_option

See GDX_PREP_xxx options above

## target_coin_tol

Coincident Point tolerance for Target system

## target_gap_tol

Gap tolerance for Target system

## degree

Degree to be used when forcing/reducing degrees in NURB data

## gdx_solid_ptr

Database pointer of a GDX Solid

# Output

## gdx_solid_ptr

Database pointer of a GDX Solid

## status

Status flag of whether the GDX Solid was processed

# Return

GDX error code