Qt framework. Nie udało mi się znaleźć odpowiedzi.
Do rzeczy:

Obiekty typu QGraphicsItem standardowo mają początek układu współrzędnych w lewym górnym rogu i mogą być transformowane za pomocą metod typu scale, rotation, move itp. względem tego początku. Możliwe jest ustawienie bez problemu za pomocą setTransformOriginPoint(); innego punktu do wykonania tych metod, jednak niestety jeżeli już wykonaliśmy jakieś transformacje względem poprzedniego punktu, przekształca to także wszystkie dokonane dotychczas transformacje względem nowego punktu.

Czy ktoś wie/ma pomysł na to, czy da się "zablokować" dokonane już transformacje tak, by nie podlegały ( bądź "nie widziały") zmiany początku układu wsp.?

Mam taki problem, że w jednym z moich obiektów na którym wykonałem już skalowania, obroty itp, chciałbym ustawić obracający się ciągle obrazek tła z QTimerem. Chcę, żeby obiekt pozostał taki, jaki już jest, a obrazek miał punkt obrotu na środku.

Kod trochę z głowy bo nie ma sensu, żebym wklejał. Myślę, że istota problemu jest oddana.

QGraphicsItem *mojItem = new QGraphicsItem();

//ustawienie potrzebnych mi bajerów do obiektu, zdjęcia itp... nieistotne, ważne, że ma slot "rotateImage();", który obraca //obrazek przy wywołaniu o ileśtam stopni

QTimer *timer = new QTimer();
 
connect(timer,SIGNAL(timeout()),mojItem,SLOT(rotateImage()));
timer->start(25); //wywoływanie obrotu co 25 milisekund

Jeżeli nie zmienię początku układu na centrum, to obrazek obraca się wokół lewego górnego rogu obiektu.

 
mojItem->setTransformOriginPoint(mojItem->boundingRect().center());//zmiana początku układu na środek

Jeżeli zmienię początek na środek, wszystkie transformacje które wykonałem wokół lewego górnego rogu są wykonane ponownie, ale wokół centrum.

Szukałem w metodach list przechowujących transformacje obiektu, ale nic tam nie znalazłem.

 
mojItem->tranformations(). (tutaj jakieś metody, ale nic tam nie ma o blokowaniu)

Ktokolwiek widział, ktokolwiek wie.

EDIT: SOLVED
Wystarczyło dodanie obrazka jako dziecka dla mojItem, i ustawienie JEGO punktu obrotu na środek.

mojItem->mojeDziecko->setTransformOriginPoint(mojItem->mojeDziecko->boundingRect().center());//ustawienie pkt obrotu na środek
mojItem->mojeDziecko->setRotation(rotation);//rotacja