bool CKeyframe::Load (string dir, string filename) { if (loaded && loadedfile == filename) return true; CSPList list (1000); int i; string line; TVector2 pp; numFrames = 0; TVector3 posit; if (list.Load (dir, filename)) { for (i=0; i<list.Count(); i++) { line = list.Line (i); frames[numFrames] = new (TKeyframe2); frames[numFrames]->val[0] = SPFloatN (line, "time", 0); posit = SPVector3N (line, "pos", MakeVector (0, 0, 0)); frames[numFrames]->val[1] = posit.x; frames[numFrames]->val[2] = posit.y; frames[numFrames]->val[3] = posit.z; frames[numFrames]->val[4] = SPFloatN (line, "yaw", 0); frames[numFrames]->val[5] = SPFloatN (line, "pitch", 0); frames[numFrames]->val[6] = SPFloatN (line, "roll", 0); frames[numFrames]->val[7] = SPFloatN (line, "neck", 0); frames[numFrames]->val[8] = SPFloatN (line, "head", 0); pp = SPVector2N (line, "sh", MakeVector2 (0, 0)); frames[numFrames]->val[9] = pp.x; frames[numFrames]->val[10] = pp.y; pp = SPVector2N (line, "arm", MakeVector2 (0, 0)); frames[numFrames]->val[11] = pp.x; frames[numFrames]->val[12] = pp.y; pp = SPVector2N (line, "hip", MakeVector2 (0, 0)); frames[numFrames]->val[13] = pp.x; frames[numFrames]->val[14] = pp.y; pp = SPVector2N (line, "knee", MakeVector2 (0, 0)); frames[numFrames]->val[15] = pp.x; frames[numFrames]->val[16] = pp.y; pp = SPVector2N (line, "ankle", MakeVector2 (0, 0)); frames[numFrames]->val[17] = pp.x; frames[numFrames]->val[18] = pp.y; numFrames++; } loaded = true; loadedfile = filename; return true; } else { MessageN ("keyframe not found:", filename); loaded = false; return false; } }
bool CKeyframe::Load (const string& dir, const string& filename) { if (loaded && loadedfile == filename) return true; CSPList list (1000); if (list.Load (dir, filename)) { frames.resize(list.Count()); for (size_t i=0; i<list.Count(); i++) { const string& line = list.Line(i); frames[i].val[0] = SPFloatN (line, "time", 0); TVector3 posit = SPVector3N (line, "pos", NullVec); frames[i].val[1] = posit.x; frames[i].val[2] = posit.y; frames[i].val[3] = posit.z; frames[i].val[4] = SPFloatN (line, "yaw", 0); frames[i].val[5] = SPFloatN (line, "pitch", 0); frames[i].val[6] = SPFloatN (line, "roll", 0); frames[i].val[7] = SPFloatN (line, "neck", 0); frames[i].val[8] = SPFloatN (line, "head", 0); TVector2 pp = SPVector2N (line, "sh", TVector2(0, 0)); frames[i].val[9] = pp.x; frames[i].val[10] = pp.y; pp = SPVector2N (line, "arm", TVector2(0, 0)); frames[i].val[11] = pp.x; frames[i].val[12] = pp.y; pp = SPVector2N (line, "hip", TVector2(0, 0)); frames[i].val[13] = pp.x; frames[i].val[14] = pp.y; pp = SPVector2N (line, "knee", TVector2(0, 0)); frames[i].val[15] = pp.x; frames[i].val[16] = pp.y; pp = SPVector2N (line, "ankle", TVector2(0, 0)); frames[i].val[17] = pp.x; frames[i].val[18] = pp.y; } loaded = true; loadedfile = filename; return true; } else { Message ("keyframe not found:", filename); loaded = false; return false; } }