Esempio n. 1
0
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;
}