5 #ifndef __IRR_AABBOX_3D_H_INCLUDED__
6 #define __IRR_AABBOX_3D_H_INCLUDED__
32 aabbox3d(T minx, T miny, T minz, T maxx, T maxy, T maxz):
MinEdge(minx, miny, minz),
MaxEdge(maxx, maxy, maxz) {}
130 return e.
X * e.
Y * e.
Z;
137 return 2*(e.
X*e.
Y + e.
X*e.
Z + e.
Y*e.
Z);
160 edges[0].
set(middle.
X + diag.
X, middle.
Y + diag.
Y, middle.
Z + diag.
Z);
161 edges[1].
set(middle.
X + diag.
X, middle.
Y - diag.
Y, middle.
Z + diag.
Z);
162 edges[2].
set(middle.
X + diag.
X, middle.
Y + diag.
Y, middle.
Z - diag.
Z);
163 edges[3].
set(middle.
X + diag.
X, middle.
Y - diag.
Y, middle.
Z - diag.
Z);
164 edges[4].
set(middle.
X - diag.
X, middle.
Y + diag.
Y, middle.
Z + diag.
Z);
165 edges[5].
set(middle.
X - diag.
X, middle.
Y - diag.
Y, middle.
Z + diag.
Z);
166 edges[6].
set(middle.
X - diag.
X, middle.
Y + diag.
Y, middle.
Z - diag.
Z);
167 edges[7].
set(middle.
X - diag.
X, middle.
Y - diag.
Y, middle.
Z - diag.
Z);
259 if ((fabs(t.
X) > e.
X + halflength * fabs(linevect.
X)) ||
260 (fabs(t.
Y) > e.
Y + halflength * fabs(linevect.
Y)) ||
261 (fabs(t.
Z) > e.
Z + halflength * fabs(linevect.
Z)) )
264 T r = e.
Y * (T)fabs(linevect.
Z) + e.
Z * (T)fabs(linevect.
Y);
265 if (fabs(t.
Y*linevect.
Z - t.
Z*linevect.
Y) > r )
268 r = e.
X * (T)fabs(linevect.
Z) + e.
Z * (T)fabs(linevect.
X);
269 if (fabs(t.
Z*linevect.
X - t.
X*linevect.
Z) > r )
272 r = e.
X * (T)fabs(linevect.
Y) + e.
Y * (T)fabs(linevect.
X);
273 if (fabs(t.
X*linevect.
Y - t.
Y*linevect.
X) > r)
289 if (plane.
Normal.X > (T)0)
295 if (plane.
Normal.Y > (T)0)
301 if (plane.
Normal.Z > (T)0)
307 if (plane.
Normal.dotProduct(nearPoint) + plane.
D > (T)0)
310 if (plane.
Normal.dotProduct(farPoint) + plane.
D > (T)0)