00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 #ifndef MGCDISTLIN3LIN3_H
00014 #define MGCDISTLIN3LIN3_H
00015 
00016 #include "MgcLine3.h"
00017 #include "MgcRay3.h"
00018 #include "MgcSegment3.h"
00019 
00020 
00021 
00022 MgcReal MgcSqrDistance (const MgcLine3& rkLine0, const MgcLine3& rkLine1,
00023     MgcReal* pfLinP0 = 0, MgcReal* pfLinP1 = 0);
00024 
00025 MgcReal MgcSqrDistance (const MgcLine3& rkLine, const MgcRay3& rkRay,
00026     MgcReal* pfLinP = 0, MgcReal* pfRayP = 0);
00027 
00028 MgcReal MgcSqrDistance (const MgcLine3& rkLine, const MgcSegment3& rkSeg,
00029     MgcReal* pfLinP = 0, MgcReal* pfSegP = 0);
00030 
00031 MgcReal MgcSqrDistance (const MgcRay3& rkRay0, const MgcRay3& rkRay1,
00032     MgcReal* pfRayP0 = 0, MgcReal* pfRayP1 = 0);
00033 
00034 MgcReal MgcSqrDistance (const MgcRay3& rkRay, const MgcSegment3& rkSeg,
00035     MgcReal* pfRayP = 0, MgcReal* pfSegP = 0);
00036 
00037 MgcReal MgcSqrDistance (const MgcSegment3& rkSeg0, const MgcSegment3& rkSeg1,
00038     MgcReal* pfSegP0 = 0, MgcReal* pfSegP1 = 0);
00039 
00040 
00041 
00042 
00043 MgcReal MgcDistance (const MgcLine3& rkLine0, const MgcLine3& rkLine1,
00044     MgcReal* pfLinP0 = 0, MgcReal* pfLinP1 = 0);
00045 
00046 MgcReal MgcDistance (const MgcLine3& rkLine, const MgcRay3& rkRay,
00047     MgcReal* pfLinP = 0, MgcReal* pfRayP = 0);
00048 
00049 MgcReal MgcDistance (const MgcLine3& rkLine, const MgcSegment3& rkSeg,
00050     MgcReal* pfLinP = 0, MgcReal* pfSegP = 0);
00051 
00052 MgcReal MgcDistance (const MgcRay3& rkRay0, const MgcRay3& rkRay1,
00053     MgcReal* pfRayP0 = 0, MgcReal* pfRayP1 = 0);
00054 
00055 MgcReal MgcDistance (const MgcRay3& rkRay, const MgcSegment3& rkSeg,
00056     MgcReal* pfRayP = 0, MgcReal* pfSegP = 0);
00057 
00058 MgcReal MgcDistance (const MgcSegment3& rkSeg0, const MgcSegment3& rkSeg1,
00059     MgcReal* pfSegP0 = 0, MgcReal* pfSegP1 = 0);
00060 
00061 #endif