IQM Support Implemented

More info to come
This commit is contained in:
Shiny Metagross 2022-08-12 13:17:08 -07:00 committed by Christoph Oelckers
commit 08f520f1c6
49 changed files with 1356 additions and 62 deletions

View file

@ -615,7 +615,7 @@ FVector3 FOBJModel::CalculateNormalSmooth(unsigned int vidx, unsigned int smooth
*/
int FOBJModel::FindFrame(const char* name, bool nodefault)
{
return nodefault? FErr_Singleframe : 0; // OBJs are not animated.
return nodefault ? FErr_Singleframe : 0; // OBJs are not animated.
}
/**
@ -628,7 +628,7 @@ int FOBJModel::FindFrame(const char* name, bool nodefault)
* @param inter The amount to interpolate the two frames.
* @param translation The translation for the skin
*/
void FOBJModel::RenderFrame(FModelRenderer *renderer, FGameTexture * skin, int frameno, int frameno2, double inter, int translation, const FTextureID* surfaceskinids)
void FOBJModel::RenderFrame(FModelRenderer *renderer, FGameTexture * skin, int frameno, int frameno2, double inter, int translation, const FTextureID* surfaceskinids, const TArray<VSMatrix>& animationData)
{
// Prevent the model from rendering if the frame number is < 0
if (frameno < 0 || frameno2 < 0) return;
@ -657,7 +657,7 @@ void FOBJModel::RenderFrame(FModelRenderer *renderer, FGameTexture * skin, int f
}
renderer->SetMaterial(userSkin, false, translation);
renderer->SetupFrame(this, surf->vbStart, surf->vbStart, surf->numTris * 3);
renderer->SetupFrame(this, surf->vbStart, surf->vbStart, surf->numTris * 3, {});
renderer->DrawArrays(0, surf->numTris * 3);
}
}
@ -700,3 +700,14 @@ FOBJModel::~FOBJModel()
faces.Clear();
surfaces.Clear();
}
//===========================================================================
//
//
//
//===========================================================================
const TArray<VSMatrix>* FOBJModel::AttachAnimationData()
{
return {};
}