Synopsis

PDX_MSGT gdx_IntersectCurves(long option, MDA_PTR dbptr_cur1, MDA_PTR dbptr_cur2, double intxeps, double ptctol, long *numintx, double (**parms)[2], MTH_3DPNT (**pts)[2])

Purpose

Find all points of intersection of two 3D GDX curves.

Description

Finds all points of intersection of two GDX curves, C(s) and C(t). The curves may be 2D or 3D (but 3D points are returned). At an intersection, four items are returned: the s and t values, and the two corresponding curve points C(s) and C(t).

Input

option

GDX_UNNORM

Unnormalize the parameter values and return the parameter values normalized

dbptr_cur1

Database pointer for the first curve, C(s).

dbptr_cur2

Database pointer for the second curve, C(t).

intxeps

Intersection tolerance. The parameters s and t represent an intersection point if C(s) and C(t) are within intxeps distance of one another.

ptctol

Point coincidence tolerance for the space in which the two curves lie.

Output

numintx

The number of intersections found.

parms

The s and t parameter values corresponding to intersection points. Memory allocated in this routine and must be freed by the caller, using gdx_Free if the caller is not part of libgdx.

pts

The model space points C(s) and C(t) corresponding to intersection points. Memory allocated in this routine, and must be freed by the caller, using gdx_Free if the caller is not part of libgdx.

Return

      GDX_NOERR
      Low level error return
      .fi