mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-25 06:35:30 +00:00
NIF Transformation redundancy fix and include fixes
This commit is contained in:
parent
8c10d4badb
commit
f6f37e02df
@ -26,6 +26,8 @@
|
||||
|
||||
#include "base.hpp"
|
||||
|
||||
#include "niftypes.hpp" // Transformation
|
||||
|
||||
namespace Nif
|
||||
{
|
||||
|
||||
@ -270,13 +272,6 @@ public:
|
||||
class NiSkinData : public Record
|
||||
{
|
||||
public:
|
||||
struct BoneTrafo
|
||||
{
|
||||
Matrix3 rotation; // Rotation offset from bone?
|
||||
osg::Vec3f trans; // Translation
|
||||
float scale; // Scale
|
||||
};
|
||||
|
||||
struct VertWeight
|
||||
{
|
||||
short vertex;
|
||||
@ -285,18 +280,18 @@ public:
|
||||
|
||||
struct BoneInfo
|
||||
{
|
||||
BoneTrafo trafo;
|
||||
Transformation trafo;
|
||||
osg::Vec4f unknown;
|
||||
std::vector<VertWeight> weights;
|
||||
};
|
||||
|
||||
BoneTrafo trafo;
|
||||
Transformation trafo;
|
||||
std::vector<BoneInfo> bones;
|
||||
|
||||
void read(NIFStream *nif)
|
||||
{
|
||||
trafo.rotation = nif->getMatrix3();
|
||||
trafo.trans = nif->getVector3();
|
||||
trafo.pos = nif->getVector3();
|
||||
trafo.scale = nif->getFloat();
|
||||
|
||||
int boneNum = nif->getInt();
|
||||
@ -308,7 +303,7 @@ public:
|
||||
BoneInfo &bi = bones[i];
|
||||
|
||||
bi.trafo.rotation = nif->getMatrix3();
|
||||
bi.trafo.trans = nif->getVector3();
|
||||
bi.trafo.pos = nif->getVector3();
|
||||
bi.trafo.scale = nif->getFloat();
|
||||
bi.unknown = nif->getVector4();
|
||||
|
||||
|
@ -39,7 +39,7 @@ struct Matrix3
|
||||
{
|
||||
for (int i=0;i<3;++i)
|
||||
for (int j=0;j<3;++j)
|
||||
mValues[i][j] = 0;
|
||||
mValues[i][j] = (i==j) ? 1.f : 0.f;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
NiNode *parent;
|
||||
|
||||
// Bone transformation. If set, node is a part of a skeleton.
|
||||
const NiSkinData::BoneTrafo *boneTrafo;
|
||||
const Transformation *boneTrafo;
|
||||
|
||||
// Bone weight info, from NiSkinData
|
||||
const NiSkinData::BoneInfo *boneInfo;
|
||||
@ -77,7 +77,7 @@ public:
|
||||
// boneTrafo is set it is the root bone in the skeleton.
|
||||
short boneIndex;
|
||||
|
||||
void makeRootBone(const NiSkinData::BoneTrafo *tr)
|
||||
void makeRootBone(const Transformation *tr)
|
||||
{
|
||||
boneTrafo = tr;
|
||||
boneIndex = -1;
|
||||
|
@ -26,6 +26,9 @@
|
||||
|
||||
#include "base.hpp"
|
||||
|
||||
#include "controlled.hpp"
|
||||
#include "data.hpp"
|
||||
|
||||
namespace Nif
|
||||
{
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user