AxisAlignedBox AxisAlignedBox::Transformed(const QMatrix4x4& transform) const { const double x0 = min_.x(); const double y0 = min_.y(); const double z0 = min_.z(); const double x1 = max_.x(); const double y1 = max_.y(); const double z1 = max_.z(); AxisAlignedBox result; result.IncludePoint(transform * min_); result.IncludePoint(transform * max_); result.IncludePoint(transform * QVector3D(x0, y1, z0)); result.IncludePoint(transform * QVector3D(x1, y1, z0)); result.IncludePoint(transform * QVector3D(x1, y0, z0)); result.IncludePoint(transform * QVector3D(x0, y0, z1)); result.IncludePoint(transform * QVector3D(x0, y1, z1)); result.IncludePoint(transform * QVector3D(x1, y0, z1)); return result; }