Witam.
Na początek chcę przeprosić za tytuł postu, bowiem nie jest on zbyt wyszukany lecz nie mam pojęcia jak nazwać mój przypadek...
Pisząc pewien program napotkałem się na dość kłopotliwy problem. Niestety nie podzielę się kodem, bo przy takiej ilości raczej jest to bezsensowne.
Sytuacja wygląda mniej więcej tak:
Mam klasę np: "Model" która dziedziczy po klasach "DirectObject"; "TranslationObject" oraz "DrawElement"
Następnie robię mniej więcej coś takiego:
..
std::vector<VOID *> pointers;
...
pointers.puch_back((VOID*)(new Model));
...
Oprócz klasy "Model" jest/będzie wiele innych klas posiadających za jedną z klas bazowych klasę "TranslationObject". W wektorze "pointers" trzymam wszystkie możliwe obiekty.
Dodam jeszcze że klasa "TranslationObject" jest zbudowania mniej więcej tak:
vector3 Position;
vector3 Rotation;
vector3 Scale;
Gwóźdź programu pojawia się gdy chcę zrobić coś takiego:
...
((TranslationObject*)pointers[coś])->Rotation.x+=0.1f;
...
Zamiast obrót zmienia mi się pozycja obiektu.
A gdy dobieram się do pola "TranslationObject::Scale" ów obiekt zaczyna się obracać.
Nie wiecie co robię źle? (Chodzi mi o kod który pokazałem, bo raczej nie jesteście jasnowidzami i nie zgadniecie co mam w całym programie xD) Ewentualnie jaki mogłem popełnić błąd. A może źle rzutuję?