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 #include "LampBasic.h"
00026 #include "Geometry/Primitive/AxisAlignedBox.h"
00027 #include "Geometry/Distance/AxisAlignedBoxDistance.h"
00028 #include "Geometry/Intersection/AxisAlignedBoxIntersection.h"
00029
00030 namespace Lamp{
00031
00032
00033
00034
00035
00036 const AxisAlignedBox AxisAlignedBox::zero(0.f, 0.f, 0.f, 0.f, 0.f, 0.f);
00037
00038
00039 const AxisAlignedBox AxisAlignedBox::unit(
00040 -0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f);
00041
00042
00043
00044
00045
00046 float AxisAlignedBox::getSquaredDistance(const Vector3& point) const{
00047 return AxisAlignedBoxDistance::squaredDistance(*this, point);
00048 }
00049
00050
00051 float AxisAlignedBox::getSquaredDistance(
00052 const AxisAlignedBox& axisAlignedBox) const{
00053 return AxisAlignedBoxDistance::squaredDistance(*this, axisAlignedBox);
00054 }
00055
00056
00057 float AxisAlignedBox::getSquaredDistance(const Capsule& capsule) const{
00058 return AxisAlignedBoxDistance::squaredDistance(*this, capsule);
00059 }
00060
00061
00062 float AxisAlignedBox::getSquaredDistance(const Cone& cone) const{
00063 return AxisAlignedBoxDistance::squaredDistance(*this, cone);
00064 }
00065
00066
00067 float AxisAlignedBox::getSquaredDistance(const Line& line) const{
00068 return AxisAlignedBoxDistance::squaredDistance(*this, line);
00069 }
00070
00071
00072 float AxisAlignedBox::getSquaredDistance(const OrientedBox& orientedBox) const{
00073 return AxisAlignedBoxDistance::squaredDistance(*this, orientedBox);
00074 }
00075
00076
00077 float AxisAlignedBox::getDistance(const Plane& plane) const{
00078 return AxisAlignedBoxDistance::distance(*this, plane);
00079 }
00080
00081
00082 float AxisAlignedBox::getSquaredDistance(const Ray& ray) const{
00083 return AxisAlignedBoxDistance::squaredDistance(*this, ray);
00084 }
00085
00086
00087 float AxisAlignedBox::getSquaredDistance(const Segment& segment) const{
00088 return AxisAlignedBoxDistance::squaredDistance(*this, segment);
00089 }
00090
00091
00092 float AxisAlignedBox::getSquaredDistance(const Sphere& sphere) const{
00093 return AxisAlignedBoxDistance::squaredDistance(*this, sphere);
00094 }
00095
00096
00097 float AxisAlignedBox::getSquaredDistance(const Triangle& triangle) const{
00098 return AxisAlignedBoxDistance::squaredDistance(*this, triangle);
00099 }
00100
00101
00102
00103
00104 bool AxisAlignedBox::intersect(const Vector3& point) const{
00105 return AxisAlignedBoxIntersection::intersect(*this, point);
00106 }
00107
00108
00109 bool AxisAlignedBox::intersect(const AxisAlignedBox& axisAlignedBox) const{
00110 return AxisAlignedBoxIntersection::intersect(*this, axisAlignedBox);
00111 }
00112
00113
00114 bool AxisAlignedBox::intersect(const Capsule& capsule) const{
00115 return AxisAlignedBoxIntersection::intersect(*this, capsule);
00116 }
00117
00118
00119 bool AxisAlignedBox::intersect(const Cone& cone) const{
00120 return AxisAlignedBoxIntersection::intersect(*this, cone);
00121 }
00122
00123
00124 bool AxisAlignedBox::intersect(const Line& line) const{
00125 return AxisAlignedBoxIntersection::intersect(*this, line);
00126 }
00127
00128
00129 bool AxisAlignedBox::intersect(const OrientedBox& orientedBox) const{
00130 return AxisAlignedBoxIntersection::intersect(*this, orientedBox);
00131 }
00132
00133
00134 bool AxisAlignedBox::intersect(const Plane& plane) const{
00135 return AxisAlignedBoxIntersection::intersect(*this, plane);
00136 }
00137
00138
00139 bool AxisAlignedBox::intersect(const Ray& ray) const{
00140 return AxisAlignedBoxIntersection::intersect(*this, ray);
00141 }
00142
00143
00144 bool AxisAlignedBox::intersect(const Segment& segment) const{
00145 return AxisAlignedBoxIntersection::intersect(*this, segment);
00146 }
00147
00148
00149 bool AxisAlignedBox::intersect(const Sphere& sphere) const{
00150 return AxisAlignedBoxIntersection::intersect(*this, sphere);
00151 }
00152
00153
00154 bool AxisAlignedBox::intersect(const Triangle& triangle) const{
00155 return AxisAlignedBoxIntersection::intersect(*this, triangle);
00156 }
00157
00158 }
00159