Synopsis

PDX_MSGT gdx_SurfaceGetDiscontinuities(long option, MDA_PTR gdx_surf_ptr, double tolerances[], int *nu, double **uparms, int *nv, double **vparms)

Purpose

Find surface discontinuities

Description

This functions finds discontinuities in a surface and returns the corresponding u and v parameter values.

Input

option

GDX_G1_CONTINUITY

Look for G1 discontinuities; the surface is considered G1 continuous at (u,v) if the corresponding u and v isocurves are G1 continuous there

GDX_C1_CONTINUITY

Look for C1 discontinuities; the surface is considered C1 continuous at (u,v) if the corresponding u and v isocurves are C1 continuous there

GDX_G2_CONTINUITY

Look for G2 discontinuities; the surface is considered G2 continuous at (u,v) if the corresponding u and v isocurves are G2 continuous there

GDX_C2_CONTINUITY

Look for C2 discontinuities; the surface is considered C2 continuous at (u,v) if the corresponding u and v isocurves are C2 continuous there

gdx_surf_ptr

The GDX surface.

tolerances

An array of tolerances to use for the continuity checks: [0]: Model Space Distance Difference. Used for G0 check. [1]: Radian angle difference. Used for G1 check. [2]: First derivative vector magnitude difference. Used for the C1 check. [3]: Curvature difference. Used for G2 check. [4]: Second derivative Vector magnitude difference. Used for C2 check. Any check uses all tolerances before it therefore they must be specified. e.g. C1 check uses tolerances[0], tolerances[1] as well.

Output

nu

Number of u direction discontinuities.

uparms

An array of u parameter values where the surface does not have the desired continuity (NULL pointer is returned if the surface has the desired continuity everywhere in the u direction). Memory is allocated in this function and must be deallocated by the calling routine, using gdx_Free if the calling routine is not part of libgdx.

nv

Number of v direction discontinuities.

vparms

An array of v parameter values where the surface does not have the desired continuity (NULL pointer is returned if the surface has the desired continuity everywhere in the v direction). Memory is allocated in this function and must be deallocated by the calling routine, using gdx_Free if the calling routine is not part of libgdx.

Return

      GDX_NOERR
      Low level error return
      .fi