示例#1
0
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;
	}
}