TestPtr Test::findTest(const std::string& name) const { auto it = std::find_if( begin(m_Tests), end(m_Tests), [&](const TestPtr& t){return t->name() == name;}); if (it != end(m_Tests)) return *it; else return TestPtr(); }
//---------------------------------------------------------------------------------------------------------- bool Camera::Serialize(CArchive& ar) { U32 a; U16 npkeys,nfkeys,nrkeys,ntkeys; PosKeyFileU3D* posK; UniKeyFileU3D* fovK; UniKeyFileU3D* rollK; PosKeyFileU3D* targK; if (!ar.IsStoring()) { ar >> nom; ar >> pos[0]; ar >> pos[1]; ar >> pos[2]; ar >> targ[0]; ar >> targ[1]; ar >> targ[2]; ar >> roll; ar >> fov; //-------------- Charge les pos keys ar >> npkeys; posK = new PosKeyFileU3D[ npkeys ]; TestPtr(posK); for (a=0; a<npkeys; a++) posK[a].Serialize(ar); if (npkeys > 1) Spos = new SplineU3D(posK, npkeys); else Spos = NULL; delete [] posK; //-------------- sauve les fovs ar >> nfkeys; fovK = new UniKeyFileU3D[ nfkeys ]; TestPtr(fovK); for (a=0; a<nfkeys; a++) fovK[a].Serialize(ar); if (nfkeys > 1) Sfov = new SplineU3D(fovK, nfkeys); else Sfov = NULL; delete [] fovK; //-------------- sauve les rolls ar >> nrkeys; rollK = new UniKeyFileU3D[ nrkeys ]; TestPtr(rollK); for (a=0; a<nrkeys; a++) rollK[a].Serialize(ar); if (nrkeys > 1) Sroll = new SplineU3D(rollK, nrkeys); else Sroll = NULL; delete [] rollK; //-------------- sauve les targets ar >> ntkeys; targK = new PosKeyFileU3D[ ntkeys ]; TestPtr(targK); for (a=0; a<ntkeys; a++) targK[a].Serialize(ar); if (ntkeys > 1) Starg = new SplineU3D(targK, ntkeys); else Starg = NULL; delete [] targK; } else return FALSE;