void Sprite::set_pivot(const Vec2f& pivot) { R_ASSERT(pivot.x >= 0.0f && pivot.x <= 1.0f && pivot.y >= 0.0f && pivot.y <= 1.0f, "Invalid pivot point"); Vec2f diff = pivot; diff -= pivot_; if (diff.is_zero()) return; diff.x *= width_ * scale_.x; diff.y *= height_ * scale_.y; center_ += diff; position_ += diff; pivot_ = pivot; }