00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "ChasteCuboid.hpp"
00030 #include "Exception.hpp"
00031
00032 ChasteCuboid::ChasteCuboid(ChastePoint<3>& rPointA, ChastePoint<3>& rPointB) : mrPointA(rPointA), mrPointB(rPointB)
00033 {
00034 for (unsigned dim=0; dim<3; dim++)
00035 {
00036 if (mrPointA[dim] > mrPointB[dim])
00037 {
00038 EXCEPTION("Attempt to create a cuboid with MinCorner greater than MaxCorner in some dimension");
00039 }
00040 }
00041 }
00042
00043 bool ChasteCuboid::DoesContain(const ChastePoint<3U>& rPointToCheck)
00044 {
00045 bool inside = true;
00046 for (unsigned dim=0; dim<3; dim++)
00047 {
00048 if (rPointToCheck[dim] < mrPointA[dim] - 100*DBL_EPSILON
00049 || mrPointB[dim] + 100* DBL_EPSILON < rPointToCheck[dim])
00050 {
00051 inside = false;
00052 break;
00053 }
00054 }
00055 return inside;
00056 }
00057
00058 bool ChasteCuboid::DoesContain(const ChastePoint<2U>& rPointToCheck)
00059 {
00060
00061 bool inside = true;
00062 for (unsigned dim=0; dim<2; dim++)
00063 {
00064 if (rPointToCheck[dim] < mrPointA[dim] - 100*DBL_EPSILON
00065 || mrPointB[dim] + 100* DBL_EPSILON < rPointToCheck[dim])
00066 {
00067 inside = false;
00068 break;
00069 }
00070 }
00071 return inside;
00072 }
00073
00074 bool ChasteCuboid::DoesContain(const ChastePoint<1U>& rPointToCheck)
00075 {
00076
00077 bool inside = true;
00078 for (unsigned dim=0; dim<1; dim++)
00079 {
00080 if (rPointToCheck[dim] < mrPointA[dim] - 100*DBL_EPSILON
00081 || mrPointB[dim] + 100* DBL_EPSILON < rPointToCheck[dim])
00082 {
00083 inside = false;
00084 break;
00085 }
00086 }
00087 return inside;
00088 }