Circle Circle::Transform(Matrix& m) { // transform Point p0 = this->pc; double scale; if(m.GetScale(scale) == false) FAILURE(getMessage(L"Differential Scale not allowed for this method")); return Circle(p0.Transform(m), radius * scale); }
AxisAlignedBoundingBox3D AxisAlignedBoundingBox3D::operator*(const Matrix& rhs) const { return *this * rhs.GetScale() + rhs.GetTransposeTranslation(); }
Sphere Sphere::operator*(const Matrix& rhs) const { return Sphere(center + rhs.GetTranslation(), radius * rhs.GetScale().Max()); }