Esempio n. 1
0
	void ModelInstance::setFrame(float frame) {
		if(!model) return;

		boundingBoxDirty = true;

		if(frame < 0) {
			for(size_t i = 0; i < model->skeleton->getBonesCount(); i++) {
				global[i] = model->skeleton->getBone(i)->globalSkeleton;
			}
		} else {
			for(size_t i = 0; i < model->skeleton->getBonesCount(); i++) {
				Bone* bone = model->skeleton->getBone(i);

				if(bone->parentIndex != -1) {
					global[i] = global[bone->parentIndex] * bone->evaluate(frame);
				} else {
					global[i] = bone->evaluate(frame);
				}
			}
		}
	}