2014-10-28 03:12:36 -04:00
|
|
|
#include "nifstream.hpp"
|
2023-07-26 04:39:32 +03:00
|
|
|
|
2014-10-28 03:12:36 -04:00
|
|
|
#include "niffile.hpp"
|
|
|
|
|
|
|
|
namespace Nif
|
|
|
|
{
|
2018-07-10 13:32:52 +04:00
|
|
|
osg::Quat NIFStream::getQuaternion()
|
|
|
|
{
|
|
|
|
float f[4];
|
2023-07-26 04:19:18 +03:00
|
|
|
readBufferOfType<4, float>(mStream, f);
|
2018-07-10 13:32:52 +04:00
|
|
|
osg::Quat quat;
|
|
|
|
quat.w() = f[0];
|
|
|
|
quat.x() = f[1];
|
|
|
|
quat.y() = f[2];
|
|
|
|
quat.z() = f[3];
|
|
|
|
return quat;
|
|
|
|
}
|
2014-10-28 03:12:36 -04:00
|
|
|
|
2018-07-10 13:32:52 +04:00
|
|
|
Transformation NIFStream::getTrafo()
|
|
|
|
{
|
|
|
|
Transformation t;
|
|
|
|
t.pos = getVector3();
|
|
|
|
t.rotation = getMatrix3();
|
|
|
|
t.scale = getFloat();
|
|
|
|
return t;
|
|
|
|
}
|
2019-12-29 15:53:44 +03:00
|
|
|
|
|
|
|
bool NIFStream::getBoolean()
|
|
|
|
{
|
2020-10-04 01:27:49 +03:00
|
|
|
return getVersion() < generateVersion(4, 1, 0, 0) ? getInt() != 0 : getChar() != 0;
|
2019-12-29 15:53:44 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
std::string NIFStream::getString()
|
|
|
|
{
|
2023-07-26 04:19:18 +03:00
|
|
|
return getVersion() < generateVersion(20, 1, 0, 1) ? getSizedString() : mReader.getString(getUInt());
|
2019-12-29 15:53:44 +03:00
|
|
|
}
|
|
|
|
|
2020-02-02 18:40:11 +03:00
|
|
|
unsigned int NIFStream::getVersion() const
|
|
|
|
{
|
2023-07-26 04:19:18 +03:00
|
|
|
return mReader.getVersion();
|
2020-02-02 18:40:11 +03:00
|
|
|
}
|
|
|
|
unsigned int NIFStream::getUserVersion() const
|
|
|
|
{
|
2023-07-26 04:19:18 +03:00
|
|
|
return mReader.getBethVersion();
|
2020-02-02 18:40:11 +03:00
|
|
|
}
|
|
|
|
unsigned int NIFStream::getBethVersion() const
|
|
|
|
{
|
2023-07-26 04:19:18 +03:00
|
|
|
return mReader.getBethVersion();
|
2020-02-02 18:40:11 +03:00
|
|
|
}
|
2014-10-28 03:12:36 -04:00
|
|
|
}
|