Synopsis

PDX_MSGT gdx_LinearApproxEntity(long option, GDX_APPROX_PARAMS *approx_params, MDA_PTR gdx_db_ptr, int model, MDA_COUNT *num_gdx_approx, void *gdx_approx)

Purpose

Linear approximate a GDX entity

Description

Perform linear approximation on a GDX entity. The result is a GDX linear approximation entity created in a specified model. The GDX linear approximation entity can be a GDX_POLYLINE, GDX_CURVE_MESH, GDX_RECT_MESH, GDX_FACET_SHELL, or a GDX_POLY_SHELL entity.

The GDX entities supported for approximation are:

.nf Curve GDX_ARC GDX_COMPOSITE GDX_CONIC GDX_POLYLINE GDX_SPLINE_CURVE GDX_NURB_CURVE GDX_OFFSET_CURVE GDX_TRIM_CURVE

Surface GDX_NURB_SURF GDX_SPLINE_SURF GDX_RULED_SURF GDX_REV_SURF GDX_EXT_SURF GDX_OFFSET_SURF GDX_PLANE GDX_CONE GDX_SPHERE GDX_CYLINDER GDX_TORUS GDX_RECT_TRIM_SURF

Topology GDX_FACE GDX_SHELL GDX_SOLID .fi

In general, if the approximation method is GDX_TOLERANCE, then the approximation involves iterative procedures that work until the requested tolerance is realized. For the GDX_ARC, however, the minimum number of points are generated that guarantee the approximation to the requested tolerance. However a minimum of 3 points are generated if a GDX_ARC is open and a minimum of 4 points if it is closed.

Input

option

GDX_COMMIT

Commit the approximation data to the database

GDX_MAKEPLANAR

Make all non-planar facets planar to within COPLANAR_TOL tolerance (See gdx_SetTolerances). The resultant GDX approximation entity will be a GDX_POLY_SHELL

GDX_UNNORM

Unnormalize the requested surface UV parameter values. By default, the parameter values are normalized, but adjusted for seam crossing such that the parametric range of the normalized values is -1.0 < parm < 3.0. For values < 1.0 1.0 must be added to the value to get the correct normalized value and for values > 1.0 1.0 must be subtracted from the value until the value is <= 1.0. When the paramter values are unnormalized the values are adjusted appropriately.

GDX_FORCE_CC_TO_POLYLINES

A composite curve will be approximated as polyline(s). When this option is chosen, all new polylines are committed to the database. By default, a gdx_curve_mesh might be returned.

approx_params

The linear approximation parameters or NULL. If NULL is used, then the default linear approximation parameters are used. See the gdx_InitApproxParams manual page for information on how to set these values.

gdx_db_ptr

Database pointer of GDX entity

model

The model to create the approximation entity in

Output

num_gdx_approx

The count of GDX linear approximation entities

gdx_approx

The linear approximation entity structures (default) or the linear approximation entity structure database pointers (if GDX_COMMIT specified). The memory space for the entity(s) is allocated and must be freed by the application, using gdx_Free if the calling application is not part of libgdx.

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
      GDX_LINAPPROXNODATA
      GDX_INVALIDMODEL
      GDX_INVALIDENTITYTYPE
      Low level error return
      .fi