void SetToTransformedBox(AABB box, Matrix3 m) { if (box.IsEmpty()) { Empty(); return; } if (m.m1 > 0.0f) { min.x += m.m1 * box.min.x; max.x += m.m1 * box.max.x; } else { min.x += m.m1 * box.max.x; max.x += m.m1 * box.min.x; } if (m.m2 > 0.0f) { min.x += m.m2 * box.min.x; max.x += m.m2 * box.max.x; } else { min.x += m.m2 * box.max.x; max.x += m.m2 * box.min.x; } if (m.m3 > 0.0f) { min.x += m.m3 * box.min.x; max.x += m.m3 * box.max.x; } else { min.x += m.m3 * box.max.x; max.x += m.m3 * box.min.x; } if (m.m4 > 0.0f) { min.x += m.m4 * box.min.x; max.x += m.m4 * box.max.x; } else { min.x += m.m4 * box.max.x; max.x += m.m4 * box.min.x; } if (m.m5 > 0.0f) { min.x += m.m5 * box.min.x; max.x += m.m5 * box.max.x; } else { min.x += m.m5 * box.max.x; max.x += m.m5 * box.min.x; } if (m.m6 > 0.0f) { min.x += m.m6 * box.min.x; max.x += m.m6 * box.max.x; } else { min.x += m.m6 * box.max.x; max.x += m.m6 * box.min.x; } if (m.m7 > 0.0f) { min.x += m.m7 * box.min.x; max.x += m.m7 * box.max.x; } else { min.x += m.m7 * box.max.x; max.x += m.m7 * box.min.x; } if (m.m8 > 0.0f) { min.x += m.m8 * box.min.x; max.x += m.m8 * box.max.x; } else { min.x += m.m8 * box.max.x; max.x += m.m8 * box.min.x; } if (m.m9 > 0.0f) { min.x += m.m9 * box.min.x; max.x += m.m9 * box.max.x; } else { min.x += m.m9 * box.max.x; max.x += m.m9 * box.min.x; } }
void SetToTransformedBox(AABB box, Matrix3 m) { if (box.IsEmpty()) { IsEmpty(); return; } if (m.m1 > 0.0f) { min.x += m.m1 * box.min.x; max.x += m.m1 * box.max.x; } else { min.x += m.m1 * box.max.x; max.x += m.m1 * box.min.x; } if (m.m2 > 0.0f) { min.y += m.m2 * box.min.x; max.y += m.m2 * box.max.x; } else { min.y += m.m2 + box.max.x; max.y += m.m2 * box.min.x; } if (m.m3 > 0.0f) { min.z += m.m3 * box.min.x; max.z += m.m3 * box.max.x; } else { min.z += m.m3 * box.max.x; max.z += m.m3 * box.min.x; } //may be incorrect below this line if (m.m4 > 0.0f) { min.x += m.m4 * box.min.x; max.x += m.m4 * box.max.x; } else { min.x += m.m4 * box.max.x; max.x += m.m4 * box.min.x; } if (m.m5 > 0.0f) { min.y += m.m5 * box.min.x; max.y += m.m5 * box.max.x; } else { min.y += m.m5 + box.max.x; max.y += m.m5 * box.min.x; } if (m.m6 > 0.0f) { min.z += m.m6 * box.min.x; max.z += m.m6 * box.max.x; } else { min.z += m.m6 * box.max.x; max.z += m.m6 * box.min.x; } if (m.m7 > 0.0f) { min.x += m.m7 * box.min.x; max.x += m.m7 * box.max.x; } else { min.x += m.m7 * box.max.x; max.x += m.m7 * box.min.x; } if (m.m8 > 0.0f) { min.y += m.m8 * box.min.x; max.y += m.m8 * box.max.x; } else { min.y += m.m8 + box.max.x; max.y += m.m8 * box.min.x; } if (m.m9 > 0.0f) { min.z += m.m9 * box.min.x; max.z += m.m9 * box.max.x; } else { min.z += m.m9 * box.max.x; max.z += m.m9 * box.min.x; } }
void SetToTransformedBox(AABB box, Matrix3 m) { // If we're empty, then exit (an empty box defined as having the min/max set to infinity) if (box.IsEmpty()) { Empty(); return; } if (m.m1 > 0.0f) // m1 = m11 in the formula above { min.x += m.m1 * box.min.x; max.x += m.m1 * box.max.x; } else { min.x += m.m1 * box.max.x; max.x += m.m1 * box.min.x; } if (m.m2 > 0.0f) // m2 = m12 in the formula above { min.y += m.m2 * box.min.x; max.y += m.m2 * box.max.x; } else { min.y += m.m2 * box.max.x; max.y += m.m2 * box.min.x; } if (m.m3 > 0.0f) // m3 = m13 in the formula above { min.z += m.m3 * box.min.x; max.z += m.m3 * box.max.x; } else { min.z += m.m3 * box.max.x; max.z += m.m3 * box.min.x; } if (m.m4 > 0.0f) // m4 = m21 in the formula above { min.x += m.m4 * box.min.x; max.x += m.m4 * box.max.x; } else { min.x += m.m4 * box.max.x; max.x += m.m4 * box.min.x; } if (m.m5 > 0.0f) // m5 = m22 in the formula above { min.y += m.m5 * box.min.x; max.y += m.m5 * box.max.x; } else { min.y += m.m5 * box.max.x; max.y += m.m5 * box.min.x; } if (m.m6 > 0.0f) // m6 = m23 in the formula above { min.z += m.m6 * box.min.x; max.z += m.m6 * box.max.x; } else { min.z += m.m6 * box.max.x; max.z += m.m6 * box.min.x; } if (m.m7 > 0.0f) // m7 = m31 in the formula above { min.x += m.m7 * box.min.x; max.x += m.m7 * box.max.x; } else { min.x += m.m7 * box.max.x; max.x += m.m7 * box.min.x; } if (m.m8 > 0.0f) // m8 = m32 in the formula above { min.y += m.m8 * box.min.x; max.y += m.m8 * box.max.x; } else { min.y += m.m8 * box.max.x; max.y += m.m8 * box.min.x; } if (m.m9 > 0.0f) // m9 = m33 in the formula above { min.z += m.m9 * box.min.x; max.z += m.m9 * box.max.x; } else { min.z += m.m9 * box.max.x; max.z += m.m9 * box.min.x; } }