1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-28 15:09:43 +00:00

Read BSTreadTransfInterpolator

This commit is contained in:
Alexei Kotov 2024-05-13 01:20:23 +03:00
parent 5f4a0c3bf1
commit 1d96c0adbf
4 changed files with 39 additions and 0 deletions

View file

@ -863,4 +863,24 @@ namespace Nif
nif->read(mScaleHalfRange);
}
void BSTreadTransform::read(NIFStream* nif)
{
nif->read(mName);
nif->read(mTransform1);
nif->read(mTransform2);
}
void BSTreadTransfInterpolator::read(NIFStream* nif)
{
mTransforms.resize(nif->get<uint32_t>());
for (BSTreadTransform& transform : mTransforms)
transform.read(nif);
mData.read(nif);
}
void BSTreadTransfInterpolator::post(Reader& nif)
{
mData.post(nif);
}
}

View file

@ -617,6 +617,23 @@ namespace Nif
void read(NIFStream* nif) override;
};
struct BSTreadTransform
{
std::string mName;
NiQuatTransform mTransform1;
NiQuatTransform mTransform2;
void read(NIFStream* nif);
};
struct BSTreadTransfInterpolator : public NiInterpolator
{
std::vector<BSTreadTransform> mTransforms;
NiFloatDataPtr mData;
void read(NIFStream* nif) override;
void post(Reader& nif) override;
};
}
#endif

View file

@ -188,6 +188,7 @@ namespace Nif
// Interpolators, Bethesda
{ "BSRotAccumTransfInterpolator", &construct<NiTransformInterpolator, RC_BSRotAccumTransfInterpolator> },
{ "BSTreadTransfInterpolator", &construct<BSTreadTransfInterpolator, RC_BSTreadTransfInterpolator> },
// DATA

View file

@ -139,6 +139,7 @@ namespace Nif
RC_BSSkinInstance,
RC_BSSkyShaderProperty,
RC_BSSubIndexTriShape,
RC_BSTreadTransfInterpolator,
RC_BSTriShape,
RC_BSWArray,
RC_BSWaterShaderProperty,