Support for intersection of objects.
#include <AlIntersect.h>
class AlIntersect
static statusCode intersect( AlCurve*, AlCurve*, AlList* & );
static statusCode intersect( AlCurve*, AlSurface*, AlList* & );
static statusCode intersect( AlSurface*, AlSurface*, AlIntersectSurfSurfInfo& );
class AlIntersectCurveCurveInfo : public AlLinkItem
AlIntersectCurveCurveInfo* nextItem() const;
AlIntersectCurveCurveInfo* prevItem() const;
double tCurve1, tCurve2;
double point[3];
class AlIntersectCurveSurfInfo : public AlLinkItem
AlIntersectCurveSurfInfo* nextItem() const;
AlIntersectCurveSurfInfo* prevItem() const;
double t;
double pointOnCurve[3];
double u,v;
double pointOnSurface[3];
class AlIntersectSurfSurfInfo
~AlIntersectSurfSurfInfo();
int numberIsolatedPoints;
double3* isolatedPoints;
int numberIntersectionCurves;
AlCurve** intersectionCurves;
int numberBoundaryCurves;
AlCurve** boundaryCurves;
This collection of classes provides the programmer with the ability to determine points of intersection between two curves, a curve and a surface, or two surfaces.
Each type of intersection responds with its own class of results: AlIntersectCurveCurveInfo, AlIntersectCurveSurfInfo, and AlIntersectSurfSurfInfo. The first two of these are simple AlList classes. The last one is a stucture storing pointers to AlCurves and (x/y/z) points.
Returns the next item in the AlIntersectCurveCurveInfo list.
Returns the previous item in the AlIntersectCurveCurveInfo list.
Returns the next item in the AlIntersectCurveSurfInfo list.
Returns the previous item in the AlIntersectCurveSurfInfo list.
Destructor for AlIntersectSurfSurfInfo. Only deletes the isolatedPoints[] array, so that the user may choose which AlCurves to keep.
Intersects a curve with a surface. Points of intersection are returned in a AlIntersectCurveSurfInfo list, giving (x,y,z) coordinates, (u,v) parameters, and (t) parameters.
< curve - a valid AlCurve to intersect
< surface - a valid surface to intersect
> list - the points of intersection (see AlIntersectCurveSurfInfo)
sSuccess - successful intersection (not necessarily any points of intersection)
sInvalidArgument - the curve/surface was invalid
sFailure - the intersection failed
Intersects a curve with another curve. Points of intersection are returned in a AlIntersectCurveCurveInfo list, giving (x,y,z) coordinates and (t) parameters.
< curve1 - a valid AlCurve to intersect
< curve2 - a valid AlCurve to intersect
> list - the points of intersection (see AlIntersectCurveCurveInfo)
sSuccess - successful intersection (not necessarily any points of intersection)
sInvalidArgument - a curve was invalid
sFailure - the intersection failed
Intersects a surface with another surface. Points of intersection are returned in a AlIntersectSurfSurf list, giving AlCurves and (x,y,z) points.
< surface1 - a valid AlCurve to intersect
< surface2 - a valid AlCurve to intersect
> ss - the points of intersection (see AlIntersectSurfSurfInfo)
sSuccess - successful intersection (not necessarily any points of intersection)
sInsufficientMemory - not enough memory to perform intersection
sInvalidArgument - a surface was invalid
sFailure - the intersection failed