Hud* HudsManager::createHud(HudAlignment hudAlignment) { Hud *hud = new Hud(); unsigned long hudPosition; hud->initializeHudText(); if (hudAlignment == HudAlignment::LEFT) { this->leftHuds.push_back(hud); hud->setPosition(osg::Vec3(10, this->initial_Y_Position, 0)); } else { this->rightHuds.push_back(hud); hud->setPosition(osg::Vec3(900, this->initial_Y_Position, 0)); } hud->setText(""); osg::Camera *hudCamera = hud->getHudCamera(); game->getRoot()->addChild(hudCamera); // update huds positions hudPosition = this->leftHuds.size(); for (Hud* h : this->leftHuds) h->setPosition(osg::Vec3(h->getPosition().x(), ((hudPosition--) * 25) + this->initial_Y_Position + 10, 0)); hudPosition = this->rightHuds.size(); for (Hud* h : this->rightHuds) h->setPosition(osg::Vec3(h->getPosition().x(), ((hudPosition--) * 25) + this->initial_Y_Position + 10, 0)); return hud; }