GeoIntersect.h
00001 
00002 
00003 
00004 
00005 #pragma once
00006 
00007 #include "GeoObjects.h"
00008 
00009 namespace GEO
00010 {
00011     namespace INTERSECT
00012     {
00013         
00014         bool LinePlane(const Line &inLine, const Plane &inPlane, Vector3 &outPoint);
00015         bool LinePlane(const Line &inLine, const Plane &inPlane);
00016 
00017         
00018         bool LineSphere(const Line &inLine, const Sphere &inSphere, Vector3 &outPoint1, Vector3 &outPoint2);
00019         bool LineSphere(const Line &inLine, const Sphere &inSphere);
00020 
00021         bool RaySphere(const Line &inLine, const Sphere &inSphere);
00022 
00023         
00024         bool LineYAlignedEllipsoid(const Line &inLine, const YAlignedEllipsoid &inEllipse, Vector3 &outPoint1, Vector3 &outPoint2);
00025 
00026         bool RayYAlignedEllipsoid(const Line &inLine, const YAlignedEllipsoid &inEllipse);
00027 
00028         
00029         bool LineAARectoid(const Line &inLine, const AARectoid &rect, Vector3 &outPoint1, Vector3 &outNormal1, Vector3 &outPoint2, Vector3 &outNormal2);
00030 
00031         
00032         bool LineXAlignedUnboundedCylinder(const Line &inLine, const XAlignedUnboundedCylinder &inCyl, Vector3 &outPoint1, Vector3 &outPoint2);
00033         Vector3 NormalFromIntersection(const Vector3 &isect, const XAlignedUnboundedCylinder &inCyl);
00034 
00035         bool RayXAlignedUnboundedCylinder(const Line &inLine, const XAlignedUnboundedCylinder &inCyl);
00036     }
00037 
00038 };