Beispiel #1
0
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;
}