12 #include "ai_vector.h"
32 int minx, miny, maxx, maxy;
50 AiV3Create(bbox.min, bound, bound, bound);
51 AiV3Create(bbox.max, -bound, -bound, -bound);
59 bbox.min =
AiV3Min(bbox.min, v);
60 bbox.max =
AiV3Max(bbox.max, v);
68 bbox.min = bbox.max = p0;
69 bbox.min =
AiV3Min(bbox.min, p1);
70 bbox.max =
AiV3Max(bbox.max, p1);
71 bbox.min =
AiV3Min(bbox.min, p2);
72 bbox.max =
AiV3Max(bbox.max, p2);
83 bbox.min =
AiV3Min(b1.min, b2.min);
84 bbox.max =
AiV3Max(b1.max, b2.max);
92 bbox.min =
AiV3Max(b1.min, b2.min);
93 bbox.max =
AiV3Min(b1.max, b2.max);
101 return ((p.x >= bbox.min.x) && (p.y >= bbox.min.y) && (p.z >= bbox.min.z) &&
102 (p.x <= bbox.max.x) && (p.y <= bbox.max.y) && (p.z <= bbox.max.z));
110 return (bbox.max.x - bbox.min.x) *
111 (bbox.max.y - bbox.min.y) *
112 (bbox.max.z - bbox.min.z);
120 return (bbox.min.x > bbox.max.x) ||
121 (bbox.min.y > bbox.max.y) ||
122 (bbox.min.z > bbox.max.z);
130 const AtPoint diag = bbox.max-bbox.min;
131 return (diag.x * (diag.y+diag.z) + diag.y*diag.z) * 2;
139 const AtPoint diag = bbox.max-bbox.min;
140 return diag.x * (diag.y+diag.z) + diag.y*diag.z;
148 c = (bbox.max + bbox.min) * 0.5f;
157 AiV3Lerp(bbox.min, k, lo.min, hi.min);
158 AiV3Lerp(bbox.max, k, lo.max, hi.max);
166 return (bbox.maxx - bbox.minx + 1) *
167 (bbox.maxy - bbox.miny + 1);