bool GraphicEngine::initModels() { ImportModelData(&(this->BLACK_PlayerData), rbw::Graphic::ModelPath + rbw::Graphic::BLACK_TANK_IMAGE_FILENAME, rbw::GameParam::PLAYER_HITBOX_RADIUS); ImportModelData(&(this->WHITE_PlayerData), rbw::Graphic::ModelPath + rbw::Graphic::WHITE_TANK_IMAGE_FILENAME, rbw::GameParam::PLAYER_HITBOX_RADIUS); ImportModelData(&(this->HomingMissileData), rbw::Graphic::ModelPath + rbw::Graphic::HOMING_MISSILE_IMAGE_FILENAME, rbw::GameParam::HOMING_MISSILE_HITBOX_RADIUS); ImportModelData(&(this->BouncingBombData), rbw::Graphic::ModelPath + rbw::Graphic::BOUNCING_BOMB_IMAGE_FILENAME, rbw::GameParam::BOUNCING_BOMB_HITBOX_RADIUS); ImportModelData(&(this->GrenadeData), rbw::Graphic::ModelPath + rbw::Graphic::GRENADE_IMAGE_FILENAME, rbw::GameParam::GRENADE_HITBOX_RADIUS); return true; }
void GenericModel::ImportModelData(Int_t parameter_num, RooArgList* plist) { // Import all model datasets corresponding to the defined parameters, ranges & binnings RooArgList PLIST; if (plist) PLIST.addClone(*plist); RooRealVar* par = dynamic_cast<RooRealVar*>(fParameters.at(parameter_num)); RooAbsBinning& bins = par->getBinning(); Int_t N = bins.numBins(); RooRealVar* par_in_list = (RooRealVar*)PLIST.find(par->GetName()); if (!par_in_list) { PLIST.addClone(RooRealVar(par->GetName(), par->GetTitle(), 0.)); par_in_list = (RooRealVar*)PLIST.find(par->GetName()); } for (int i = 0; i < N; i++) { par_in_list->setMax(bins.binHigh(i)); par_in_list->setMin(bins.binLow(i)); par_in_list->setVal(bins.binCenter(i)); if ((parameter_num + 1) < GetNumberOfParameters()) ImportModelData(parameter_num + 1, &PLIST); else { AddModelData(PLIST, GetModelDataSet(PLIST)); } } }