void __stdcall FillGroupItems(ChooseItemVec& items, void* param) { CGroupObject* group = (CGroupObject*)param; for (ObjectIt it=group->GetObjects().begin(); it!=group->GetObjects().end(); it++) { items.push_back (SChooseItem((*it)->Name,"")); } }
void __stdcall FillGroupItems(ChooseItemVec& items, void* param) { CGroupObject* group = (CGroupObject*)param; ObjectList grp_lst; group->GetObjects (grp_lst); for (ObjectIt it=grp_lst.begin(); it!=grp_lst.end(); ++it) items.push_back (SChooseItem((*it)->Name,"")); }
void ESceneGroupTools::MakeThumbnail() { if (SelectionCount(true)==1) { CGroupObject* object = 0; for (ObjectIt it=m_Objects.begin(); it!=m_Objects.end(); it++) { if ((*it)->Selected()) { object = dynamic_cast<CGroupObject*>(*it); break; } } VERIFY (object); object->Select (false); // save render params Flags32 old_flag = psDeviceFlags; // set render params psDeviceFlags.set (rsStatistic|rsDrawGrid,FALSE); U32Vec pixels; u32 w=512,h=512; if (Device.MakeScreenshot (pixels,w,h)) { AnsiString tex_name = ChangeFileExt(object->Name,".thm"); SStringVec lst; for (ObjectIt it=object->GetObjects().begin(); it!=object->GetObjects().end(); it++) lst.push_back ((*it)->Name); EGroupThumbnail tex (tex_name.c_str(),false); tex.CreateFromData (pixels.begin(),w,h,lst); string_path fn; FS.update_path (fn,_groups_,object->RefName()); strcat (fn,".group"); tex.Save (FS.get_file_age(fn)); } else { ELog.DlgMsg (mtError,"Can't make screenshot."); } object->Select (true); // restore render params psDeviceFlags = old_flag; } else { ELog.DlgMsg (mtError,"Select 1 GroupObject."); } }